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. モバイルゲームの
    バックエンド開発
    特徴とサーバーエンジニアの役割

    View Slide

  2. 2
    ● 略歴
    ○ 大学卒業後 外資系SIer勤務
    ○ Web系に転職
    ○ 2018 コロプラ入社
    ■ 白猫プロジェクトSREチーム
    ■ ドラゴンクエストウォーク SREチーム
    ■ サーバー基盤マネジャー兼SRE
    氏名  :
    部署名 :
    松野 岳記
    技術基盤本部 第2バックエンドエンジニア部
    サーバー基盤グループ
    自己紹介

    View Slide

  3. 目次
    1. モバイルゲーム開発の流れ
    2. ゲームバックエンドの特徴
    3. バックエンド構成概要
    4. 個人的に思うモバイルゲーム開発の楽しさ
    5. まとめ
    3

    View Slide

  4. 4
    モバイルゲーム開発の流れ
    リリース
    企画
    設計
    開発
    制作
    テスト
    運用
    アップデー

    アップデー

    新機能
    イベント

    View Slide

  5. 5
    モバイルゲーム開発・運用に関わる職種
    プロデューサー
    ディレクター
    シナリオライター
    プランナー
     デザイナー
     ・2Dデザイン
     ・3Dデザイン
    サウンド
     エンジニア
     ・クライアント
     ・サーバー
     ・インフラ
    デバッガー
    CX
    マーケティング
    データサイエンス

    View Slide

  6. 6
    ● クライアント
    ○ いわゆるゲームそのもの
    ○ ユーザーの手元の体験
    バックエンドエンジニアの役割
    ● バックエンド
    ○ ゲームの裏を支える
    ○ ゲームの継続した体験
    ○ ユーザー間のつながり
    ○ 世界とのつながり

    View Slide

  7. 7
    ゲームバックエンドの特徴 - 負荷のスパイク
    ● スパイクが極端
    ○ 新コンテンツリリース時 vs 平常時
    ○ デイリーボーナス更新タイミング

    View Slide

  8. 8
    ゲームバックエンドの特徴 - モバイルネットワークの不安定さ
    ● 業務系と比べてシチュエーションが多様
    ○ 家庭WiFiで机に向かってガチプレイ
    ○ 電車内で隙間時間
    ○ 隠れてこっそりプレイ
    (見つかったらタスクキル)

    View Slide

  9. 9
    ゲームバックエンドの特徴 - データ量
    ● 全体
    ○ 運用数年間分のイベント
    ○ リセマラという現実
    ● バリエーション豊富なプレイスタイル
    ○ 10年間毎日プレイしてくれているユーザー
    ○ しばらくプレイしていなかったがコラボなどで再開したユーザー
    ○ 全イベントクリアしてくれるヘビーユーザー
    ○ 好きなキャラ、装備、クエストなどにフォーカスしてプレイしてくれるユーザー

    View Slide

  10. 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

    View Slide

  11. 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)
    ○ リソースの柔軟性
    ■ 負荷の変化
    ■ 開発規模の増減

    View Slide

  12. 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レベル

    View Slide

  13. 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
    ● 運用性とモバイルネットワークの不安定さへの対

    ○ ステートレス、冪等性
    ○ リトライ前提

    View Slide

  14. 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
    ● リアルタイムプレイ特化
    ○ 複数プレイヤー
    ○ 低レイテンシ

    View Slide

  15. 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
    ● ユーザー体験外のバックグラウンド処理

    View Slide

  16. 16
    バックエンド構成概要 - 期待されるスキル
    ● ストレージ
    ○ ストレージの使い分け
    ○ 強み弱みの理解
    ● APIサーバー
    ○ ステートレス処理の組み合わせで継続したプレイ・運用を設計する能力
    ○ ゲームデータのモデリングと安全性
    ● マルチプレイヤーサーバー
    ○ 複数ユーザー状況下でのステータス設計
    ○ ネットワーク含めた性能追求
    ● 非同期
    ○ データの横の繋がりの理解力

    View Slide

  17. 17
    個人的に思うモバイルゲーム開発の楽しさ
    ● 多くの職種の方とともにモノを作る楽しさ
    ○ 自分にはない考え、発想に刺激される
    ○ 様々な方と意見を交えてブラッシュアップされていく
    ● これまでエンタメ・ゲームを楽しんできたことが開発で活きる
    ○ 技術・開発経験とは別の経験値が反映される
    ● ユーザー反応をリアルタイムに受け取れる
    ○ SNSなどでリアルな反応をもらえる

    View Slide

  18. 18
    まとめ
    ● モバイルゲームの開発体制と流れについて
    ● ゲームのバックエンドとは
    ○ 基本的なWebアプリケーション構成を中心
    ○ ゲームならではの特徴に対応
    ■ スパイク
    ■ データ量とレイテンシ
    ■ リアルタイム通信
    ○ 継続的に安全・快適な遊びを提供する

    View Slide

  19. 19
    参考
    過去のイベントやブログで今回の内容に紐づくもの
    ● 高負荷・高トラフィック環境における対策
    ○ 高負荷/トラフィックなゲームの運用を支えるSRE
    ○ コロプラにおけるLaunch Coordination Engineeringの取り組み
    ○ サーバーサイド 白猫負荷対策チーム
    ● リアルタイム通信
    ○ ゲーム開発におけるリアルタイム通信基盤とKubernetes/Agones

    View Slide