SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
ポコロンダンジョンズと  
リアルタイム通信  
-­‐‑  クライアント編  -­‐‑	
 
Grenge
袴田  大貴
自己紹介	
 
•  袴田  大貴 (Hakamata Daiki)
•  株式会社グレンジ所属
•  ポコロンダンジョンズ  クライアントエンジニア
•  リリース前から現在まで
https://www.facebook.com/D.hakamata
ポコロンダンジョンズ
アプリ紹介	
 
•  なぞるパズルRPG
パズルブロック「ポコロン」をなぞって主人公を動かし、
敵を攻撃してダンジョンを攻略!
•  1000種を超える装備, モンスター
•  最大4人の協力プレイ「共闘」
アジェンダ	
 
1.  構成
2.  同期方法
3.  具体例
4.  確率で発生する事象
5.  待ち合わせ
6.  再接続と強制同期
7.  まとめ
1.  構成
構成図	
 
curl  (h+ps) WebSocket  (wss)
(詳細はサーバサイドの塚原さんの発表で…)
リアルタイム通信	
 
n  プロトコル
 WebSocket : ブラウザでは定番
 UDP : MMOでよく使われる
 RUDP : UDPとTCPの良いとこどり
 HTTP : ポーリング
n  ミドルウェア
 Node.js : すべての処理を自前で実装, JavaScript
 Photon : クラウドあり, C#, WIndowsServer
 モノビットエンジン : クラウドあり, C++, LinuxServer
クライアント構成	
 
n  ゲームエンジン
      Cocos2d-x v3.2.0
n  使用言語
ソケット通信	
 
n  iOS
    AZSocketIO
      [ SocketRocket, AFNetWorking ]
n  Android
    Socket.IO-Client for Java
      [ Java-WebSocket ]
どちらも独自に改造済み
AZSocket
Socket.IO-­‐‑Client	
for  Java
GRWebSocket
ポコロンダンジョンズ
実装構成
発生した問題	
 
•  バックグラウンド時の通信維持
•  ソケットライブラリのメモリリーク
•  ソケット切断後GC多発
•  特定端末(Nexusなど)専用対応
•  意図的な切断と偶発的な切断の区別
•  通信保証 (再送)
•  再接続
ソケット通信Libの改修	
 
n  iOS
 host, port, pathによる接続先設定
 SSL対応
 切断/再接続処理
n  Android
 SSL対応
 SSLContextのプロトコル複数対応
 切断処理 (GC多発)
 JNI/マルチスレッド対応
 イベント名+JSONデータ送受信
2.  同期方法
同期方法	
 
n  クライアント分散方式
 サーバが中継, 各クライアントが処理
n  イベント同期
 特定のイベントをトリガとして同期
 演算に必要なデータを送受信
なぞった!
中継役
その他の同期方法	
 
n  サーバ集中方式
 入力をサーバに送信し、サーバが処理
 結果を各クライアントに配信
n  リプレイ再生
 クライアント側は演算せず、再生のみ
n  フレーム同期
 毎フレームに同期を行う
端末間の同期	
 
•  盤面の色, 配置
•  敵の情報
•  プレイヤー, 召喚モンスターの情報
•  被ダメ/与ダメ
•  ターン数
•  ドロップ情報
全てをやり取りするとデータ量多い!
端末間の同期	
 
•  ポコダン  は  ターン制
→ 他プレイヤーの操作を自端末で再現すればデータ量削減
(2,  4),  (2,  5),  (3,  6)	
をなぞった
再現します
通信保証	
 
受領通知が来るまで一定間隔で再送
サーバ→クライアントの場合も同様
①送信
②受領通知
•  端末間ではなく端末-サーバ間で保証
3.  具体例
部屋生成〜クエスト開始	
 
①部屋生成要求 ②接続確立&部屋情報同期	
n  ホスト
部屋生成〜クエスト開始	
 
①部屋一覧要求	
②部屋参加要求	
n  ゲスト
③接続確立&部屋情報同期
クエストの流れ	
 
プレイヤーターン開始
なぞる A.スキル
なぞったマスを	
歩きながら攻撃
C.スキル
敵ターン開始
移動前行動
移動中行動
移動後行動
クエスト中  (送信)	
 
n  ターンの操作権限者が送る情報
•  プレイヤ番号
•  行動タイプ (なぞり/スキル/リタイア/コンティニュー)
•  コマンドインデックス (送信情報のシーケンシャル番号)
•  (なぞり情報)
•  (使用したスキル情報)
プレイヤー  :  2	
コマンド  :  0	
タイプ  :  なぞり始め	
なぞり  :  (1,  4)	
プレイヤー  :  2	
コマンド  :  1	
タイプ  :  なぞり中	
なぞり  :  (2,  4)	
・・・
プレイヤー  :  2	
コマンド  :  5	
タイプ  :  なぞり終わり
クエスト中  (受信)	
 
