Fusion Core イントロ
概要
Fusion Coreは Photon Fusion 3の中心であるエンジン非依存のCネットワーキングSDKです。
コンパクトなシングルスレッドAPIでステートレプリケーション、リモートプロシージャコール(RPC)、インタレストマネジメントを提供します。
本SDKはC20コンパイラ搭載のプラットフォームであれば稼働でき、バインドレイヤーを数行記入するだけでどんなゲームエンジンとも統合できます。
Fusion Coreは、各クライアントが独自のオブジェクトを所有しシミュレーションするSharedModeで動作します。一方Photon Serverは自動とうちゅ参加動機やインタレストマネジメントのためのステートフルキャッシュを管理します。
次のステップ
ドキュメントセクション
統合ガイド
エンジン統合構築のための実践的なパターン
| ドキュメント | 詳細 |
|---|---|
| クイックスタートガイド | 最小限の統合スケルトン:ログ、構成、接続、フレームループ、オブジェクト作成、同期、シャットダウン。 実装コードの全容。 |
| オブジェクト同期パターン | ループ同期、ワードバッファレイアウト、データ型のワード配置規則、floatのビットキャスト、64ビット分割、分割、文字列、シャドウ/ダーティ検出。 |
| サブオブジェクト | ObjectChild 生成フロー(権限側とリモート側) 、保留キューパターン、デュアルハンドルパターン、必須オブジェクト、文字列ヒープの委譲。 |
| エンジンのバインド | Object::Engineポインタ、双方向レジストリ、PackedObjectId、型ハッシュの規約、スポーン可能型レジストリ、スポーナー/ファクトリパターン。 |
落とし穴
| ドキュメント | 詳細 |
|---|---|
| 落とし穴 | 14個の重要な落とし穴と、誤ったコード/正しいコードの例: ObjectTailへの書き込み、反復(イテレーション)順序、ヘッダーのインクルード、文字列リーク、スポーンデータの文字列、フレームループの順序、スレッド処理、CRTリンク設定、その他多数。 |
ヘッダとドキュメントのマッピング
| SDKヘッダ | 主なドキュメントページ |
|---|---|
Client.h |
クイックスタートガイド, オブジェクト同期パターン, サブオブジェクト, エンジンのバインド, 落とし穴 |
Types.h |
オブジェクト同期パターン, サブオブジェクト, 落とし穴 |
RealtimeClient.h |
クイックスタートガイド, 落とし穴 |
Broadcaster.h |
クイックスタートガイド, 落とし穴 |
SubscriptionBag.h |
クイックスタートガイド, 落とし穴 |
Task.h |
クイックスタートガイド, 落とし穴 |
Result.h |
クイックスタートガイド, 落とし穴 |
Buffers.h |
オブジェクト同期パターン |
StringHeap.h |
オブジェクト同期パターン, サブオブジェクト, 落とし穴 |
LogOutput.h |
クイックスタートガイド |
推奨される読み進め方
初めてFusion 3 SDKを新規のエンジンに統合させる場合は、以下の順番でお読みください。
クイックスタートガイド -- エンドツーエンドの最小限の実装を行った実用的なサンプルを紹介しています。紹介している実装:ログ、クライアント構成、RealtimeClient経由での接続、フレームループ、オブジェクトの生成、プロパティの同期、シャットダウン
オブジェクト同期パターン -- Wordsバッファの詳細解説:型をワードにマッピングする方法、オフセットの計算、floatやベクトルの書き込み/読み取り、配列の扱い、そしてStringHeapを用いた文字列プロパティの管理方法。
落とし穴 -- よくある14の間違い。プロダクションコードを書く前にこれを読んでください。各落とし穴には、誤ったコード例/正しいコード例と、明確な予防ルールが含まれています。
エンジンのバインド -- SDKオブジェクトをエンジンオブジェクトに接続する方法:双方向レジストリ、型ハッシュの規約、スポーン可能シーンの登録、およびスポーナー/ファクトリーパターン。
サブオブジェクト -- 上級トピック:子オブジェクトの作成、2段階の生成フローの処理、順不同で到着する要素に対応するための保留キュー、そして権限チェックや必須オブジェクトに用いるデュアルハンドルパターン。
この一連の手順を完了すると、完全なFusion統合を構築するための確かな基盤が身につきます。
実装中は必要に応じて各ガイドを参照してください。