概要
概要
Fusionを使用するとクライアント・サーバー間トポロジを使用してゲームを開発できるようになります。このケースでは、プレイヤーがクライアントを接続するホスティングプロバイダーが専用ゲームセッションインスタンスを専用サーバー上で実行することになります。
専用サーバートポロジーの活用には以下を含むいくつかの必要なものが存在します。
- Fusion Headlessの構築;
- 専用サーバーで実行する専用ゲームセッションインスタンス;
- お気に入りのホスティングサーバーの専用サーバーマシン;
- Fusion Cloudプラグインを搭載したPhoton Cloud;
- 専用ゲームインスタンスに接続するクライアント
Host Mode と Server Mode
Fusionでのクライアント・サーバー間アーキテクチャの開発のまず第一段階は、Host Mode
にするかServer Mode
にするかの選択です。コードーベースに関するかぎりは、どちらも同じ機能セットを提供しています。考慮すべき唯一の相違点としては以下が挙げられます。
Host Mode
では、「サーバー」にステート権限が与えられ、プレイヤーにインプット権限が与えられます。Server Mode
では、「サーバー」にステート権限が与えられますが、プレイヤーやインプット権限がありません。
つまり、よりシンプルなHost Mode
で開発を開始して、それからプロジェクトチームが一つまたは複数の専用ゲームサーバー上でゲームセッションインスタンスを実行させるための、サーバーオーケストレーションの側面に取り組む準備ができた時点でServer Mode
に移行することもできるということです。
専用サーバー
FusionをServer Mode
で実行するには、ヘッドレスゲームビルドをホストするための専用サーバーが必要です。
Fusionについていうと、専用サーバーに以下のは2通りのタイプがあります。
- 専用 ゲームセッション サーバー;
- 専用 Photon Cloud サーバー
専用ゲームセッションサーバー
専用 ゲームセッション サーバーは、ホスティングプロバイダーから提供され、ヘッドレスゲームビルドをホストすることができます。プレイヤーの参加リクエスト時に、ゲームセッションインスタンスを起動させるためには、オーケストレーションサービスの介入が必要です(通常はこちらもホスティングプロバイダーから提供されます)。
専用 Photon 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プラットフォームに対応しています。以下の操作を行なってください。
- Unity Editorで
File > Build Settings...
の順に移動する。 Target Platform
を選択する。Architecture
が64-bitに設定されていることを確認する。Build
をクリックする。
ゲームサーバーオーケストレーション
サーバーオーケストレーションは、Game Servers
が管理される方法に関係しています。サーバーオーケストレーションとは、ゲームサーバーの管理方法のことで、必要に応じてサーバーを起動・停止したり、プレイヤーのリクエストに応じてゲームサーバー上にセッションを作成したりします。
サーバーオーケストレーションの主な目的をまとめると、プレイヤーがジョインしてプレイするのに使用可能なサーバーのコントロールを行うルールまたはシステム であると言えます。これにより、プレイヤーの需要が低い時(深夜や日中など)にコンピューティングパワーを節約することになり、できる限りコストを低くしておくことも可能になります。
Orchestration Service
は、以下の責任を負います。
Game Server
ビルドのコピーの保管を行い、デプロイ使用に備える。Game Server
を実行できるマシンのインフラストラクチャを管理する。各プロバイダが使用するモデルはさまざまで、ベアメタルサーバーであったり、仮想マシンであったり、ドッカーコンテナの場合もあります。正しいモデルも間違ったモデルもありません。さまざまなサーバー環境要件を持つさまざまなゲームのニーズに適応します。- その
Game Server
をデプロイするか、どこでデプロイするか(通常、さまざまなリージョンでデプロイされる)、そしてどの設定でデプロイするか(プレイヤーに合うように)開発者が選択することのできるスポーンとデストロイのコントロールシステムを提供する。このシステムの管理は手動でも、API経由でも、トリガールールによる自動でも行うことができます。
Fusionの観点から言うと、このレベルでの管理においては全て透過的です。インスタンスの処理方法と処理場所によって対応されるので、開発に直接影響はありません。
一方で、多くのオーケストレーションおよびホスティングプロバイダーで、Game Server
自体での内部統合を使用しています。これは、以下のような情報を抽出することを目的としています。
- マッチに関する情報。ゲームモードやマップなど。いかに例を挙げます。
- 現在のプレイヤー人数と最大プレイヤー人数;
- サーバーのヘルスステータス (例: starting, ready for players, shutting down);
- その他
これらの情報は、オーケストレーションシステムが、どのサーバーが参加可能か、そのサーバーがリサイクル可能か、特定のリージョンでアクティブなプレイヤーが増えた場合に、増やすサーバー数などのことを把握するために使用します。
Fusion SDKは、全ての情報を提供して、各プロバイダーのSDKとの統合をシームレスに行うため簡単に表示できるようにしています。
Back to top