Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
マルチプレイの
リアルタイム通信ゲーム開発⼊⾨
第7回DeNAゲーム開発勉強会×モノビット
ガールアックス
Dec	17,	2015	
上野 裕介	/	うえちょこ	
yusuke.ueno@dena.com	
Japanリージョンゲーム事業本部	
技術・編成部 開発基盤グループ	
DeNA	Co.,	Ltd.
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
⾃⼰紹介
2
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
⾃⼰紹介
n  上野 裕介(うえちょこ) / @uechoco
n  DeNA 中途⼊社
n  [mobage ブラウザ]
n  ONE PIECE グランドコレクション / リードエンジニア
n  怪盗ロワイヤル / リードエンジニア・プロマネ
n  [ネイティブ スマホアプリ]
n  みんなのデナレンジャー / エンジニア ※第5回発表
n  ガールアックス / リードエンジニア
n  [汎⽤ゲームサーバー/クライアント]
n  Sakasho / エンジニア ※第4回発表
3	
みんなのデナレンジャーについては、	
・第5回ゲーム開発勉強会	DeNAの新しいネイティブ開発	
 hCp://www.slideshare.net/dena_study/de-na-47512627	
・第5回ゲーム開発勉強会 制作を⽀えたツール達	
 hCp://www.slideshare.net/dena_study/watanabe-20150428-47517631	
	
Sakashoについては、	
・第4回ゲーム開発勉強会	Rubyで作る	Game	Backend	as	a	Service	
 hCp://www.slideshare.net/dena_study/game-baas
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
アジェンダ
n  ガールアックスとは?
n  マルチプレイなリアルタイム通信ゲームの開発環境整備
n  Next Step...
4
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ガールアックスとは?
5
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
5vs5対戦 カジュアルMOBAゲーム
n  iOS / Android 向け
6
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
デモムービー(1分程度)
n  ガールアックス_デモ.mp4
7
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ガールアックスの主な技術	(1/3)
n  内製のリアルタイム通信サーバー「IRIS」を使った1本⽬のタイトル
n  リアルタイム通信サーバーの基本機能(ざっくり)
n  ルーム … 複数⼈が参加できるクローズドな部屋で通信しあう
n  リレー … Aさんの発⾏したメッセージをB,C,Dさんに伝える
n  マッチング … 適切なルームが選ばれて参加する
n  リアルタイム通信サーバーの製品
n  モノビットエンジン
n  Photon Cloud/Server
n  etc…
8	
ガールアックスの制作話は「DeNA	CREATOR	BLOG」でも掲載しています!	
・武器を⼿に陣取りバトル!「ガールアックス」リリース!	
 hCp://creator.dena.jp/archives/45144594.html
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ガールアックスの主な技術	(2/3)
n  内製フレームワーク「Lift Engine」
n  cocos2d-x をベースとする2Dゲームエンジン
n  ⾼パフォーマンス
n  ⾼い表現⼒
n  アプリ開発を効率化するための各種機能
n  マルチスレッドによる各種⾮同期APIの実装
n  内製サウンドエンジン「DeAL」
n  アプリケーション開発社はcocos2d-xを意識しない
n  ネイティブアプリ開発経験の少ない開発者のお⼿本としての実装
n  ゲーム本体もC++で実装する
9	
LiY	Engineについては、	
・DeNA流	cocos2d-x	との付き合い⽅	
 hCp://www.slideshare.net/dena_study/denacocos2d-x	
