485 Views
May 12, 17
スライド概要
講演者:並木 健太郎(GMOクラウド株式会社)
Christof Wegmann(Exit Games GmbH)
神﨑 喜多(株式会社バンダイナムコエンターテインメント)
大石 伸昭(株式会社バンダイナムコスタジオ)
こんな人におすすめ
・マルチプレイゲーム開発に興味がある方
・世界展開、海外展開に興味がある方
・より高度なリアルタイム同期に興味がある方
受講者が得られる知見
・簡単なマルチプレイゲームの実現方法
・事例を元に世界展開における様々な課題と解決方法
・より高度なリアルタイム同期の実現方法
講演動画:https://youtu.be/HJvB59sUkAY
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
マルチプレイゲームの グローバル展開事例と 完全同期を実現する Photon TrueSync のご紹介
講演者ご紹介
Christof Wegmann Founder & CTO, Exit Games GmbH
神崎 喜多 株式会社バンダイナムコ エンターテインメント
大石 伸昭 株式会社バンダイナムコ スタジオ
並木 健太郎 GMOクラウド株式会社 シニアテクニカルアドバイザー
アジェンダ • Introduction of Photon • by Christof Wegmann • Photon TrueSyncとPhoton Enterprise Cloudのご紹介 • by 並木 健太郎 • マルチプレイゲームのグローバル展開事例 • by 神崎 喜多 • by 大石 伸昭
Introduction of Photon Exit Games GmbH CTO Christof Wegmann
Photon We Make Multiplayer Simple.
Photon Stats 200,000 Developers Signed Up 150 Million MAU in the Photon Cloud 3.5+ Petabytes traffic per month
Photon Products P2P + Relay Authoritative Bolt Thunder Multiplayer Relay Server „Plugins“ PUN Lockstep Deterministic TrueSync Quantum Video Messaging On Premise
Support all Major Unity Exports
Nintendo Switch Support
Photon Quantum: Q3/2017
Built for … Unity only: Brawler, Moba, Coop, RTS
Fully Deterministic • • • • Path Finding (NavMesh) Fog of War (integrated into simulation e.g. vision checks) Low network overhead (inputs sent between players) No network interpolation required (no artifical delay added for interpolating gamestate) • State of the art prediction/rollback deterministic simulation without lockstepping • Built-in resistance to cheats that rely on modifying the game state (making yourself invulnerable, etc.) • Simulation without Unity to verify game results.
Zero Runtime Allocations • No GC from simulation code • Everything is preallocated and re-used • Blazing fast performance
Social Backend • • • • In-Game Chat & Chat Channels Friends Lists/Invites/PMs News & Notices Matchmaking (with support for player groups, i.e. find a game with your friends) • Pre-Game Lobby (character pick, countdown, chat, etc.)
TrueSyncとEnterprise Cloudのご紹介 GMOクラウド株式会社 並木 健太郎
New Service! Photonの進化系!
キーワード キーワードは 完全同期 Lockstep
従来の物理オブジェクトの同期手 法 1. 座標で同期 – イベント時に座標を同期 • 齟齬は生じない • メッセージ数が大きくなる 2. ベクトルを同期 – 自分自身の座標と移動量、方向を同期 • メッセージ数は少ない • 物理エンジンに決定性がないため齟齬が生じる
TrusSyncの完全同期とは…? • すべてのクライアントに おいて、同期対象の全イ ンスタンスが同一タイミ ングで同様に動き、かつ 同一タイミングでイベン トが発生する どう実現…?
実現方法の考え方 基本 物理演算の結果を全クライアントで一致させる! そのために 物理エンジンに完全性と同期 そして インスタンスへの入力をPhotonで通信
簡単な実例 同期 生成 同期 生成 同期
どう使う? • Unityの物理エンジン の代わりに、 TrueSyncの物理エン ジンを各インスタン スにつければOK • 同期はPhotonが自動 でやってくれます
使いどころ • • • • 1対1のゲームには最適 多人数では逆に向かないケースも TrueSyncはPUNも搭載 ゲーム内で使い分けも可能
ブースでデモしてます! • TrueSyncのデモをPhotonブースで体感できま す! • 第一ブースエリア、中央手前にありますので、 ぜひお越しください!
Photon Enterprise Cloudのご紹介
Photon Enterprise Cloud • Photon Cloudの上位サービスとして、 Photon Enterprise Cloudをご用意しています • Photon Cloudでは難しいと思われる場合でも、 Enterprise Cloudなら 大丈夫です!
Cloud vs. Enterprise Cloud • • • • • Publicサービス (共有) 20 - 5,000CCUまで Webhooks対応 複数タイトル共有不可 サーバー設定変更不可 • • • • • Privateサービス (専有) 2,000CCU - 上限なし Webhooks & Plugin対応 複数タイトル共有可能 サーバー設定変更可能
Privateサービス • サービスを提供するサーバーは専有でご利用い ただけます • 他のお客さまによる影響の心配は一切ありませ ん • Pluginの利用が可能です!
CCUについて • 1,000CCU単位で、上限なく追加が可能 • ビッグタイトルになっても安心してご利用いた だけます • 最初はRealtimeでスタートし、規模が大きく なったらEnterprise Cloudに移行することもアプ リの書き換えなしで可能
複数タイトル利用 • 構築されたEnterprise Cloudを複数タイトルで共 有することができます • 複数タイトルでご利用いただくことにより、利 用効率を高めていくことも可能に
世界中のリージョンが利用可能 • 世界10リージョンに設置可能 – それ以外ご希望の場合もご相談ください • 海外リージョン設置も可能なことにより、マル チプレイゲームの世界展開も容易に!
マルチプレイゲームのグローバル展開事例 Photonを利用した事例紹介 株式会社バンダイナムコエンターテインメント NE事業部第3プロダクション プロデュース1課 神崎 喜多 株式会社バンダイナムコスタジオ 技術統括本部 技術本部 ネットワーク統括部 システム4課 大石 伸昭
アジェンダ 1.Photonを使った上で気を付けた点について 2.Photonを使った海外展開について 3.Photonを使った複数案件の管理について Copyright © 2017 BANDAI NAMCO Entertainment 38
Photon導入の経緯 1.Photonの採用実績 BNEの案件で採用実績(PhotonServer)がありました。 2.Photonを選定した理由 リアルタイム通信サーバーを作成するのは困難であり、サーバーアプリケーション の開発をするに時間がかかると判断しました。 3.クライアント開発との親和性 クライアントはUnity開発なので、プラグインのあるPhotonは相性がよいと思いま した。 4.検証結果 実際に検証してみたところ、仕様に十分に耐える性能が確認できました。 Photonを使いましょう。 (この時点ではPhotonServerを採用予定) Copyright © 2017 BANDAI NAMCO Entertainment 39
PhotonServerの課題について 1.PhotonはWindowsサーバであること。 BNEでは、Windowsサーバーの管理経験が少なく不得手であると考えました。 例えば、細かいネットワーク周りのチューニングやセキュリティ対策の知見などが不足して いました。 2.Photonの設定やチューニングについて Photonの設定やチューニングはお任せしたい。 3.Photonのライセンス運用について 数が増えてくるとPhotonのライセンス管理も大変でした。 4.Windowsサーバの管理について ライセンスと設定と台数管理などが大変でした。 PhotonCloudを検討してみよう Copyright © 2017 BANDAI NAMCO Entertainment 40
PhotonCloudにしてみる? 1.Windowsサーバの管理について Windowsサーバーの管理をクラウドなのでしなくてよくなりました。 細かいネットワーク周りのチューニングなどしなくてよくなりました。 セキュリティ対策をお任せできるようになりました。 2. Photonの設定やチューニングについて Photonの設定やチューニングをお任せできるようになりました。 3. Photonのライセンス運用について ライセンス管理もPhotonCloudになりましたので、こちらで管理する必要がなくなりました。 4. Windowsサーバの管理について PhotonCloudになりましたので、サーバーの管理もしなくてよくなりました。 5.その他メリットについて 海外リージョンも存在しました。世界展開を考える上で非常に高いメリットでした。 PhotonCloudのメリットが多い。 Copyright © 2017 BANDAI NAMCO Entertainment 41
PhotonEnterpriseCloudにした理由 1. 安定したサービスにしたい 専有サービスになるので安心です。 2. 案件に応じたカスタマイズを行いたい 個々の案件でクラスタを立てれば、他の案件に影響することなく、カスタマイズが可能です。 3. 同時接続数について PhotonRealtimeの同時接続数はMax5000CCUでした。これでは、要件をみたしていません でした。そのため、 PhotonEnterpriseCloudにしました。 (PhotonEnterpriseCloud:1クラスタMax40000CCU) 4.複数の案件でも運用を簡単にしたい 1つのアカウントで複数の案件が利用可能です。 「PhotonEnterpriseCloud」はじめました。 Copyright © 2017 BANDAI NAMCO Entertainment 42
Photonを使用する上での注意点。その1 1.同期処理が必須 Photonを使うだけでは同期しません。同期するタイミングは必要です。 2.シビアな通信は難しい 対戦格闘ゲームやリアルタイムMMOなどの実現は非常に難しいと判断しました。 アクションゲームなども厳しいと判断しました。 3.Photonサーバ側で計算処理などはさせない Photon側でゲーム内判定や結果処理など処理がおもくなり、結果 同期ズレの要因となることがありました。 4.ゲームルーム検索について Photonで取得できるルームの数に制限があります。 Copyright © 2017 BANDAI NAMCO Entertainment 43
Photonを使用する上での注意点。その2 5.1クラスタの限界値について 1クラスタ最大4万CCUが限界これ以上はクラスタをわける必要があります。 6.マッチングシステムを別で用意する必要性について クラスター外マッチングなどする場合は、Photonの外側でマッチング ルールを生成してPhotonサーバに投げる必要がありました。 7.Photonに依存しすぎない Photonは万能ではありません。Photonの特性に合わせた ゲーム仕様が必要でした。 8.1メッセージの通信容量について 1200Byte以上の通信は送信しないようにしました。 エラーになるので場合があるので、メッセージサイズには注意が必要です。 Copyright © 2017 BANDAI NAMCO Entertainment 44
Photon利用時の注意点まとめ 1.同期タイミングを置くようにしました。 2.通信はできるだけ軽くしました。 3.Photonサーバ側では重い処理は避けました。 Copyright © 2017 BANDAI NAMCO Entertainment 45
Photonを使用する通信フローの例 Copyright © 2017 BANDAI NAMCO Entertainment 46
海外展開について Copyright © 2017 BANDAI NAMCO Entertainment 47
海外展開について 海外展開の前例について BNEでのリアルタイム通信系の海外展開の前例 がありませんでした。 そこで、いろいろ考えた構成が次のページです。 Copyright © 2017 BANDAI NAMCO Entertainment 48
初期構成案 Lobby API Game DB 欧州(本番) deploy Lobby API Lobby API Game DB Game DB 日本(本番) deploy API Game DB 豪州(本番) deploy 北米(本番) deploy APP(sa) APP(au) Lobby APP(na) APP(jp) APP(eu) deploy Lobby API Lobby API Game DB Game DB 南米(本番) 日本(開発) Manage Copyright © 2017 BANDAI NAMCO Entertainment 49
海外展開の課題や要件 1.運用の簡略化について 出来るだけ運用を楽にしたいのですが、先の案だと運用が大変です。 2.通信品質の考えについて 通信品質を保証するにはどうすればいいかを考える必要がありました。 3.ライセンス管理について ライセンス処理を含めて可用性を担保したかったです。 4.コストについて インフラコストいかに低減させるためにどうすれば良いか。先の案だとかかりすぎました。 5.マッチング方法について ワールドマッチングについてどうするかを考える必要がありました。 Copyright © 2017 BANDAI NAMCO Entertainment 50
海外展開の課題や要件の解決方法 どのように対策をしたのか? Copyright © 2017 BANDAI NAMCO Entertainment 51
海外対応ネットワーク図 マッチングを管理 Lobby 負荷対策 Lobby API Game Game jp us 遅延対策 遅延対策 最寄りのリージョンを選択 最寄りのリージョンを選択 最寄りのリージョンを選択 最寄りのリージョンを選択 APP APP APP Copyright © 2017 BANDAI NAMCO Entertainment APP 52
課題に対する解決方法について 1.運用の簡略化について 設計当初は5リージョンにAPIとPhotonのセットを用意する想定でした。 しかし、 5サービス運用しているのと変わらないインフラ運用コストがかか ると想定されました。そこで、検証をおこない。その結果を元に最適化をおこ ないました。 2.通信品質の考えについて 通信品質をとるか、マッチング範囲を取るかという判断において、通信品質 を取るために、状況に応じてPhotonのリージョンを増やすことを視野に入れ つつ、Photonのリージョンを2つにわけることにしました。 Copyright © 2017 BANDAI NAMCO Entertainment 53
課題に対する解決方法について 3.ライセンス管理について Photon Enterprise Cloudにすることで解決しました。 4.コストについて APIのリージョンを1つにして、Photonのリージョンを2つにすることでコ ストを下げることができました。 5.マッチング方法について 通信品質を考慮して、クライアントから一番近いPhotonリージョンへ接続 するAPIをつかい、マッチングをするようにしました。 Copyright © 2017 BANDAI NAMCO Entertainment 54
複数のPhotonの構成について 複数構成について Copyright © 2017 BANDAI NAMCO Entertainment 55
複数案件でPhotonを利用する場合の課題について 1.個別管理にする理由 Photonを利用する案件が複数あった場合、 メンテナンスや突発的なトラフィック増加などを 考慮する必要があります。 2.費用の按分について 案件ごとに費用を按分することを、考慮する 必要があります。 Copyright © 2017 BANDAI NAMCO Entertainment 56
複数案件ネットワーク構成 eu-cluster1 eu-cluster2 jp-cluster1 jp-cluster2 jp-cluster3 us-cluster1 us-cluster2 Lobby Lobby Lobby Lobby Lobby Lobby Lobby Game Game Game Game Game Game Game jp eu APP1 (WW) APP2 (JP) APP2 (WW) Copyright © 2017 BANDAI NAMCO Entertainment us プラグインを利用していないので、開発環境 と公開環境をAPP-IDを分けて相乗り プラグインを使う場合は、クラスタを分けると よいと思います。 57
複数案件の対応について 1.案件ごとにクラスタを分けました 最初は費用面を考えて、1クラスタ内に複数の案件を同居させていました。 Photonのバージョンアップメンテナンス対応や、費用の案件単位での分担方法に問題が 発生した為、1案件に1クラスタを分けるように構成を変更しました。 2.開発環境と公開環境について プラグインを利用していない案件では、開発環境と公開環境を同一クラスタにしています。 3.一元管理のメリットについて 一元管理しているので、知見の集約がしやすくなりました。 4.費用の按分について GMOさんへご相談いただければと思います。 Copyright © 2017 BANDAI NAMCO Entertainment 58
まとめ 1.Photonを使う上で、同期タイミングや通信フローなどを気を付けないと 正しくリアルタイム通信ができませんので注意が必要です。 2.Photon Enterprise Cloudを使うことで、海外でのリアルタイム通信の実 装と運用管理を簡略化することができました。 3.設計にあたっては、要件を見定め、仕様や構成を最適化しないと、インフ ラ費用や運用コストが大幅に膨れ上がりますので、注意が必要です。 Copyright © 2017 BANDAI NAMCO Entertainment 59
最後に リアルタイム通信の導入は、用法、用量を守って正しくお使いください。 Copyright © 2017 BANDAI NAMCO Entertainment 60
謝辞 ご協力いただきました皆様方に、厚く御礼申し上げます。 Copyright © 2017 BANDAI NAMCO Entertainment 61
最後に
今後の予定 • 5/30(火) • 6/28(水) Photon 勉強会@渋谷 GMOオフィス Photon 勉強会@大阪 GMO Yours その他も続々開催予定!
AppSealing • ゲームのクラッキングから守る 日本でもサービス開始 • クラウドサービスで簡単にゲームを保護 • Photonブースの隣でご紹介中!
まとめ • Photonは日々進化しています! • 進化系であるTrueSyncをぜひお試しください! • グローバル展開をクラウドで簡単に実現できる ネットワークエンジンはPhotonです!
Thank you!