ご留意ください:Photon TrueSyncとThunderの開発は停止されており、今後はアップデートもパリリースされません。既存のアプリケーションへの影響はありませんが、現在開発中のアプリケーションについてはマイグレーションを推奨しています。

機能の概要

Content

Lockstep Engine for Unity3D on top of PUN

ロックステップエンジンでは、ゲームクライアントは入力値のみを交換します。ローカルでシミュレートされるティック(ロックステップフレーム)ごとに、すべてのクライアントからのすべての入力値が特定のマシンに到着する必要があります。

TrueSyncは、シンプルな入力キューを提供することでロックステップゲームの開発を簡素化します。開発者がゲームプレイコードに集中できるよう、確定的な物理エンジンとカスタムのシミュレーションループ(コールバックを使用)が含まれています。

クロスプラットフォームの決定論的物理

TrueSyncには、2Dゲーム用と3D用の2つのカスタム物理エンジンが搭載されています。両方の物理エンジンは決定論的なので、開発者が乱数の使用、浮動小数点変数(FixedPoint型で置き換える)の回避、プロパティのキュー入力値の基本ルールに従う限り、異なるマシンやプラットフォーム間でシミュレーション状態が同期されることが保証されています。

これらのカスタム物理エンジンのコンポーネントアーキテクチャとAPIは、Unityに組み込まれている物理エンジンに基づいて開発されています。開発者は、該当するコンポーネントを置き換え、既存のコードに簡単な修正を加えることで、ゲームをTrueSyncに移植できます。

自動リプレイ

ロックステップシステムの最大の利点の1つは、すべてのゲームクライアントの入力値のシーケンスのみでゲームセクションのリプレイが実行できるということです。TrueSyncは、すべてのゲームプレイセクションの完全な入力シーケンスを記録して、開発者がそれをシリアライズおよび保存し、後に使えるようにします。

リプレイを実行するには、以前に記録された入力シーケンスでゲームプレイシーンを実行します。あとはTrueSyncが処理します。

ロールバックと状態追跡

ロックステップシステムは、RTSやタワー防衛タイプのゲームに最適です。戦闘やスポーツゲームなどのアクションが多いタイトルの場合は、プレイヤーのネットワークレイテンシーを隠すために少し調整が必要です。この作業をロールバックと呼びます。

TrueSyncのロールバックシステムは、他のゲームクライアントからの入力をローカルで「推測」し、すべての入力が受信される前にシミュレーションを実行することによって、プレイヤーのインターネットレイテンシーを防ぎます。

入力値が間違って推測されると、TrueSyncは前のティックからゲーム状態を回復し、正しい入力値を持つ現在の状態に再シミュレートします。これらはすべて、開発者の干渉なしに自動的に行われます。推測ロールバックエンジンを使用して、システムに進めさせたいシミュレーションのティック数を設定します。

物理オブジェクトコールバックによりゲームオブジェクトが作成または破棄された場合でも、開発者がそのような操作に対して提供される安全なメソッドを使用している限り、ロールバックは以前の状態を正しく復元します。

HPやポイントなどの開発者が作成したカスタム変数を使用する場合、TrueSyncは状態追跡メカニズムを提供します。これにより、ロールバックが発生した際に復元される観察されたゲーム状態にそのような変数を含むことができます。

PUNとの完全な互換性

TrueSyncはPUN(Photon Unity Networking)と完全に互換性があります。 TrueSyncの各バージョンに最新バージョンが含まれています。

PUNは、TrueSyncの基盤となるネットワークシステムとして使用されるため、PUNルームに接続されているゲームクライアント間で決定的なゲームプレイセクションが発生します。

Photon Networkへの接続、ルームの作成と参加、カスタムPhoton Serverの管理は、すべて通常のPUNゲームと同じように機能します。また、RPCなどの通常のPUN機能を使用したり、TrueSyncとPUNの同期機能を同時に使用するハイブリッドシステムを使用することも可能です。

Photonに登録する方法については、PUNの「はじめよう」ドキュメントを参照してください。ロックステップを使用した決定的ゲームプレイセクションを開始する方法については、TrueSyncにバンドルされているサンプルゲームを使用してください。

Back to top