ネットワークトポロジー
ネットワークトポロジー
Fusionは3つのネットワークトポロジーに対応しています。

Fusionではネットワークトポロジーを「モード」と呼びます。
Dedicated Server(サーバーモード)
サーバーアプリケーションは、ヘッドレスモードでUnityのビルドを実行します。専用サーバーは、すべてのオブジェクトに対する完全かつ独占的な状態権限を持ちます。
クライアントは、入力をサーバーに送信する(そしてサーバーがその入力を反映する)か、RPCを使用して変更をリクエストすることでのみ、ネットワークオブジェクトを変更できます。
専用サーバーは通常、静的パブリックIPアドレスでホストするため、UDPホールパンチングやリレー接続は必要ありません。
専用サーバーの欠点は、各ゲームセッションごとに完全なUnityインスタンスを立ち上げるコストです。Photonは、Fusionの専用サーバーアプリケーションをホストするサーバーは提供していません。
専用サーバーはFusionのGameMode.Server
で動作し、クライアント(プレイヤー)はGameMode.Client
で実行します。
Client Host(ホストモード)
ホストモードでは、プレイヤー1人の端末がサーバーとクライアントを兼ねるホストになります。ホストはローカルプレイヤーを持ち、クライアントと同様に入力のポーリングやレンダリングを行います。
全般的にこのモードはサーバーモードと同等ですが、専用サーバーをホストする必要がない分だけ運用コストは安くなります。しかしこれは信頼性とのトレードオフで、悪意のあるホストのチートを防げません。
ホストモードは、ビルトインのUDPホールパンチングを備えていて、各クライアントとホスト間のP2P接続を可能にします。もしこれに失敗してFusionがP2P接続を確立できなければ、プレイヤーはリレー経由で接続します。これは10人に1人程度の頻度で発生します。ホストモードでのリレー接続は、余分な遅延の原因になりますが、ゲームプレイ中に気付くことは稀です。
ホストプレイヤーはFusionのGameMode.Host
で動作し、他のプレイヤーはGameMode.Client
で実行します。FusionのGameMode.AutoClientOrHost
にすると、ルームへ最初に接続したプレイヤーがGameMode.Host
で開始し、その後のプレイヤーがGameMode.Client
で開始できます。
Single Player(シングルプレイヤー)
Fusionではネットワークのコードを変更せずにローカルで実行できます。ロジックはホストモードのホストプレイヤーとして実行されますが、外部のネットワーク接続は行いません。ゲームのコードは、代替や特殊ケースなしに実行されます。このケースでは、FusionのGameMode.Single
で動作します。
Shared Authority(共有モード)
共有モードでは、ネットワークオブジェクトの権限が各クライアントに分散されます。各クライアントは自身がスポーンしたオブジェクトの状態権限を最初に持ちますが、他のクライアントに状態権限を移譲することもできます。クライアントは任意で状態権限の取得を許可制にもできます。Photonのルームは状態権限の変更を制御し、ネットワーク上の状態の完全なコピーを保持します。FusionはGameMode.Shared
で動作します。
共有モードは多くの点でPhoton Unity Networking (PUN)に似ていますが、より機能が充実し、高速で、ランタイムアロケーションのオーバーヘッドがありません。
次のステップ
イントロダクション
Fusionのドキュメントのイントロダクションをご覧ください。
Choosing the Right Network Topology
We have a guide on choosing the best network topology for your game.
チュートリアル
チュートリアルから始めてみましょう。サーバーモードとホストモードは、プログラミングのアプローチが同じなので、一つのチュートリアルにまとめられています。
Back to top