Fusion Unreal とは?
概要
Photon Fusion Unrealは、ステートのレプリケーションに基づく高性能なネットコードSDKです。分散型権限アーキテクチャを採用しており、Unreal標準ネットコード(伝統的なクライアントサーバー型モデル)と比較して、低コストかつ効率的な運用を両立できます。
また同時に、Unrealファーストのアプローチで構築されており、ほぼすべての標準機能がそのまま動作します。
クライアントサーバー型アーキテクチャに代わる選択肢
Unreal Engineには、多くのユースケースに対応するビルトインのクライアントサーバー型レプリケーション機能が搭載されています。しかし、専用サーバーを維持する方法では高額な費用と複雑なオーケストレーションが要求され、ゲームクライアント(プレイヤー)にホストを任せる方法では品質にばらつきが生まれるため現実的な解決策とは言えません。
Fusion Unrealでは共有型トポロジーのみを採用しており、クライアントは自身がスポーンしたアクタに対する権限を持ちます。効率的で実績があるPhoton Cloudは中央ハブとして機能し、ゲームステートの配信・インタレストマネジメント・その他の機能を担います。
以下の表は、「Fusionの共有型権限モデル」と「Unreal標準のクライアントサーバー型ネットコード」との比較です。Fusionは、特に協力プレイ・VR・モバイルなど、ランニングコストとスケーラビリティが重要になる場合に優れています。
Unrealファーストのアプローチ
Fusion UnrealはUnrealプラグインとして動作するため、エンジンのフォークをコンパイルするなどの複雑な作業は必要ありません。プロジェクトにプラグインを追加するだけで、すぐに開発を始めることができます。
また、既存のUnrealネットコードのセマンティクスを尊重していて、UPropertyをReplicate/RepNotifyに設定すると、Fusionによって自動的に複製が行われ、期待通りの結果が得られます。
特別な型を継承する必要もありません。アクタ・コンポーネント・プロパティは、C++ でも直接ブループリントからでも定義することが可能です。ゲームロジックの記述も同様で、UE既存のTick()から(C++ とBP両方で)直接実装することが可能です。
RPCはビルトインのものと非常に似ていますが、ターゲットを指定するための特別な共有型権限セマンティクスが必要です。Fusionでは、それに対応するカスタムのブループリントが定義されています。
詳細については、クイックスタートガイドから学ぶことができます。
Forecast:分散型物理予測
Fusion Unrealには、「Forecast」と呼ばれる最先端の分散型物理予測モジュールが含まれています。これはUnrealのChaos Physicsと直接統合されていて、複製されたアクタが物理演算を使用する際に自動的に有効化されます。以下はクイックスタートガイドの例で、2人のキャラクターアクタと物理ボディのボールが、シームレスにインタラクションする様子になります。
これは完全に無効化することも、特定のニーズに合わせて調整することも可能です。デフォルト設定は、インタラクション可能なオブジェクトや乗り物などに最適化されています。
サーバーサイドロジック(エンジンコードの先へ)
Fusionは、サーバーとしてのUnreal Engineインスタンスを必要としないという意味では「サーバーレス」ですが、P2Pシステムでもありません。プレイセッションのインスタンスはPhoton Cloudインフラストラクチャ経由でホストされ、ゲームステートはサーバーによって管理されます。
これによってゲームに依存しない形で、「関心領域(area-of-interest)」や「オブジェクト優先付け(object prioritization)」がサポートされるだけでなく、必要に応じて将来的に軽量なサーバーコードを追加することも可能になります。
これを可能にする重要な機能は、型レイアウトとデータの両方をPhoton Cloudにアップロードする機能です。これによって、ラグ補償・視線判定・アクタ移動速度検証・特定のアクタ/コンポーネントの独自更新など、重要なコードパスをPhoton Server(Enterpriseホスティング経由)から非常に効率的に実行することができます。
この機能が完全に公開された後、お試しをご希望の場合はご連絡ください。
次のステップ
Photon Fusion Unrealはクイックスタートガイドから始めることを強く推奨します。このガイドでは、最初のプロジェクトを始めるために必要な基礎をすべて学ぶことができます。
Back to top