This document is about: FUSION 2
SWITCH TO

専用サーバー

Level 4

概要

Fusionでは、クライアント/サーバー型のゲーム開発が可能です。ホスティングプロバイダーが提供する専用サーバー上で、専用ゲームセッションインスタンスを実行し、プレイヤーはクライアントとして接続できます。

専用サーバーのトポロジーを利用するには、いくつかの要素が必要になります。

  • Fusionのヘッドレスビルド
  • 専用サーバー上で実行される、専用ゲームセッションインスタンス
  • 任意のホスティングプロバイダーで提供される、専用サーバーマシン
  • Fusionのプラグインが有効になった、Photon Cloud
  • 専用ゲームセッションインスタンスに接続するクライアント
Dedicated Server Overview Flow
専用サーバーのフローの概要
Photon Server SDKは、Fusionの専用サーバーのトポロジーとは何の関連もありません。

ホストモードとサーバーモード

Fusionでクライアント/サーバー型のゲームを開発するには、まず最初に「ホストモード」か「サーバーモード」を選択する必要があります。コードベースに関連する限りにおいて、どちらも同じ機能を持ち、同じように動作します。気にするべき唯一の違いは、以下の通りです。

  • ホストモード:「サーバー」は状態権限を持ち、同時にプレイヤーとして入力権限を持ちます
  • サーバーモード:「サーバー」は状態権限を持ちますが、プレイヤーではなく入力権限も持ちません

つまり、まず簡単にテストできるホストモードで開発を始め、プロジェクトチームでサーバー構成の準備が完了して、専用サーバー上でゲームセッションインスタンスを実行できるようになった時点で、サーバーモードに移行することもできるということです。

専用サーバー

Fusionをサーバーモードで実行するには、ヘッドレスビルドしたゲームをホストする専用サーバーが必要になります。

Fusionにおいては、専用サーバーが2種類存在します。

  1. 専用ゲームセッションサーバー
  2. 専用Photon Cloudサーバー

専用ゲームセッションサーバー

専用ゲームセッションサーバーは、ホスティングプロバイダーで提供され、ヘッドレスビルドのゲームをホストできます。プレイヤーの参加リクエストからゲームセッションインスタンスを起動するには、オーケストレーションサービスが必要になります。(通常はこちらもホスティングプロバイダーで提供されます)

専用Photon Cloudサーバー

通常はPhoton PUBLIC CLOUDのサブスクリプションで十分です!
専用環境で提供される機能やサービスへアクセスする場合にのみ、Photon ENTERPRISE CLOUDのサブスクリプションが必要です。

Photonが提供している専用Photon Cloudサーバーをリクエストするには、Enterpriseサブスクリプションが必要です。専用Photon Cloudサーバーは、ゲームのニーズに応じて、専用クラウドのリソースの提供・割り当てを行います。

Photon Cloudでは以下を提供します。

  • 接続管理
  • リレーのフォールバック
  • サーバーマイグレーション用の状態のバックアップ

さらに、Enterpriseサブスクリプションでは以下を提供します。

  • 独自のFusionのプラグインを実行する機能(現時点では未提供)
  • 専用IP
  • SLA
  • 24/7 NOC チーム
  • その他様々な機能

サーバーモードでゲームを実行するには、専用サーバーと、Photon Fusionのサブスクリプションが必要です。

ゲームセッションのホスティングプロバイダー

有名なホスティングプロバイダーの一部を紹介します。

独自ソリューションや、スタンドアロンのDockerインスタンスを使用することも、もちろん可能です。

ゲームセッションインスタンス

ゲームセッションインスタンスは、オーケストレーションサービスのリクエストによって、専用サーバー上で起動します。このプロセスは、ゲームセッションのホスティングプロバイダーとそのオーケストレーションサービスに関連するため、Fusionとは関係ありません。こちらについては、サービスのドキュメントをお読みいただき、ホスティングプロバイダーにお問い合せください。

ヘッドレスビルドの作成

Fusionのヘッドレスビルドは、Unityでビルド可能なすべての64-bitプラットフォームに対応しています。以下は、ヘッドレスビルドを作成する手順です。

  1. UnityエディターからFile > Build Settings...に移動する
  2. Target Platformを選択する
  3. Architectureが64-bitに設定されていることを確認する
  4. Buildをクリックする
Dedicated Server Build Platforms in Unity Build Settings
UnityのBuild SettingsのDedicated Serverビルドプラットフォーム

ゲームサーバーオーケストレーション

Photonは、専用ゲームセッションサーバーのオーケストレーションを提供していません。オーケストレーションサービスは通常、ゲームセッションのホスティングプロバイダー自身が提供しており、システムにリンクされたゲームサーバーのバイナリの管理に重点が置かれています。

サーバーオーケストレーションは、ゲームサーバーを管理する方法を指します。必要に応じてサーバーを起動/停止したり、プレイヤーのリクエストからサーバー上にゲームセッションを作成します。サーバーオーケストレーションの主目的をまとめると、プレイヤーが参加できるサーバーの利用状況を制御するルールやシステムを与えること、になります。これによって、プレイヤー数が少ない時(例:深夜や日中など)は、計算能力を節約して、可能な限りコストを削減することも可能になります。

「オーケストレーションサービス」は、以下を担当するものです。

  1. ゲームサーバービルドのコピーを保持し、デプロイ時に使用できるようにします。
  2. ゲームサーバーを実行できるマシンのインフラストラクチャーを管理します。ベアメタルサーバー・仮想マシン・Dockerコンテナなど、各プロバイダーが使用するモデルは様々です。正しい/間違ったモデルはありません。ゲームのニーズによって異なるサーバー環境要件に合わせてください。
  3. サーバーの作成/削除を制御するシステムを提供します。どこ(通常、いくつかのリージョンでデプロイされます)で、どんな設定(プレイヤーに合うように)で、ゲームサーバーをデプロイするかを、開発者が選択できるようにします。システムは、手動・API経由・自動(一連のルールによってトリガーする)などで管理されます。

サーバーインスタンスをどこでどのように実行し扱うかの管理は、Fusionの観点からはすべて透過的なため、開発には直接影響を与えません。
一方、多くのオーケストレーションやホスティングプロバイダーは、ゲームサーバー自体で内部的なインテグレーションを利用しており、以下のような情報を取得しています。

  • マッチに関する情報(例えば、ゲームモードやマップ選択など)
  • 現在のプレイヤー数と、最大プレイヤー数
  • サーバーのヘルスステータス(例:starting、ready for players、shutting down)
  • その他

これらの情報は、どのサーバーが参加可能/リサイクル可能なのかを把握したり、統計データ(特定のリージョンのデイリーアクティブプレイヤーが増えた場合に、どの程度サーバー数を増やすのか)を作成したりするために、オーケストレーションのシステムで使用されます。

各プロバイダーのSDKとのインテグレーションを容易にするため、Fusion SDKは、これらのすべての情報を簡単に取得できるようになっています。

Back to top