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
670
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
240
Other Decks in Programming
See All in Programming
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
2
300
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
980
自分的「カンファレンスの楽しみ方」
syumai
0
190
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
820
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
260
ALB ログから Trace を気合で繋げる技術
fohte
7
860
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
100
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
3
1k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
340
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
300
Hono + Inertia + React で LP を構築した話
oukayuka
2
210
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
320
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
Designing for humans not robots
tammielis
254
26k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Balancing Empowerment & Direction
lara
6
1.3k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
520
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
690
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
How GitHub (no longer) Works
holman
316
150k
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.