このページは編集中です。更新が保留になっている可能性があります。

概要

概要

Fusionを使用するとクライアント・サーバー間トポロジを使用してゲームを開発できるようになります。このケースでは、プレイヤーがクライアントを接続するホスティングプロバイダーが専用ゲームセッションインスタンスを専用サーバー上で実行することになります。

専用サーバートポロジーの活用には以下を含むいくつかの必要なものが存在します。

  • Fusion Headlessの構築;
  • 専用サーバーで実行する専用ゲームセッションインスタンス;
  • お気に入りのホスティングサーバーの専用サーバーマシン;
  • Fusion Cloudプラグインを搭載したPhoton Cloud;
  • 専用ゲームインスタンスに接続するクライアント

Dedicated Server Overview Flow
専用サーバー概要フロー

The Photon Server SDK is NOT related to the Dedicated Server topology in Fusion!

Host Mode と Server Mode

Fusionでのクライアント・サーバー間アーキテクチャの開発のまず第一段階は、Host ModeにするかServer Modeにするかの選択です。コードーベースに関するかぎりは、どちらも同じ機能セットを提供しています。考慮すべき唯一の相違点としては以下が挙げられます。

  • Host Modeでは、「サーバー」にステート権限が与えられ、プレイヤーにインプット権限が与えられます。
  • Server Modeでは、「サーバー」にステート権限が与えられますが、プレイヤーやインプット権限がありません。

つまり、よりシンプルなHost Modeで開発を開始して、それからプロジェクトチームが一つまたは複数の専用ゲームサーバー上でゲームセッションインスタンスを実行させるための、サーバーオーケストレーションの側面に取り組む準備ができた時点でServer Modeに移行することもできるということです。

専用サーバー

FusionをServer Modeで実行するには、ヘッドレスゲームビルドをホストするための専用サーバーが必要です。

Fusionについていうと、専用サーバーに以下のは2通りのタイプがあります。

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

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

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

専用 Photon Cloud サーバー

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

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

Photon Cloudは、以下を扱います。

  • 接続処理;
  • リレーフォールバック;
  • サーバー移行用のステートバックアップ;

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

  • Fusion Cloudプラグインのカスタムバージョンを実行する機能 (現時点では未提供);
  • 専用IP;
  • SLA;
  • 24/7 NOCチーム;
  • その他

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

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

著名なホスティングプロバイダーを明記します(他のプロバイダーもご利用いただけます)。

希望する場合、カスタムソリューションやスタンドアロンドッカーインスタンスを使用することも、もちろん可能です。

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

ゲームセッションインスタンスは、オーケストレーションサービスのリクエストによって専用サーバー上で起動します。このプロセスの機能は、Fusionから独立しており、ゲームセッションホスティングプロバイダーとオーケストレーションサービスの独自のシステムに結びついています。こちらについては、ご使用になるゲームセッションホスティングプロバイダーやオーケストレーションサービスにお問合せいただき、ドキュメントをご参照ください。

ヘッドレスビルドの作成

Fusionのヘッドレスビルドは、Unityで構築可能な全ての64-bitプラットフォームに対応しています。以下の操作を行なってください。

  1. Unity EditorでFile > Build Settings...の順に移動する。
  2. Target Platformを選択する。
  3. Architectureが64-bitに設定されていることを確認する。
  4. Buildをクリックする。

Dedicated Server Build Platforms in Unity Build Settings
Unity Buildでの専用サーバー構築プラットフォーム

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

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

サーバーオーケストレーションは、Game Serversが管理される方法に関係しています。サーバーオーケストレーションとは、ゲームサーバーの管理方法のことで、必要に応じてサーバーを起動・停止したり、プレイヤーのリクエストに応じてゲームサーバー上にセッションを作成したりします。 サーバーオーケストレーションの主な目的をまとめると、プレイヤーがジョインしてプレイするのに使用可能なサーバーのコントロールを行うルールまたはシステム であると言えます。これにより、プレイヤーの需要が低い時(深夜や日中など)にコンピューティングパワーを節約することになり、できる限りコストを低くしておくことも可能になります。

Orchestration Serviceは、以下の責任を負います。

  1. Game Serverビルドのコピーの保管を行い、デプロイ使用に備える。
  2. Game Serverを実行できるマシンのインフラストラクチャを管理する。各プロバイダが使用するモデルはさまざまで、ベアメタルサーバーであったり、仮想マシンであったり、ドッカーコンテナの場合もあります。正しいモデルも間違ったモデルもありません。さまざまなサーバー環境要件を持つさまざまなゲームのニーズに適応します。
  3. そのGame Serverをデプロイするか、どこでデプロイするか(通常、さまざまなリージョンでデプロイされる)、そしてどの設定でデプロイするか(プレイヤーに合うように)開発者が選択することのできるスポーンとデストロイのコントロールシステムを提供する。このシステムの管理は手動でも、API経由でも、トリガールールによる自動でも行うことができます。

Fusionの観点から言うと、このレベルでの管理においては全て透過的です。インスタンスの処理方法と処理場所によって対応されるので、開発に直接影響はありません。 一方で、多くのオーケストレーションおよびホスティングプロバイダーで、Game Server自体での内部統合を使用しています。これは、以下のような情報を抽出することを目的としています。

  • マッチに関する情報。ゲームモードやマップなど。いかに例を挙げます。
  • 現在のプレイヤー人数と最大プレイヤー人数;
  • サーバーのヘルスステータス (例: starting, ready for players, shutting down);
  • その他

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

Fusion SDKは、全ての情報を提供して、各プロバイダーのSDKとの統合をシームレスに行うため簡単に表示できるようにしています。

ドキュメントのトップへ戻る