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
いまどきのゲームサーバアーキテクチャ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yasutomo Uemori
PRO
January 17, 2024
Technology
810
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いまどきのゲームサーバアーキテクチャ
社内でLTしたときの資料です
Yasutomo Uemori
PRO
January 17, 2024
Transcript
32 slides
いまどきの ゲームサーバ アーキテクチャ サーバエンジニア 植森 康友
今回のお話 ステートレスとステートフルの話に触れつつ いろんなサーバ構成の例を見て いまどきのゲームサーバの 全体アーキテクチャについて振り返る
お話の発端
お話の発端
とあるMMORPGのサーバ構成
Q. ステートフルゲームサーバのアーキテクチャが 重視しているポイントを2つ挙げてください
1. 負荷分散
2. サーバ費用
ステートフルゲームサーバのアーキテクチャが 重要視しているポイント 1. 負荷分散 2. サーバ費用 ➔ ステートレスなアーキテクチャが頭にあると 気づきにくいが実はスケーラビリティが重要視されている ※チート対策とかレイテンシとかももちろんある
MOの場合(空間コピー)
MMOの場合(空間分割+空間コピー)
さらにワールド分割でDBのボトルネックを回避
詳しくはオンラインゲームを支える技術を
ステートフルサーバアーキテクチャの 負荷分散手法 • 空間分割 • 空間コピー • ワールド分割 ➔ スケーラビリティとの戦いによる技術
➔ 「売れた時に規模を拡大したい」は昔から変わらない課題
古のゲーム開発からの時代の変化 • マシンコストの低下(メモリ、CPU、ディスク) • Web技術の発展 • アーキテクチャの進化(VM、クラウド、コンテナ) • ビジネス要求の変化
Web技術の採用 「剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術」より https://www.slideshare.net/satoshiyamafuji/cedec2014-logres-cedil
ビジネス要求の変化 グラブルのようなWebベースのゲームでもリアルタイム処理が必要な時代に 「グランブルーファンタジーを支えるインフラの技術」より https://speakerdeck.com/cygames/kuranhuruhuantasiwozhi-eruinhurafalseji-shu
ステートフルとステートレスの差が減りつつある
いまどきのステートレス vs ステートフル 簡単なwebアプリケーションなら、事前にデータフォーマットを定義し、リクエストを受けるたびに、DBからユーザの情報を読み取り、処理後DBに書き込みする ことが一般的です。ネットゲームにおいて、強いコンテキストを持ち、ユーザ間の連携も多いです。もし同じモードを採用すると、 DBの処理とロジックの処理の 間、ボトルネックになりやすい、このボトルネックネックは通常キャッシュをレイヤーを追加するだけで解決できないことが多いです 。 Skynetでゲームホストする場合は、同期的にデータをDBに保存することはおすすめしません、代わりにインメモリのDBに保存したほうが良い。 サービス、アプ
リロジックやゲームデータは全部メモリで常駐します。もしDBはあなたのフレームワークの一部でしたら、殆どの場合バックアップとして使うべき。データの状態 が変わったもしくは定期的にDBに保存します 。アプリは直接メモリからデータを呼びます。 • インフラ技術やミドルウェア、クラウドの発展によりDBのボトルネックは回避されやすくなった • インメモリ=アプリロジックの処理をどこでやるか?が決定的な差異 ➔ インメモリの処理をクライアントに依存しているのが今のステートレスサーバの正体 ➔ ビジネス要件がクライアントのインメモリ処理で事足りている(特にチート対策)
None
None
ステートフルサーバはMicro Serviceが必要 厳密にはMicroServiceではなく分散システム
剣と魔法のログレスのサーバ構成例 「剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術」より https://www.slideshare.net/satoshiyamafuji/cedec2014-logres-cedil
Proxyの採用による固定IPの排除 「Protect Multiplayer Game Servers From DDoS Attacks Using Amazon
GameLift」より https://aws.amazon.com/jp/blogs/gametech/protect-multiplayer-game-servers-from-ddos-attacks-using-amazon-gamelift-2/
Proxyの採用による固定IPの排除 とあるMMORPGの構成
Proxyの採用による固定IPの排除 「グランブルーファンタジーを支えるインフラの技術」より https://speakerdeck.com/cygames/kuranhuruhuantasiwozhi-eruinhurafalseji-shu
ステートフルサーバでもコンテナ技術を採用 「Kubernetesでステートフルなゲームサーバを動かした思い出」より https://link.medium.com/phnOduRALfb 「agones超入門」より https://medium.com/google-cloud-jp/agones-beginner-jp-5a6553e7e9a4
ステートレスではクラウドやサーバレスの採用 「ミリシタを支える GAE/Go」より https://www.slideshare.net/GoogleCloudPlatformJP/gaego-80349110 「AWSケーススタディ:Habby」より https://aws.amazon.com/cn/solutions/case-studies/habby/
どのアーキテクチャがいいのか
ゲームの要件によって 適切な構成は変化するので絶対の回答はない
まとめ • 時代の流れでステートレスとステートフルの差は減った • インメモリの処理をどこに寄せるかでアーキテクチャは大きく 変わる (チート対策、開発コスト、etc...) • 既存のアーキテクチャに学ぶ点は多いのでキャッチアップ大事 要件と相談してより良いアーキテクチャを検討していきましょう
ご静聴ありがとうございました
More Decks by Yasutomo Uemori
See All by Yasutomo Uemori
よくわかる新収益認識基準
wakaba260
PRO
0
1.7k
オンラインゲームのRails複数db戦略
wakaba260
PRO
0
100
Active job meets kubernetes
wakaba260
PRO
0
70
Ruby/Rails Benchmarking and Profiling with TDD
wakaba260
PRO
0
99
GCP・GKEで作るスケーラブルなゲーム開発環境
wakaba260
PRO
0
97
サービスクラス、その前に
wakaba260
PRO
0
60
Rails on Dockerとの戦い
wakaba260
PRO
0
56
Rubocopとの付き合い方
wakaba260
PRO
0
68
Rails api way in aiming
wakaba260
PRO
0
71
Other Decks in Technology
See All in Technology
人間+AIを「チーム」としてプロセスを再設計する
littlehands
1
2.3k
小さなエージェントから始めてみよう!実践コンテキストエンジニアリング
iwamot
PRO
0
120
SREのためのFinOps入門
muziyoshiz
3
1.5k
狙われているAPIの脆弱性!今こそ手をつけるべき根本的な対策とは?
nagix
0
130
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
670
顧客合意を取りながら進めるAWSコスト削減の実践
optim
0
170
AWS Emulator を評価する: 手元で動く AWS の API の仕組み、始め方、確かめ方
inariku
PRO
1
430
農夫は秘伝のタレを知らない - NOBODY KNOWS THE HIDDEN SOURCE - Kaggriculture 3rd Place Solution
masspeaks
0
310
Context != Context: One window, many lifecycles (AI Native DevCon, Nov 2026)
birgitta410
0
130
プロダクションコードにおける encoding/json から encoding/json/v2 へのスムーズな移行
sansantech
PRO
1
420
Where Should Platform Complexity Live? Lessons from a Cross-Team PR Preview Platform
taiki45
0
110
生成AI時代のIAMのマニアックな話
takuros
6
3.2k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
550
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
470
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
GraphQLとの向き合い方2022年版
quramy
50
15k
Navigating Team Friction
lara
192
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
900
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k