デブサミ2015	
『DeNA流	cocos2d-x	との付き合い⽅』	
より引⽤
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ガールアックスの主な技術	(3/3)
n  内製の汎⽤ゲームサーバー&クライアント「Sakasho」
n  Sakasho = Game Backend as a Service
n  セーブデータ保存、マスターデータ配信、アセット配信
n  お知らせ、カスタマーサポート
n  etc…
n  ゲームチームはサーバー開発ゼロ
n  ゲームのクライアント開発だけに集中できる
10	
Sakashoについては、	
・第4回ゲーム開発勉強会	Rubyで作る	Game	Backend	as	a	Service	
 hCp://www.slideshare.net/dena_study/game-baas
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
マルチプレイな
リアルタイム通信ゲームの
開発環境整備
11
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
環境整備(1/6)	-	マルチプレイを気軽に試せる開発環境
n  スマートフォン向けゲームの開発ではPC上での開発は⼀般的
n  cocos2d-x なら iOS Simulator で実⾏
n  Unity なら Unity Editor 上で実⾏
→  開発効率重視 … 実機確認より⼿軽でかつ⾼速であることが多い
n  マルチプレイのゲームでもPC上でマルチプレイ開発がオススメ
n  ガールアックスは Win/Macアプリとしてビルドできる
n  複数アプリ起動してマルチプレイを⾼速実⾏
n  速度⽐: Macアプリ複数実⾏ >>> iOS Simulator
n  もちろん実機確認は適宜⾏う
12
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
環境整備(1/6)	-マルチプレイを気軽に試せる開発環境
13
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
環境整備(2/6)	–	通信エンジンの切り替え機能
n  ガールアックスは複数の通信エンジン(サーバー)に対応
n  オフライン(シングルプレイ)
n  IRIS
n  他社製品
n  オフラインモードは便利
n  ブレークポイントデバッグができる
n  通信周り以外を実装するときに、その部分に集中できる
n  ガールアックスでは
n  通信の中間ロジック層でエンジンの違いを吸収する
n  ゲームのメインロジックからはエンジンの違いを意識しない
14
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
環境整備(3/6)	–	通信遅延のシミュレーション機能
n  スマートフォンの通信環境
n  Wi-Fi、LTE、3Gなど
n  クライアントA -> サーバー -> クライアントB の通信時間
n  通信が不安定になることもある
n  通信遅延をシミュレーションする機能が必要
n  メッセージの送信を常にN秒前後遅延させて送信
n  時たま、遅延の秒数を増やす(スパイクさせる)
15
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
環境整備(4/6)	–	通信状況を表⽰する機能
n  通信の量、内容、品質の監視
n  送受信しすぎていないか?
n  通信品質が変動した時にゲームがどんな影響を受けているか?
n  RTT(ラウンドトリップタイム)の監視
n  対サーバー、対他クライアント
n  通信量や内容を常に画⾯に表⽰するデバッグ機能
n  通信の量、内容、品質に敏感になる
n  ゲーム処理に問題があるのか
n  通信ロジックに問題があるのか
n  通信環境に問題があるのか
n  サーバーに問題があるのか
16
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
環境整備(5/6)	–	マッチング条件を変更する機能
n  特定のルームに参加させる機能
n  開発中は⾃分専⽤のルームに参加し続ける
n  他の開発者のルームに勝⼿に⼊らない
n  品質検証(テスト)を並⾏して⾛らせられる
n  ルームに特定の⼈数を集めての検証を複数同時に⾏える
n  通信ロジックが異なるクライアントをマッチさせない
n  通信ロジックが異なる?
n  アプリのVer1.1とVer1.2では、
機能追加やバグ修正によって通信内容の互換性が失われた
n  通信ロジックをナンバリングしてマッチングの条件に加える
17
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
環境整備(6/6)	–	通信ログを残す
n  バグはどこにでも発⽣する
n  通信に関するバグは追いにくい
n  ちゃんとログを残して調査できるように
n  ロジック単位でログ出⼒をする
n  ロジック単位でログ出⼒の可否が変更できると調査しやすいこと
もある
n  通信サーバーとのログ
n  クライアントの通信ロジック層のログ
n  遅延シミュレーションのログ
n  ゲームのメインロジックのログ
n  etc...
18
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
NEXT STEP...
19
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Next	Step…	(1/2)
n  リアルタイム通信ゲームの開発で意識しなければならないことは
まだまだたくさんある
n  どのクライアントがどの判定を⾏うか
n  ホストクライアントが全てを取り仕切る?
n  近距離・遠距離攻撃の当たり判定はどのクライアントが⾏う?
n  ガールアックスでは攻撃種類によって当たり判定をするクライア
ントが違う
n  メッセージの通信量や回数を削減できるか?
n  通信=電池⾷う
n  通信回数が少ないほうが⻑く遊べる
n  通信回数が多いほうがよりリアルタイムな情報でゲームが進⾏する
n  トレードオフ
20
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Next	Step…	(2/2)
n  リアルタイム通信ゲームの開発で意識しなければならないことは
まだまだたくさんある
n  チートを⾒抜く
n  わざと遅延させていないか
n  通信内容を改ざんされていないか
n  etc …
n  遅延をいかに”ごまかす”か
n  クライアントA -> サーバー -> クライアントB の通信時間
n  ユーザーに遅延を感じさせないようにどう魅せるかが勝負
n  ガールアックスでも通信メッセージの遅延状況に応じて
様々な”ごまかし”処理を⼊れている
21
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
まとめ
22
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
まとめ
n  リアルタイム通信ゲームの開発ならではの環境整備をしましょう
n  通信の量、内容、品質に敏感になろう
n  ユーザーに遅延を感じさせないようにどう魅せるかが勝負
23
Copyright	(C)	DeNA	Co.,Ltd.	All	Rights	Reserved.	
ご清聴ありがとうございました!!
24

ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門