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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
airtanker
July 10, 2022
Programming
680
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
250
Other Decks in Programming
See All in Programming
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
440
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.9k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
Workers Cache を知る
syumai
0
370
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
320
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
570
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Rails Girls Zürich Keynote
gr2m
96
14k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Amusing Abliteration
ianozsvald
1
350
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.