シーン読み込み
イントロダクション
Quantumのコンテキストでシーンの読み込みは2つのパートに分かれます。:
- シーンビュー (Unity);
- シミュレーション用のシーンデータ(Quantum)。
このドキュメントは、シーンの読み込みに使用する3つのアプローチについて書かれています。3つすべてにおいて、UnityシーンとMapDataを(OnMapChanged
コールバックを通して)読み込むことになります。
注意: Simulation Config
アセットには *Auto Load Scene from Map(マップからの自動シーン読み込み)*オプションがあります。プロトタイピング や プロダクション にはいいのですが、自分でゲーム専用のローダーを記述することを強く推奨します。
オフライン中の読み込み
Unityのシーンはオフラインでも、プレイヤーがマッチメイキングに入る前のローカルでも、ゲームの開始前でも読み込みできます。ダイレクトマッチメイキングを行うカジュアルゲームなどには便利なオプションとなっています。
シーケンス:
- オフライン中でもバックグラウンドでゲームプレイシーンを読み込む(Unity)
- マッチメイキングに入り、ルームを探す(Photon Realtime)
- 事前に読み込みしておいたゲームプレイシーンでシミュレーションを開始する(Quantum)
Photonルーム内で読み込む
プレイヤーにマッチ前の情報を通知するためロビーが必要な場合、Photon Realtime APIを通した読み込みを連携させて、全員がゲームプレイシーンを読み込んだらすぐにQuantumシミュレーションを行うことができます。
シーケンス:
プレイヤーがPhotonルームに参加する
ルームに参加している全てのクライアントにRealtimeを経由してシーンの読み込みを連携する:
- 予測読み込み時間を示す(カスタムPhotonメッセージまたはルームプロパティ)
- クライアント全員がシーンを読み込んだことを確認するのを待つ(プレイヤープロパティ)または マスタークライアントがタイムアウトを表示する
- Quantumシミュレーションの開始を表示する(ルームプロパティ)
ゲームが開始すると、その他の読み込みが必要とされることなく即座にシミュレーションとゲームプレイが始まります。そうすることで関わる全てのプレイヤーに公平になります。
Quantum開始後の読み込み
このオプションは前のオプションと似ていますが、決定的な違いがあります。ロビールールがの制御と実行がQuantumシミュレーションによって行われる点です。Quantumシミュレーションを通すことで決定性のメリットをすぐに享受できるようになります。事前マッチルールが実行される場合、特に便利です。例えば、オンラインマルチプレイヤーバトルアリーナでのキャラクター選択ルールなどです。
シーケンス:
- ルームに参加する(Realtime)
- シミュレーションを開始する(Quantum)
- ゲームプレイシーンを読み込む(Unity)
- ゲームプレイシーンのロビーはシミュレーションロジックによって制御される
- プレイヤーは選択に
SendPlayerData
を使用することができる - ロビーシステム(Quantum)によってタイムアウトが実行されるため、クライアントが失敗しても決定性が保たれている。
- Quantumでロビーシステムを無効にし、ゲームプレイ関連のものを有効にする。