24
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. マルチプレイの リアルタイム通信ゲーム開発⼊⾨ 第7回DeNAゲーム開発勉強会×モノビット ガールアックス Dec 17, 2015 上野 裕介 / うえちょこ [email protected] Japanリージョンゲーム事業本部 技術・編成部 開発基盤グループ DeNA Co., Ltd.

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

Embed Size (px)

Citation preview

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

マルチプレイのリアルタイム通信ゲーム開発⼊⾨

第7回DeNAゲーム開発勉強会×モノビットガールアックス

Dec17,2015

上野 裕介/うえちょこ[email protected]リージョンゲーム事業本部技術・編成部 開発基盤グループDeNACo.,Ltd.

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

⾃⼰紹介

2

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

⾃⼰紹介

n  上野 裕介(うえちょこ) / @uechocon  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-47517631Sakashoについては、・第4回ゲーム開発勉強会Rubyで作るGameBackendasaService hCp://www.slideshare.net/dena_study/game-baas

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

アジェンダ

n  ガールアックスとは?n  マルチプレイなリアルタイム通信ゲームの開発環境整備n  Next Step...

4

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

ガールアックスとは?

5

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

5vs5対戦 カジュアルMOBAゲーム

n  iOS / Android 向け

6

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

デモムービー(1分程度)

n  ガールアックス_デモ.mp4

7

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

ガールアックスの主な技術(1/3)

n  内製のリアルタイム通信サーバー「IRIS」を使った1本⽬のタイトル

n  リアルタイム通信サーバーの基本機能(ざっくり)n  ルーム … 複数⼈が参加できるクローズドな部屋で通信しあうn  リレー … Aさんの発⾏したメッセージをB,C,Dさんに伝えるn  マッチング … 適切なルームが選ばれて参加する

n  リアルタイム通信サーバーの製品n  モノビットエンジンn  Photon Cloud/Servern  etc…

8

ガールアックスの制作話は「DeNACREATORBLOG」でも掲載しています!・武器を⼿に陣取りバトル!「ガールアックス」リリース! hCp://creator.dena.jp/archives/45144594.html

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

ガールアックスの主な技術(2/3)

n  内製フレームワーク「Lift Engine」n  cocos2d-x をベースとする2Dゲームエンジンn  ⾼パフォーマンスn  ⾼い表現⼒n  アプリ開発を効率化するための各種機能n  マルチスレッドによる各種⾮同期APIの実装n  内製サウンドエンジン「DeAL」n  アプリケーション開発社はcocos2d-xを意識しないn  ネイティブアプリ開発経験の少ない開発者のお⼿本としての実装

n  ゲーム本体もC++で実装する

9

LiYEngineについては、・DeNA流cocos2d-xとの付き合い⽅ hCp://www.slideshare.net/dena_study/denacocos2d-x

デブサミ2015『DeNA流cocos2d-xとの付き合い⽅』

より引⽤

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

ガールアックスの主な技術(3/3)

n  内製の汎⽤ゲームサーバー&クライアント「Sakasho」n  Sakasho = Game Backend as a Service

n  セーブデータ保存、マスターデータ配信、アセット配信n  お知らせ、カスタマーサポートn  etc…

n  ゲームチームはサーバー開発ゼロn  ゲームのクライアント開発だけに集中できる

10

Sakashoについては、・第4回ゲーム開発勉強会Rubyで作るGameBackendasaService hCp://www.slideshare.net/dena_study/game-baas

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

マルチプレイなリアルタイム通信ゲームの開発環境整備

11

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

