Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Virtua Fighter5 Final ShowdownのTwitter連動機能について #twtr_hack

27,368 views

Published on

  • Be the first to comment

Virtua Fighter5 Final ShowdownのTwitter連動機能について #twtr_hack

  1. 1. Virtua Fighter5 Final Showdown の Twitter連動機能について 株式会社セガ 岩﨑剛
  2. 2. 自己紹介
  3. 3.  株式会社セガ 第二研究開発本部 開発2課 岩崎剛 Twitter: @twtrfk
  4. 4. 開発の前段階
  5. 5. 部内SNSの構築2009年5月頃岩﨑「VF5Rの新仕様にあるライバル設定ってTwitterっぽくすると面白いかもしれませんね」企画「うーん」岩﨑「ちょっと待ってて下さい」 3日後岩﨑「AmitterってSNSを部内用に作ってみたんで試してみてください」
  6. 6. 部内SNSの構築参考:Amitter
  7. 7. 「青天の霹靂」?「にわかに始動」?2009年11月頃何故か、初音ミク Project DIVA Arcade(DIVA-AC)とTwitterの連動の話が急に盛り上がる。
  8. 8. 部内SNS用ライブラリの作成2010年1月頃Amitterに外部ゕクセス用APIを実装。DIVA-ACにAmitter用のライブラリ(AmitterUtil)の作成。AmitterのTLにDIVA-ACのプレイ結果が流れ始める。
  9. 9. 部内テストを経て・・・2010年3月頃VF5 Final Showdown(VF5FS)の新規機能としてTwitterとの連動を改めて提案。
  10. 10. 正式に始動2010年4月頃VF5FSでのTwitter連動が正式に動き出す。AmitterUtilをVF5FSに移植。Twitter4JとAmitterUtilをラップするクラスの作成。
  11. 11. システム概略図
  12. 12. データセンター VF5用データベース ユーザTL 戦績等 個 人 ツイート 設 定 等 バッチ用サーバ ゲーム用サーバ XAuth/OAuth認証 VF.NET用サーバゲームセンター
  13. 13. 大まかな処理の流れ
  14. 14. (1)ICカードを使ってプレイ
  15. 15. (2)VF.NETのアカウント作成
  16. 16. (3)VF.NETにICカードを紐付ける
  17. 17. (4)VF.NETとTwitterを紐付ける
  18. 18. (5)Twitter連動の設定を行う
  19. 19. (6)ICカードを使って筐体でプレイ
  20. 20. (7)プレイ結果からユーザTLを作成プレイ結果(八段に昇格など)などがVF5DBに記録されます。この時、Twitterと連携しているゕカウントの場合、ツイートすべき条件を満たしていればVF5DB内のUSER_TIME_LINE(以下、ユーザTL)と呼ばれるテーブルへユーザ毎にツイート内容を記録していきます。
  21. 21. (7)プレイ結果からユーザTLを作成create table USER_TIME_LINE (-- ユーザーID I_UID int not null, constraint fk_utl_1 foreign key (I_UID) references USER_INFO(I_UID) on delete cascade,-- データID -- 0〜19 DATA_ID smallint not null,-- プライマリキー設定 constraint pk_utl_1 primary key (I_UID, DATA_ID),-- ツイート内容 -- 140文字*2バイト(EUC) TWEET varchar(280) not null default ,-- 最終更新日時 UPDATE_TIME timestamp not null default 2001-01-01-00.00.00.000000);
  22. 22. (8)バッチでツイートする1分間隔で起動するバッチで(7)で生成したユーザTLの内容をツイートします。バッチが最後にツイートした時刻より後に更新されたユーザTLを最大1000件分SELECTして、50個のスレッドに最大20件分づつ割り振ってパラレルでツイートしています。
  23. 23. この様な仕様になっている理由
  24. 24. ゲーム本編で実装するリスク1. C++でTwitter連動の実験はしていなかった。2. スケジュールがかなり短かった。3. VF.NETとTwitterの紐付けはサーバ側で行うので、筐体 で実装しても工数はそんなに減らない。4. 万が一、バグでプログラムが制御不能になるとどうにも ならない。5. もしも、セガ本体やTwitter社からクレームが来ても迅速 に対応できない。6. バグ等で修正版を出すのに数週間単位で時間がかかる。7. バグ以外の機能追加版は簡単には出せない。8. ゕクセストークンを送信する事になる。9. ゲームセンターからセガ管理外のサーバに直接通信した タイトルが当時は(多分)無かった。
  25. 25. サーバ側で実装するメリット1. 既にTwitter4J等を使う基礎実験は済んでいたので、すぐ に作業に入れた。2. VF.NET側の処理を作る段階で、一緒に作ればいいので作 業に集中できる。3. バグ修正が簡単に出来る。4. 機能追加が簡単にできる。5. ツイートする量がセガ側で確実にコントロールできる。6. ゲーム筐体からセガ管理外のサーバに直接通信する場合 にセガ社内で必要な申請が回避できる。
  26. 26. バッチでツイートするメリット1. 筐体用サーバの負荷をなるべく上げたくない。2. 処理時間を長引かせたくない。3. 負荷分散を可能にするため。
  27. 27. その他
  28. 28. 苦労した点1. テスト用のゕカウントは地道に用意するしかない。2. 一部の携帯キャリゕからTwitterへ直接遷移させることは NGとされた。3. 当時は携帯電話だとOAuth認証ページが正常に表示でき ない機種があった。4. XAuthを使うのに申請が必要なのを知らなかった。5. XAuthの申請が英語だった。
  29. 29. 今後の展開残念ながら未定。
  30. 30. ハッシュタグとかハッシュタグ#VF5FS連動ツイートだけ検索する時には#VF5FS source:VF.NETバーチャフゔイター公式ゕカウント@vf_official
  31. 31. ご清聴ありがとうございました

×