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
いまどきのゲームサーバアーキテクチャ
Search
Yasutomo Uemori
PRO
January 17, 2024
Technology
610
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いまどきのゲームサーバアーキテクチャ
社内でLTしたときの資料です
Yasutomo Uemori
PRO
January 17, 2024
More Decks by Yasutomo Uemori
See All by Yasutomo Uemori
よくわかる新収益認識基準
wakaba260
PRO
0
1.5k
オンラインゲームのRails複数db戦略
wakaba260
PRO
0
97
Active job meets kubernetes
wakaba260
PRO
0
57
Ruby/Rails Benchmarking and Profiling with TDD
wakaba260
PRO
0
86
GCP・GKEで作るスケーラブルなゲーム開発環境
wakaba260
PRO
0
94
サービスクラス、その前に
wakaba260
PRO
0
53
Rails on Dockerとの戦い
wakaba260
PRO
0
51
Rubocopとの付き合い方
wakaba260
PRO
0
58
Rails api way in aiming
wakaba260
PRO
0
64
Other Decks in Technology
See All in Technology
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
340
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
210
サイバー捜査員研修(前半)
nomizone
1
2k
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
130
MIRU 2026 チュートリアル
keisuke198619
0
940
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
230
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
210
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.5k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
390
Designing for humans not robots
tammielis
254
26k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
The Invisible Side of Design
smashingmag
301
52k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
400
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
940
The agentic SEO stack - context over prompts
schlessera
0
860
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Transcript
いまどきの ゲームサーバ アーキテクチャ サーバエンジニア 植森 康友
今回のお話 ステートレスとステートフルの話に触れつつ いろんなサーバ構成の例を見て いまどきのゲームサーバの 全体アーキテクチャについて振り返る
お話の発端
お話の発端
とある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...) • 既存のアーキテクチャに学ぶ点は多いのでキャッチアップ大事 要件と相談してより良いアーキテクチャを検討していきましょう
ご静聴ありがとうございました