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.

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

3,053 views

Published on

第7回DeNAゲーム開発勉強会×モノビット

Published in: Mobile
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

  1. 1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. マルチプレイの リアルタイム通信ゲーム開発⼊⾨ 第7回DeNAゲーム開発勉強会×モノビット ガールアックス Dec 17, 2015 上野 裕介 / うえちょこ yusuke.ueno@dena.com Japanリージョンゲーム事業本部 技術・編成部 開発基盤グループ DeNA Co., Ltd.
  2. 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⾃⼰紹介 2
  3. 3. 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
  4. 4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. アジェンダ n  ガールアックスとは? n  マルチプレイなリアルタイム通信ゲームの開発環境整備 n  Next Step... 4
  5. 5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ガールアックスとは? 5
  6. 6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 5vs5対戦 カジュアルMOBAゲーム n  iOS / Android 向け 6
  7. 7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. デモムービー(1分程度) n  ガールアックス_デモ.mp4 7
  8. 8. 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
  9. 9. 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 との付き合い⽅』 より引⽤
  10. 10. 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
  11. 11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. マルチプレイな リアルタイム通信ゲームの 開発環境整備 11
  12. 12. 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
  13. 13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 環境整備(1/6) -マルチプレイを気軽に試せる開発環境 13
  14. 14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 環境整備(2/6) – 通信エンジンの切り替え機能 n  ガールアックスは複数の通信エンジン(サーバー)に対応 n  オフライン(シングルプレイ) n  IRIS n  他社製品 n  オフラインモードは便利 n  ブレークポイントデバッグができる n  通信周り以外を実装するときに、その部分に集中できる n  ガールアックスでは n  通信の中間ロジック層でエンジンの違いを吸収する n  ゲームのメインロジックからはエンジンの違いを意識しない 14
  15. 15. 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
  16. 16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 環境整備(4/6) – 通信状況を表⽰する機能 n  通信の量、内容、品質の監視 n  送受信しすぎていないか? n  通信品質が変動した時にゲームがどんな影響を受けているか? n  RTT(ラウンドトリップタイム)の監視 n  対サーバー、対他クライアント n  通信量や内容を常に画⾯に表⽰するデバッグ機能 n  通信の量、内容、品質に敏感になる n  ゲーム処理に問題があるのか n  通信ロジックに問題があるのか n  通信環境に問題があるのか n  サーバーに問題があるのか 16
  17. 17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 環境整備(5/6) – マッチング条件を変更する機能 n  特定のルームに参加させる機能 n  開発中は⾃分専⽤のルームに参加し続ける n  他の開発者のルームに勝⼿に⼊らない n  品質検証(テスト)を並⾏して⾛らせられる n  ルームに特定の⼈数を集めての検証を複数同時に⾏える n  通信ロジックが異なるクライアントをマッチさせない n  通信ロジックが異なる? n  アプリのVer1.1とVer1.2では、 機能追加やバグ修正によって通信内容の互換性が失われた n  通信ロジックをナンバリングしてマッチングの条件に加える 17
  18. 18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 環境整備(6/6) – 通信ログを残す n  バグはどこにでも発⽣する n  通信に関するバグは追いにくい n  ちゃんとログを残して調査できるように n  ロジック単位でログ出⼒をする n  ロジック単位でログ出⼒の可否が変更できると調査しやすいこと もある n  通信サーバーとのログ n  クライアントの通信ロジック層のログ n  遅延シミュレーションのログ n  ゲームのメインロジックのログ n  etc... 18
  19. 19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. NEXT STEP... 19
  20. 20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Next Step… (1/2) n  リアルタイム通信ゲームの開発で意識しなければならないことは まだまだたくさんある n  どのクライアントがどの判定を⾏うか n  ホストクライアントが全てを取り仕切る? n  近距離・遠距離攻撃の当たり判定はどのクライアントが⾏う? n  ガールアックスでは攻撃種類によって当たり判定をするクライア ントが違う n  メッセージの通信量や回数を削減できるか? n  通信=電池⾷う n  通信回数が少ないほうが⻑く遊べる n  通信回数が多いほうがよりリアルタイムな情報でゲームが進⾏する n  トレードオフ 20
  21. 21. 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
  22. 22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ 22
  23. 23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ n  リアルタイム通信ゲームの開発ならではの環境整備をしましょう n  通信の量、内容、品質に敏感になろう n  ユーザーに遅延を感じさせないようにどう魅せるかが勝負 23
  24. 24. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ご清聴ありがとうございました!! 24

×