Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
370
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
200
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.2k
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.8k
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
320
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
670
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
450
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
220
Building an Out-of-Order CPU
latte72
1
760
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
エンジニアに許された特別な時間の終わり
watany
108
250k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Site-Speed That Sticks
csswizardry
13
1.5k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
330
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
New Earth Scene 8
popppiees
3
2.6k
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.