Weitere ähnliche Inhalte Ähnlich wie 世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps] (20) Mehr von Google Cloud Platform - Japan (20) Kürzlich hochgeladen (11) 世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]3. ⾃自⼰己紹介
河原 真太郎郎 ⽒氏
株式会社バンダイナムコエンターテインメント
NE事業部 プロダクションディビジョン
第1プロダクション プロデュース4課 マネージャー
前職は元コンシューマーゲーム(GC)プログラマー。
株式会社バンダイナムコエンターテインメント(BNE)に転職後は
ガラケーアプリ、スマフォアプリのシステムディレクターとして
約 12 年年従事し、2016 年年度度からシステムが分かる
プロデューサーとしてプロダクションへ移籍。
現在はマネージャーとしてプロデュースチームを管理理しながら、
BNE アプリ全体のサーバーインフラシステム構築を統括する。
ドラゴンボールレジェンズには企画当初からシステムデザイン責任者
として参画し、全世界リアルタイム対戦の構築を指揮する。
5. なぜ GCPか?
• ドラゴンボールレジェンズは Network Latency が命のゲームモデル
• 全世界リアルタイム対戦プレイを現実させるためにNetwork性能を重視
他社クラウドとの性能検証の結果もっともLatencyの少ないGCPを選択
※開発当時調べ
7. AnalyticsPipelinesIngest
Storage
User data
Cloud Spanner
cache & temporary database
Application
Cloud
DNS
Cloud Load
Balancing
Login(auth) server
Compute Engine
Api(game) server
Compute Engine
Matching server
Compute Engine
allocator server
Compute Engine
co-‐‑‒turn server
Compute Engine
Redis (cluster)
Compute Engine
Redis (application)
Compute Engine
MongoDB
Compute Engine
GameMaster data
Cloud SQL
Asset & cache
Cloud Storage
Cloud Pub/Sub
Monitoring
Logging
Manage server
Compute Engine
Cloud Dataflow Big Query
Architecture: Gaming > Mobile Game Backend
User
サーバー構成と処理理関係について
©バードスタジオ/集英社・フジテレビ・東映アニメーション
©BANDAI NAMCO Entertainment Inc.
8. AnalyticsPipelinesIngest
Storage
User data
Cloud Spanner
cache & temporary database
Application
Cloud
DNS
Cloud Load
Balancing
Login(auth) server
Compute Engine
Api(game) server
Compute Engine
Matching server
Compute Engine
allocator server
Compute Engine
co-‐‑‒turn server
Compute Engine
Redis (cluster)
Compute Engine
Redis (application)
Compute Engine
MongoDB
Compute Engine
GameMaster data
Cloud SQL
Asset & cache
Cloud Storage
Cloud Pub/Sub
Monitoring
Logging
Manage server
Compute Engine
Cloud Dataflow Big Query
Architecture: Gaming > Mobile Game Backend
User
今⽇日のメイン
PvP関係
・カジュアルマッチ
・レーティングマッチ
・フレンドバトル
11. PvPの仕組み(負荷を考慮)
matching
server
Api(game)
server
Api(game)
server
対戦リクエスト 対戦リクエスト
対戦相
⼿手を検索索
対戦相
⼿手を検索索
STUN
を
リクエスト
対戦相⼿手情
報の返却
(IP等)
対戦相⼿手情
報の返却
(IP等)
allocator
server
coturn
server
coturn
server
coturn
server
coturn
server
・・・
turn-‐‑‒allocator
で使⽤用する
turnserver を確定 Redis
(application)
turnseverへの
アクセスキーを
保存/参照
turnX
12. turnX を利利⽤用した PvP 対戦について
○ turnX ・・・
・オープンソースの turnserver (coturn) を改造
さらに本作⽤用に turnserver⽤用バランサー(allocator server)を開発
・ネットワーク負荷のかかる TURN サーバを分散することにより
Google Network を最⼤大限に利利⽤用出来るようにしている
14. PvPの仕組み(超⾼高負荷を考慮)
matching
server
Api(game)
server
Api(game)
server
対戦リクエスト 対戦リクエスト
対戦相
⼿手を検索索
対戦相
⼿手を検索索
allocator
server
coturn
server
coturn
server
coturn
server
coturn
server
Redis
(application)
STUN
を
リクエスト
対戦相⼿手情
報の返却
(IP等)
対戦相⼿手情
報の返却
(IP等)
turn-‐‑‒allocator
で使⽤用する
turnserver を確定
turnseverへの
アクセスキーを
保存/参照
turnX
allocator
server
coturn
server
・・・
Redis
(application)
coturn
server
coturn
server
coturn
server
allocator
server
coturn
server
・・・
Redis
(application)
coturn
server
coturn
server
coturn
server
allocator
server
coturn
server
・・・
Redis
(application)
coturn
server
coturn
server
coturn
server
・・・