31
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# ゲーム開発のバックエンドを支える GaaS

Last updated at Posted at 2025-12-22

はじめに

TRIAL&RetailAI Advent Calendar 2025 の 23日目の記事です。
昨日は @hiraishi_satoshi さんの『Quarkusで作る小売向け統計分析API』
という記事でした。

前日の記事では、データをどのように扱うかという観点で、
JSON / Key-Value / ドキュメント指向DB / データレイクなど、
複数の選択肢が紹介されていました。

突然ですが

みなさんゲームは好きですか?

今は忙しい時代ということもあって、スマホゲームくらいなら少しだけ...
という方も増えているのではないでしょうか。
私は歳を重ねるにつれ、それすらも怪しくなって来ています。

それはさておき、この記事では
そんなゲームでよく使われている バックエンドはどうなっているのか について
調べてる時に見かけた『GaaS』が面白そうだったの書いていこうと思います。

本記事では、

  • GaaSとは何か
  • ゲームサーバー開発が抱える課題
  • 実現できること
  • 具体的な利用例
  • 実際にGSSを触ってみた

を中心にまとめます。

※GaaS の考え方の中でも、
特に Game Server Services(GSS) に焦点を当てて紹介します。

GaaSとは何か

Games as a Service(GaaS)とは、
オンラインゲームに必要な機能を 継続的にアップデートしながら提供する
サービスモデルのことを指します。

昔のゲームは買い切り型が主流で、
発売後に継続的なサポートを行う必要はほとんどありませんでした。

しかし現在では、
オンライン機能を前提としたゲームが主流となり、
長期的な運用や機能追加が求められるようになっています。

Unity や Unreal Engine といった汎用ゲームエンジンの登場により、
グラフィックやアセット管理などの環境構築を意識せず、
コンテンツ制作に集中できるようになりました。

一方で、この恩恵が十分に及んでいない領域があります。
それが オンラインゲーム向けのサーバー開発 です。

ゲームサーバー開発が抱える課題

近年のゲームでは、オンライン機能がほぼ前提となっています。

  • ユーザー認証
  • マッチング
  • ランキング
  • フレンド機能
  • データ保存・同期

これらの機能は、
多くのタイトルで 必要になるにもかかわらず
各社・各プロジェクトごとに独自実装されてきました。

その結果、

  • タイトルごとに似た仕組みを何度も作る
  • ノウハウがプロジェクト内に閉じる
  • 開発・運用コストが高止まりする

といった、いわゆる 車輪の再発明 が繰り返されてきました。

これを効率化するために考えられたのが
Game Server Services(GSS) です。
image.png

実現できること

Game Server Services は
こうしたオンラインゲーム特有の共通課題を 汎用サービスとして切り出す ことで
開発効率を大きく向上させます。

image.png

Game Server Services を利用することで
以下のメリットが得られます。

  • 新規タイトル立ち上げ時の初期開発コスト削減
  • ゲームロジックとインフラを分離した設計
  • スケーラブルなオンライン機能の実装
  • 運用を見据えたデータ管理

「まず遊べるものを作る」までのスピードが、大きく向上します。
すぐにリリースに繋げられるのは嬉しいですね。

具体的な利用例

これらはどのゲームでも必要になる一方で
直接「面白さ」を生み出す部分ではありません。

  • プレイヤーアカウント管理
  • マッチング・セッション管理
  • ランキング・スコア管理
  • ゲーム内データの保存・同期
  • イベントや期間限定コンテンツの管理
  • image.png

Game Server Services を使うことで、
こうした共通機能はサービスに任せ、
開発者は ゲーム体験そのものの設計に集中できます。

実際にGSSを触ってみた

公式サイトはこちら
https://gs2.io/

個人利用については2025/12月時点で無料利用可能です。
※1000万円以上の収益を上げるとアウトみたいです

まず最初にメールアドレスを登録する必要があります。
image.png

チュートリアル通りに進めて適当なプロジェクトを
とりあえず作成しました。
image.png

この後の流れとしては、
①GS2-SDK を Unity または Unreal Engine にインストールする
②GS2 を利用するためのクレデンシャル(認証用のAPIキー)を作成
③匿名アカウントを発行〜ログインまでできるリソースを用意
④アカウント発行〜ログインまでを実装(YAMLテンプレートを使う)

例:GS2-Account 初期化テンプレート(YAML)

YAML はテンプレートが用意されており、
主に「認証に使うキー」や「名前空間」を管理しているようなので
クレデンシャルキーの情報などを埋め込んで利用します。
image.png

例:GS2-Account 初期化テンプレート(YAML)

GS2TemplateFormatVersion: "2019-05-01"
Description: GS2-Account initialize template Version 2010-06-26

Globals:
  Alias:
    AccountNamespaceName: game-0001
    KeyNamespaceAccountAuthentication: account-encryption-key-namespace
    KeyAccountAuthentication: account-encryption-key

Resources:
  KeyNamespaceAccountAuthentication:
    Type: GS2::Key::Namespace
    Properties:
      Name: ${KeyNamespaceAccountAuthentication}

  KeyAccountAuthentication:
    Type: GS2::Key::Key
    Properties:
      NamespaceName: ${KeyNamespaceAccountAuthentication}
      Name: ${KeyAccountAuthentication}
    DependsOn:
      - KeyNamespaceAccountAuthentication

  AccountNamespace:
    Type: GS2::Account::Namespace
    Properties:
      Name: ${AccountNamespaceName}

Outputs:
  AccountNamespaceName: !GetAttr AccountNamespace.Item.Name
  KeyAccountAuthenticationKeyId: !GetAttr KeyAccountAuthentication.Item.KeyId

ログイン処理の実装

このyamlを設定した後はUnityもしくはUE5の匿名アカウントの設定を行い
サーバーからユーザーデータを取得する部分の設定をします。

新規作成後にログイン処理などが成功するとこの様な画面になります。(UE5の例)

image.png

よくあるスマホゲームとかはログイン画面の下になんかコードみたいのが
出てるなと思ってましたが正体はこれみたいですね。ちょっと感動しました。

チュートリアルがかなり完備されていて、蛇足になるので一部省いていますが
導入する学習コストは比較的低そうだなと感じました。

今回の記事は一旦ここまでの解説にします。

まとめ

GaaSで使用されているGame Server Services は、
汎用ゲームエンジンが「コンテンツ制作」を効率化したのと同様に、
オンラインゲームのサーバー開発を効率化するための仕組み です。

次回予告
@fujihara_hideyuki さんが『ストラテジーパターン』について書いてくれるようです。

RetailAIとTRIALではエンジニアを募集しています。

31
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?