環境整備(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

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

環境整備(1/6)-マルチプレイを気軽に試せる開発環境

13

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

環境整備(2/6)–通信エンジンの切り替え機能

n  ガールアックスは複数の通信エンジン(サーバー)に対応n  オフライン(シングルプレイ)n  IRISn  他社製品

n  オフラインモードは便利n  ブレークポイントデバッグができるn  通信周り以外を実装するときに、その部分に集中できる

n  ガールアックスではn  通信の中間ロジック層でエンジンの違いを吸収するn  ゲームのメインロジックからはエンジンの違いを意識しない

14

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

環境整備(3/6)–通信遅延のシミュレーション機能

n  スマートフォンの通信環境n  Wi-Fi、LTE、3Gなどn  クライアントA -> サーバー -> クライアントB の通信時間n  通信が不安定になることもある

n  通信遅延をシミュレーションする機能が必要n  メッセージの送信を常にN秒前後遅延させて送信n  時たま、遅延の秒数を増やす(スパイクさせる)

15

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

環境整備(4/6)–通信状況を表⽰する機能

n  通信の量、内容、品質の監視n  送受信しすぎていないか?n  通信品質が変動した時にゲームがどんな影響を受けているか?

n  RTT(ラウンドトリップタイム)の監視n  対サーバー、対他クライアント

n  通信量や内容を常に画⾯に表⽰するデバッグ機能

n  通信の量、内容、品質に敏感になるn  ゲーム処理に問題があるのかn  通信ロジックに問題があるのかn  通信環境に問題があるのかn  サーバーに問題があるのか

16

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

環境整備(5/6)–マッチング条件を変更する機能

n  特定のルームに参加させる機能n  開発中は⾃分専⽤のルームに参加し続けるn  他の開発者のルームに勝⼿に⼊らないn  品質検証(テスト)を並⾏して⾛らせられる

n  ルームに特定の⼈数を集めての検証を複数同時に⾏える

n  通信ロジックが異なるクライアントをマッチさせないn  通信ロジックが異なる?

n  アプリのVer1.1とVer1.2では、機能追加やバグ修正によって通信内容の互換性が失われた

n  通信ロジックをナンバリングしてマッチングの条件に加える

17

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

環境整備(6/6)–通信ログを残す

n  バグはどこにでも発⽣するn  通信に関するバグは追いにくいn  ちゃんとログを残して調査できるように

n  ロジック単位でログ出⼒をするn  ロジック単位でログ出⼒の可否が変更できると調査しやすいこと

もあるn  通信サーバーとのログn  クライアントの通信ロジック層のログn  遅延シミュレーションのログn  ゲームのメインロジックのログn  etc...

18

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

NEXT STEP...

19

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

NextStep…(1/2)

n  リアルタイム通信ゲームの開発で意識しなければならないことはまだまだたくさんある

n  どのクライアントがどの判定を⾏うかn  ホストクライアントが全てを取り仕切る?n  近距離・遠距離攻撃の当たり判定はどのクライアントが⾏う?n  ガールアックスでは攻撃種類によって当たり判定をするクライア

ントが違う

n  メッセージの通信量や回数を削減できるか?n  通信=電池⾷うn  通信回数が少ないほうが⻑く遊べるn  通信回数が多いほうがよりリアルタイムな情報でゲームが進⾏するn  トレードオフ

20

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

NextStep…(2/2)

n  リアルタイム通信ゲームの開発で意識しなければならないことはまだまだたくさんある

n  チートを⾒抜くn  わざと遅延させていないかn  通信内容を改ざんされていないかn  etc …

n  遅延をいかに”ごまかす”かn  クライアントA -> サーバー -> クライアントB の通信時間n  ユーザーに遅延を感じさせないようにどう魅せるかが勝負n  ガールアックスでも通信メッセージの遅延状況に応じて

様々な”ごまかし”処理を⼊れている

21

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

まとめ

22

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

まとめ

n  リアルタイム通信ゲームの開発ならではの環境整備をしましょう

n  通信の量、内容、品質に敏感になろう

n  ユーザーに遅延を感じさせないようにどう魅せるかが勝負

23

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

Copyright(C)DeNACo.,Ltd.AllRightsReserved.

ご清聴ありがとうございました!!

24