Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モバイルゲームの バックエンド開発

モバイルゲームの バックエンド開発

\積極的に技術発信を行なっております/

▽ Twitter/COLOPL_Tech
https://twitter.com/colopl_tech

▽ connpassページ
http://colopl.connpass.com

▽ COLOPL Tech Blog
http://blog.colopl.dev

COLOPL Inc.

April 28, 2023
Tweet

More Decks by COLOPL Inc.

Other Decks in Technology

Transcript

  1. 2 • 略歴 ◦ 大学卒業後 外資系SIer勤務 ◦ Web系に転職 ◦ 2018

    コロプラ入社 ▪ 白猫プロジェクトSREチーム ▪ ドラゴンクエストウォーク SREチーム ▪ サーバー基盤マネジャー兼SRE 氏名  : 部署名 : 松野 岳記 技術基盤本部 第2バックエンドエンジニア部 サーバー基盤グループ 自己紹介
  2. 5 モバイルゲーム開発・運用に関わる職種 プロデューサー ディレクター シナリオライター プランナー  デザイナー  ・2Dデザイン  ・3Dデザイン サウンド

     エンジニア  ・クライアント  ・サーバー  ・インフラ デバッガー CX マーケティング データサイエンス
  3. 6 • クライアント ◦ いわゆるゲームそのもの ◦ ユーザーの手元の体験 バックエンドエンジニアの役割 • バックエンド

    ◦ ゲームの裏を支える ◦ ゲームの継続した体験 ◦ ユーザー間のつながり ◦ 世界とのつながり
  4. 9 ゲームバックエンドの特徴 - データ量 • 全体 ◦ 運用数年間分のイベント ◦ リセマラという現実

    • バリエーション豊富なプレイスタイル ◦ 10年間毎日プレイしてくれているユーザー ◦ しばらくプレイしていなかったがコラボなどで再開したユーザー ◦ 全イベントクリアしてくれるヘビーユーザー ◦ 好きなキャラ、装備、クエストなどにフォーカスしてプレイしてくれるユーザー
  5. 10 バックエンド構成概要 - 全体 クラウドサービス( GCP) Kubernetes Cluster Monitoring Prometheus

    Async Servers GKE Pods Queue RabbitMQ, etc. Cache Redis Load Balancer KPI Analytics BigQuery Logs Cloud Logging ユーザー API Servers GKE Pods User Data Cloud Spanner Visualization Grafana クラウドサービス( AWS) CDN CloudFront Storage S3 Master Data MySQL, etc. Multiple Rplia PvP Servers GKE Pods
  6. 11 11 バックエンド構成概要 - プラットフォーム クラウドサービス( GCP) Kubernetes Cluster Monitoring

    Prometheus Async Servers GKE Pods Queue RabbitMQ, etc. Cache Redis Load Balancer KPI Analytics BigQuery Logs Cloud Logging ユーザー API Servers GKE Pods User Data Cloud Spanner Visualization Grafana クラウドサービス( AWS) CDN CloudFront Storage S3 Master Data MySQL, etc. Multiple Rplia PvP Servers GKE Pods • GCP / Kubernetes (GKE) ◦ リソースの柔軟性 ▪ 負荷の変化 ▪ 開発規模の増減
  7. 12 バックエンド構成概要 - ストレージ 12 クラウドサービス( GCP) Kubernetes Cluster Monitoring

    Prometheus Async Servers GKE Pods Queue RabbitMQ, etc. Cache Redis Load Balancer KPI Analytics BigQuery Logs Cloud Logging ユーザー API Servers GKE Pods User Data Cloud Spanner Visualization Grafana クラウドサービス( AWS) CDN CloudFront Storage S3 Master Data MySQL, etc. Multiple Rplia PvP Servers GKE Pods • 物量とスピード両立のための使い分け ◦ Cloud Spanner ▪ スケーラビリティ ▪ 耐障害性 ▪ ユーザーデータ用 ▪ 10msレベル ◦ MySQLなどのRDB ▪ Readのスケール ▪ マスタデータ ▪ 1桁msレベル ◦ Redis ▪ キャッシュ ▪ nsレベル
  8. 13 バックエンド構成概要 - ステートレスAPIサーバー 13 クラウドサービス( GCP) Kubernetes Cluster Monitoring

    Prometheus Async Servers GKE Pods Queue RabbitMQ, etc. Cache Redis Load Balancer KPI Analytics BigQuery Logs Cloud Logging ユーザー API Servers GKE Pods User Data Cloud Spanner Visualization Grafana クラウドサービス( AWS) CDN CloudFront Storage S3 Master Data MySQL, etc. Multiple Rplia PvP Servers GKE Pods • 運用性とモバイルネットワークの不安定さへの対 応 ◦ ステートレス、冪等性 ◦ リトライ前提
  9. 14 バックエンド構成概要 - ステートフルリアルタイムサーバー 14 クラウドサービス( GCP) Kubernetes Cluster Monitoring

    Prometheus Async Servers GKE Pods Queue RabbitMQ, etc. Cache Redis Load Balancer KPI Analytics BigQuery Logs Cloud Logging ユーザー API Servers GKE Pods User Data Cloud Spanner Visualization Grafana クラウドサービス( AWS) CDN CloudFront Storage S3 Master Data MySQL, etc. Multiple Rplia PvP Servers GKE Pods • リアルタイムプレイ特化 ◦ 複数プレイヤー ◦ 低レイテンシ
  10. 15 バックエンド構成概要 - バックグラウンド非同期処理 15 クラウドサービス( GCP) Kubernetes Cluster Monitoring

    Prometheus Async Servers GKE Pods Queue RabbitMQ, etc. Cache Redis Load Balancer KPI Analytics BigQuery Logs Cloud Logging ユーザー API Servers GKE Pods User Data Cloud Spanner Visualization Grafana クラウドサービス( AWS) CDN CloudFront Storage S3 Master Data MySQL, etc. Multiple Rplia PvP Servers GKE Pods • ユーザー体験外のバックグラウンド処理
  11. 16 バックエンド構成概要 - 期待されるスキル • ストレージ ◦ ストレージの使い分け ◦ 強み弱みの理解

    • APIサーバー ◦ ステートレス処理の組み合わせで継続したプレイ・運用を設計する能力 ◦ ゲームデータのモデリングと安全性 • マルチプレイヤーサーバー ◦ 複数ユーザー状況下でのステータス設計 ◦ ネットワーク含めた性能追求 • 非同期 ◦ データの横の繋がりの理解力
  12. 19 参考 過去のイベントやブログで今回の内容に紐づくもの • 高負荷・高トラフィック環境における対策 ◦ 高負荷/トラフィックなゲームの運用を支えるSRE ◦ コロプラにおけるLaunch Coordination

    Engineeringの取り組み ◦ サーバーサイド 白猫負荷対策チーム • リアルタイム通信 ◦ ゲーム開発におけるリアルタイム通信基盤とKubernetes/Agones