n  なぞり始め
 盤面を暗転
n  なぞり中
 なぞり情報を元に光るラインを再現
n  なぞり終わり
 なぞりルートを確定
「送信者側の端末で起きた事象を自身の端末で再現」
4.  確率で発生する事象は  
どうする?	
 
クリティカル,  回避,  状態異常  etc…
乱数(擬似乱数)	
 
乱数生成器
シード値  :  A
乱数列	
x1,  x2,  x3,  x4,  x5,  …
乱数生成器
シード値  :  B
乱数列	
y1,  y2,  y3,  y4,  y5,  …
同一のシード値で初期化すれば、同一の乱数列が得られる
乱数同期	
 
乱数生成器
乱数生成器
乱数生成器
乱数生成器
シード:X
全端末で同じ乱数列
複数の乱数生成器	
 
n  可能な限りズレを抑止するために乱数生成器は複数
キャラクター毎に専用の乱数生成器
演出用の非同期の乱数生成器
乱数生成器	
 
n  メルセンヌ・ツイスター
<random>ヘッダ
決定的
周期が長い
一様分布
高速
GRRandomUtility とライブラリ化して使用
OSとSTL	
 
n  iOS
 libc++ (LLVM C++ standard library)
n  Android
 APP_STL := gnustl_static [Application.mk]
C++標準ライブラリが異なるので、そのままではシード値
を同期しても生成される乱数列が異なる
OSとSTL	
 
n  AndroidをiOSに揃える
NDKのリファレンス
APP_STL := c++_static
(cocos2d-x v3.2の推奨NDKバージョンは r9d ですが r10dを使用)
5.  待ち合わせ
待ち合わせ	
 
Ready	
Ready	
Ready	
待ち合わせ開始をサーバに通知
待ち合わせ	
 
AllReady	
AllReady	
AllReady	
部屋の人数分揃ったらクライアントに通知
6.  再接続と強制同期
意図的/偶発的な切断	
 
n  意図的な切断
 専用のイベントをサーバに送信してから切断
これによって偶発的な切断と区別が可能
・偶発的切断の発生件数検証
・ゲーム内の通知メッセージ出し分け
疎通ロスト判定	
 
Verification	
 Verification	
1P	
 2P	
 3P	
疎通確認データを送信
疎通ロスト判定	
 
VerificationResult	
疎通を確認できたプレイヤーリストが返却
VerificationResult	
VerificationResult	
疎通確認プレイヤーリスト	
1P,  3P
疎通ロスト判定	
 
n  疎通ロストしたプレイヤーがターン操作権限を持ってい
た場合、ターンをスキップする
n  (共通の仕様として)スキップ3回で部屋からキック
マナーの悪いプレイヤーの排除
安定した通信環境のプレイヤーのプレイを保護
再接続	
 
1.  偶発的切断発生
2.  一定時間、再接続を試みる
3.  再接続に成功したら、クエスト復帰
キャリア回線とWi-Fiの切り替わりなど瞬断は起こりうる
「通信は切れるもの」として対策をする
強制同期	
 
n  検証用の盤面情報を相互に送受信し、差異があった場合
はホスト権限者の盤面に強制的に揃える
n  中断セーブデータ
 シングルプレイの仕組み
 クエスト情報をJSONに書き出しファイルに保存
シングルプレイで使用している中断セーブデータを流用
差異が生じたらホストのデータに全員ロールバック
7.  まとめ
まとめ	
 
n  複数のプレイヤの情報を互いに送受信しつつ整合性を保
つ、のがリアルタイム通信によるゲームのキモ
n  ゲーム性に合わせた技術/同期方式を選定するのが重要
n  通信時間がどうしても発生するので、データ量は可能な
限り削減する

Más contenido relacionado

La actualidad más candente

Career - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D eventCareer - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D eventMiya Kohno
 
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだらもしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだらTomoki Ando
 
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界Ryo Kurauchi
 
スマホでVRコンテンツを作る方法
スマホでVRコンテンツを作る方法スマホでVRコンテンツを作る方法
スマホでVRコンテンツを作る方法hima_zinn
 
gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例知教 本間
 
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影gree_tech
 
大切な名前[Intro]公開版
大切な名前[Intro]公開版大切な名前[Intro]公開版
大切な名前[Intro]公開版infinite_loop
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携Masahiro Murakami
 
すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討Shinya Nakajima
 
20210925_jazug_azure_what_to_do_first
20210925_jazug_azure_what_to_do_first20210925_jazug_azure_what_to_do_first
20210925_jazug_azure_what_to_do_firstTomoakiOno
 
グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性gree_tech
 
Rancher による社内向けテナントサービス基盤
Rancher による社内向けテナントサービス基盤Rancher による社内向けテナントサービス基盤
Rancher による社内向けテナントサービス基盤Keita Shimada
 
AzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CDAzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CDShinya Nakajima
 
