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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
Android CLI
fornewid
0
120
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
240
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
150
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
270
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.6k
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
840
What's New in Android 2026
veronikapj
0
140
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
160
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
230
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
210
GitHubCopilotCLIのスラッシュコマンドを自作してみる
htkym
0
100
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
180
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
660
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
770
Six Lessons from altMBA
skipperchong
29
4.3k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
550
A Tale of Four Properties
chriscoyier
163
24k
Ethics towards AI in product and experience design
skipperchong
2
330
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
RailsConf 2023
tenderlove
30
1.5k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
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.