Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GCPでサーバレスな構成でマルチプレイヤーしてみた
Search
airtanker
July 10, 2022
Programming
660
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GCPでサーバレスな構成でマルチプレイヤーしてみた
airtanker
July 10, 2022
More Decks by airtanker
See All by airtanker
ゲームAIシミュレータを活用した、GCPフルマネージドなゲームコアロジックの自動テストツール
akitanaairtanker
0
230
Other Decks in Programming
See All in Programming
5分で問診!Composer セキュリティ健康診断
codmoninc
0
570
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
900
霧の中の代数的エフェクト
funnyycat
1
420
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
150
共通化で考えるべきは、実装より公開する型だった
codeegg
0
270
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
640
関数型プログラミングのメリットって何だろう?
wanko_it
0
190
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.3k
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
610
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
2.9k
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
330
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.3k
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
エンジニアに許された特別な時間の終わり
watany
108
250k
Amusing Abliteration
ianozsvald
1
240
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
Git: the NoSQL Database
bkeepers
PRO
432
67k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
900
Documentation Writing (for coders)
carmenintech
77
5.4k
Product Roadmaps are Hard
iamctodd
55
12k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
Technical Leadership for Architectural Decision Making
baasie
3
440
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
Transcript
GCPでサーバレスな構成でマルチプレ イヤーしてみた 田中 晶 データ本部データアナリティクス部AI推進グループ データ本部データ基盤部データエンジニアリング第二グループ ゲーム事業本部開発事業部開発二部エンターテインメントサイエンスグループ 株式会社ディー・エヌ・エー @ DeNA
Co.,Ltd.
2 自己紹介 田中 晶 GCP、AWS、サーバ、ML、たまにFE データエンジニア。GCP認定資格切れた SNS秘密系エンジニア 最近、会社アイコンをAIでアフロにしました
→ 金髪アフロにしました データ本部データアナリティクス部AI推進グループ データ本部データ基盤部データエンジニアリング第二グループ ゲーム事業本部開発事業部開発二部エンターテインメントサイエンス グループ 秘密 秘密
3 自己紹介 https://speakerdeck.com/akitanaairtanker/kemuai simiyuretawohuo-yong-sita-gcphurumanesitonak emukoarositukufalsezi-dong-tesutoturu https://lp.cloudplatformonline.com/rs/808-GJW- 314/images/ML_Summit_D2-Session08.pdf https://speakerdeck.com/dena_tech/techcon202 1-9
4 目次 デモ 技術構成 技術トピック 今後について 1 2 3 4
5 1. デモ
6 デモ 🎉 https://drive.google.com/file/d/1VYrguEl8qS-Gp7XQXtlIVUCyDh8J7e2p/view?usp=sh aring 1
7 2. 技術構成
8 構成図 💡 1
9 それぞれの役割 📝 2 • フロントエンド(クライアント) ◦ CloudRunじゃなくても良かったが技術スタックを揃えるため •
WebSocketサーバ(ゲームサーバ) ◦ 実際に行動したときに同期させたい状態を管理するサーバ ◦ プレイヤーの x, y, z 座標や向き、アクションなど • 永続化サーバ(Redis) ◦ CloudRunはサーバレス ◦ ステートレスな仕組みなので、状態をRedisで永続化する • CI/CD ◦ Github Actions から Workload Identity 連携で IAM 認証 ◦ GitHub Actions からのキーなしの認証の有効化 | Google Cloud Blog
10 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
12 WebSocketサーバ(ゲームサーバ)について👷 • WebSocketサーバ(ゲームサーバ)について ◦ CloudRunについて ▪ Cloud Run:
コンテナを秒単位で本番環境にデプロイ | Google Cloud ▪ コンテナをサーバレスにホストできる ▪ 2021年に WebSocket、HTTP/2、gRPC に対応した ▪ Google が勝手にプロビジョニングしてくれる! ▪ 基本的にはステートレス ▪ 最近スケールアウト(並列起動)した場合の接続先サーバをなるべく同一してく れるセッション アフィニティ がプレビューに 1
13 永続化サーバ(Redis) 💾 • 永続化サーバ(Redis) ◦ Redisについて ▪ オンメモリデータベース
▪ NoSQLの一つ ◦ Redisのマネージドサービスについて ▪ 今回は RedisLab を利用 ▪ GCP の Memorystore for Redis は、ちょっと too match だった ▪ 本番で動かすなら Amazon MemoryDB for Redis とかが良い • スケールさせる場合、クラスタリングできたほうが良い ◦ 結果整合性で、マスターがSPOF(単一障害点)になる ▪ コストだけで見るなら、最近話題になった Upstash なども選択肢に • 無料で使えるデータベースUpstashをご存知、ないのですか!? 2
14 4. 今後について
15 まとめと今後 🚀 • まとめ ◦ サーバレスなので比較的安く、サーバ運用から開放 • パフォーマンス測定したい
◦ Redis の限界までスケールアウトするので、結構同時接続できるはず ◦ プレイヤーなどアセット描画のほうがボトルネックになりそう? • コミュニティ貢献して、盛り上げていきたい ◦ なにか公開できるものは公開していきたい • AI エージェントや、それが動くワールドをつくりたい ◦ ブラウザで AI とインタラクティブなやり取りできたら素敵 • ゲームロジックと VR 的なワールドの統合をしたい ◦ みんなでわいわい遊びたい 1
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
Twitterアカウント @DeNAxTech では、 DeNA のエンジニアリングに関する 登壇資料やブログを紹介しています! ぜひ Twitter をフォローしてみてください!
@ DeNA Co.,Ltd.