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