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

概要

概要

Fusionでは、クライアントサーバートポロジーを採用したゲームを開発することができます。この場合、ホスティングプロバイダーが提供する専用サーバー上で専用のゲームセッションインスタンスが実行され、プレイヤーはクライアントからそのサーバーに接続します。

専用サーバートポロジーを利用するためには、以下のようないくつかの要素があります。

  • Fusion Headlessビルド
  • ゲームセッションインスタンスホスティングプロバイダーが提供する専用サーバー
  • 好きなホスティングプロバイダーの専用サーバーマシン
  • Fusion Cloud Pluginを使用したPhoton Cloud
  • 専用ゲームインスタンスへ接続するクライアント

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

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

トップに戻る

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

FusionでClient-Serverアーキテクチャを開発する際の最初のステップは、Host ModeServer Modeのどちらかを選択することです。どちらも同じ機能を提供し、コードベースに関する限り同じように動作します。唯一の違いは以下の通りです。

  • Host Modeでは、「サーバ」はState Authorityを持ち、プレイヤーはInput Authorityを持つことになります。
  • 一方、Server Modeでは、「サーバ」はState Authorityを持ちますが、プレイヤー やInput Authorityは付与されません。

つまり、テストが簡単なHost Modeから開発を始め、プロジェクトチームが1つまたは複数の専用ゲームサーバでゲームセッションインスタンスを実行するために必要なサーバオーケストレーションに取り組む準備ができたら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専用サーバーは、ゲームのニーズに合わせて専用のcloudリソースを提供し、割り当てます。

Photon Cloudは以下を処理します。

  • 接続処理
  • リレーのフォールバック
  • サーバー移行のための状態バックアップ

さらに、エンタープライズ サブスクリプションは以下を提供します。

  • Fusion Cloud Pluginのカスタムバージョンを実行する機能(まだ提供されていません)
  • 専用IP
  • SLA
  • 24時間365日体制のNOCチーム
  • その他

Server Modeでゲームを実行するには、専用のゲームサーバーとPhoton Fusion Cloudの契約が必要です。

トップに戻る

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

人気のあるホスティングプロバイダーは以下の通りですが、これらに限定されるものではありません。

もちろん、必要に応じて、カスタムソリューションやスタンドアロンのDockerインスタンスを使用することも可能です。

トップに戻る

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

ゲームセッションインスタンスは、オーケストレーションサービスからの要求に応じて、専用サーバー上で起動されます。このプロセスはFusionとは独立しており、ゲームセッションホスティングプロバイダーとオーケストレーションサービス独自のシステムに結びついています。この件に関しては、プロバイダーやオーケストレーションサービスに問い合わせ、ドキュメントを読んでください。

ヘッドレスビルドの作成

Fusion Headless ビルドは、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
Dedicated Server Build Platforms in Unity Build Settings.

トップに戻る

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

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

サーバーオーケストレーションとは、ゲームサーバーの管理方法のことで、必要に応じてサーバーを起動・停止させたり、プレイヤーのリクエストに応じてサーバー上にゲームセッションを作成したりします。サーバーオーケストレーションサービスの主な目的は、プレイヤーが参加できるサーバーの可用性を制御する一連のルールやシステムとしてまとめることができます。また、プレイヤーの需要が少ない時間帯(夜中や昼間など)にコンピューティングパワーを節約することで、負荷を可能な限り低く抑えることができます。

オーケストレーションサービスは、次のような役割を担っています。

  1. ゲームサーバーのビルドのコピーを保存し、デプロイ時に使用できるようにする。
  2. ゲームサーバーを実行できるマシンのインフラストラクチャを管理する。プロバイダーによって、ベアメタルサーバーや仮想マシン、Dockerコンテナなど、使用するモデルは様々です。ゲームによってサーバー環境の要件が異なるため、正しいモデルや間違ったモデルはありません。
  3. 開発者は、どのゲームサーバーをどこに配置するか(通常は複数の地域に配置可能)、どのような設定にするか(プレイヤーに合うように)を選択できる、スポーン&デストロイコントロールシステムを提供します。このシステムは、手動、API経由、またはトリガールールのセットによって自動的に管理することができます。

Fusionの観点では、このレベルの管理では、インスタンスをどこでどのように実行するかが扱われるため、全て透明であり、開発に直接影響を与えることはありません。 一方、オーケストレーションやホスティングのプロバイダーは、ゲームサーバー自体の内部統合を利用し、以下のような情報を抽出します。

  • ゲームモードやマップなど、試合に関する情報。
  • 現在のプレイヤー数、最大プレイヤー数。
  • サーバーの状態(例:起動中、プレイヤーの準備完了、シャットダウン)。
  • その他

これらの情報は、どのサーバーが参加可能か、どのサーバーがリサイクル可能かを知るためにオーケストレーションシステムによって使用され、アクティブなプレイヤーが多い時間帯に特定の地域でサーバーの数を増加させるなど、時間的な統計データを作成することができます。

Fusion SDKは、各プロバイダのSDKとの統合を容易にするために、全ての情報とそれを簡単に公開する手段を提供します。

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