「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Services「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Servicessnicker_jp
 
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側Shuji Yamada
 
PlayFabとCognitiveを 連携させて健全なゲーム運営を
PlayFabとCognitiveを連携させて健全なゲーム運営をPlayFabとCognitiveを連携させて健全なゲーム運営を
PlayFabとCognitiveを 連携させて健全なゲーム運営をShinya Nakajima
 
Microsoft Azure 概要
Microsoft Azure 概要Microsoft Azure 概要
Microsoft Azure 概要Yuki Igarashi
 
Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用Shinya Nakajima
 
20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_nohara20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_noharaMinehiko Nohara
 
20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecase20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecaseMinehiko Nohara
 

La actualidad más candente (20)

Career - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D eventCareer - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D event
 
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだらもしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
 
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界
 
スマホでVRコンテンツを作る方法
スマホでVRコンテンツを作る方法スマホでVRコンテンツを作る方法
スマホでVRコンテンツを作る方法
 
gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例
 
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
 
大切な名前[Intro]公開版
大切な名前[Intro]公開版大切な名前[Intro]公開版
大切な名前[Intro]公開版
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
 
すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討
 
20210925_jazug_azure_what_to_do_first
20210925_jazug_azure_what_to_do_first20210925_jazug_azure_what_to_do_first
20210925_jazug_azure_what_to_do_first
 
グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性
 
Rancher による社内向けテナントサービス基盤
Rancher による社内向けテナントサービス基盤Rancher による社内向けテナントサービス基盤
Rancher による社内向けテナントサービス基盤
 
AzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CDAzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CD
 
「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Services「Windows Azure」 の Mobile Services
「Windows Azure」 の Mobile Services
 
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
 
PlayFabとCognitiveを 連携させて健全なゲーム運営を
PlayFabとCognitiveを連携させて健全なゲーム運営をPlayFabとCognitiveを連携させて健全なゲーム運営を
PlayFabとCognitiveを 連携させて健全なゲーム運営を
 
Microsoft Azure 概要
Microsoft Azure 概要Microsoft Azure 概要
Microsoft Azure 概要
 
Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用
 
20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_nohara20180123 rancher meetupyokohama_minehiko_nohara
20180123 rancher meetupyokohama_minehiko_nohara
 
20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecase20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecase
 

Destacado

PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことksimoji
 
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」Tomoaki Shimizu
 
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」Tomoaki Shimizu
 
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合gree_tech
 
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Ryosuke Suto
 
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例gree_tech
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門Shumpei Shiraishi
 
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門dena_study
 

Destacado (8)

PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったことPHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
 
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
 
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
 
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
Cocos2d-xの深層 Cocos2d-x組み込みによるピュアAndroid/iOSアプリの外科手術的統合
 
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
 
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
 
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
 
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
 

Similar a ポコロンダンジョンズとリアルタイム通信 -クライアント編-

ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウGameCreators,CyberAgent
 
オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略Yasutomo Uemori
 
俺とディスプレイ
俺とディスプレイ俺とディスプレイ
俺とディスプレイMasayuki KaToH
 
ヴィジュアルエフェクト初級者講座
ヴィジュアルエフェクト初級者講座ヴィジュアルエフェクト初級者講座
ヴィジュアルエフェクト初級者講座RyousukeItai
 
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウGameCreators,CyberAgent
 
カンバンと朝会とわたくし
カンバンと朝会とわたくしカンバンと朝会とわたくし
カンバンと朝会とわたくしDrecom Co., Ltd.
 
ITWeekモバイル活用展登壇資料
ITWeekモバイル活用展登壇資料ITWeekモバイル活用展登壇資料
ITWeekモバイル活用展登壇資料altplus-lab
 
0529ue4meetup-ragdoll-hangon
0529ue4meetup-ragdoll-hangon0529ue4meetup-ragdoll-hangon
0529ue4meetup-ragdoll-hangoncota2n
 

Similar a ポコロンダンジョンズとリアルタイム通信 -クライアント編- (8)

ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
 
オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略
 
俺とディスプレイ
俺とディスプレイ俺とディスプレイ
俺とディスプレイ
 
ヴィジュアルエフェクト初級者講座
ヴィジュアルエフェクト初級者講座ヴィジュアルエフェクト初級者講座
ヴィジュアルエフェクト初級者講座
 
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
 
カンバンと朝会とわたくし
カンバンと朝会とわたくしカンバンと朝会とわたくし
カンバンと朝会とわたくし
 
ITWeekモバイル活用展登壇資料
ITWeekモバイル活用展登壇資料ITWeekモバイル活用展登壇資料
ITWeekモバイル活用展登壇資料
 
0529ue4meetup-ragdoll-hangon
0529ue4meetup-ragdoll-hangon0529ue4meetup-ragdoll-hangon
0529ue4meetup-ragdoll-hangon
 

ポコロンダンジョンズとリアルタイム通信 -クライアント編-