Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GCPでサーバレスな構成でマルチプレイヤーしてみた

 GCPでサーバレスな構成でマルチプレイヤーしてみた

airtanker

July 10, 2022
Tweet

More Decks by airtanker

Other Decks in Programming

Transcript

  1. 2 自己紹介
 田中 晶
 GCP、AWS、サーバ、ML、たまにFE 
 データエンジニア。GCP認定資格切れた 
 SNS秘密系エンジニア
 最近、会社アイコンをAIでアフロにしました

    
 → 金髪アフロにしました
 データ本部データアナリティクス部AI推進グループ 
 データ本部データ基盤部データエンジニアリング第二グループ 
 ゲーム事業本部開発事業部開発二部エンターテインメントサイエンス グループ
 秘密
 秘密

  2. 9 それぞれの役割 📝
 2 • フロントエンド(クライアント)
 ◦ CloudRunじゃなくても良かったが技術スタックを揃えるため 
 •

    WebSocketサーバ(ゲームサーバ) 
 ◦ 実際に行動したときに同期させたい状態を管理するサーバ 
 ◦ プレイヤーの x, y, z 座標や向き、アクションなど 
 • 永続化サーバ(Redis)
 ◦ CloudRunはサーバレス
 ◦ ステートレスな仕組みなので、状態をRedisで永続化する 
 • CI/CD
 ◦ Github Actions から Workload Identity 連携で IAM 認証 
 ◦ GitHub Actions からのキーなしの認証の有効化 | Google Cloud Blog 

  3. 11 WebSocketサーバ(ゲームサーバ)について👷
 • WebSocketサーバ(ゲームサーバ)について 
 ◦ Colyseusについて
 ▪ Node.js 製

    WebSocket ベースでコミュニケーションするマルチプレイ用フレーム ワーク
 ▪ 公式ドキュメントにも載ってる 
 • Real-time Multiplayer with Colyseus | Babylon.js Documentation 
 ▪ Protocol Buffer のような仕組みの schema で状態を定義できる 
 • GitHub - colyseus/schema: An incremental binary state serializer with delta encoding for games. 
 1
  4. 12 WebSocketサーバ(ゲームサーバ)について👷
 • WebSocketサーバ(ゲームサーバ)について 
 ◦ CloudRunについて
 ▪ Cloud Run:

    コンテナを秒単位で本番環境にデプロイ | Google Cloud 
 ▪ コンテナをサーバレスにホストできる 
 ▪ 2021年に WebSocket、HTTP/2、gRPC に対応した 
 ▪ Google が勝手にプロビジョニングしてくれる! 
 ▪ 基本的にはステートレス 
 ▪ 最近スケールアウト(並列起動)した場合の接続先サーバをなるべく同一してく れるセッション アフィニティ がプレビューに
 1
  5. 13 永続化サーバ(Redis) 💾
 • 永続化サーバ(Redis)
 ◦ Redisについて
 ▪ オンメモリデータベース 


    ▪ NoSQLの一つ
 ◦ Redisのマネージドサービスについて 
 ▪ 今回は RedisLab を利用 
 ▪ GCP の Memorystore for Redis は、ちょっと too match だった 
 ▪ 本番で動かすなら Amazon MemoryDB for Redis とかが良い 
 • スケールさせる場合、クラスタリングできたほうが良い 
 ◦ 結果整合性で、マスターがSPOF(単一障害点)になる 
 ▪ コストだけで見るなら、最近話題になった Upstash なども選択肢に 
 • 無料で使えるデータベースUpstashをご存知、ないのですか!?
 2
  6. 15 まとめと今後 🚀
 • まとめ
 ◦ サーバレスなので比較的安く、サーバ運用から開放 
 • パフォーマンス測定したい


    ◦ Redis の限界までスケールアウトするので、結構同時接続できるはず 
 ◦ プレイヤーなどアセット描画のほうがボトルネックになりそう? 
 • コミュニティ貢献して、盛り上げていきたい 
 ◦ なにか公開できるものは公開していきたい 
 • AI エージェントや、それが動くワールドをつくりたい 
 ◦ ブラウザで AI とインタラクティブなやり取りできたら素敵 
 • ゲームロジックと VR 的なワールドの統合をしたい 
 ◦ みんなでわいわい遊びたい
 1
  7. 16 ゲーム × AI (ちょっと宣伝) 🏁
 ➔ 今年の GDC にチームメンバーが登壇しました!

    🎉
 ◆ Schedule | GDC 2022 | Application of AI Technology and Organizational Design to Improve Game Quality and Productivity 
 ➔ CEDEC 2022 も関連チーム含め、登壇するのでよろしくお願いします! 
 ◆ ゲームの品質と生産性を向上させるためにー 組織デザインが加速させるAI活用 
 ◆ アセット生成AIで作成したキャラクターをリリースした事例 ~これが『逆転オセロニア』の エイプリルフール!~ 
 ◆ 現代ゲームでの最強対戦 AI の作り方!『逆転オセロニア』AI がトップレベルの強さに 到達した理由
 ◆ 広告識別子に依存しないエンタメ広告運用~SNSの"キーワード"に着目した最適化〜 
 2