8 - マルチプレイヤー
概要
この時点ではAsteroidsGameplay
シーンを再生すると、シングルプレイヤーモードでゲームをプレイ可能です。このようなゲームを高品質なマルチプレイヤーゲームに変更するのは、一般的には非常に大変です。しかし、すでにチュートリアルも後半に差し掛かっている中で、どのようにマルチプレイヤーを追加できるのでしょうか?
その答えは「すでに最初からマルチプレイヤーに対応している」です!Quantumでは、あなたは単にゲームプレイコードの記述に集中し、Quantumエンジンがそれをマルチプレイヤーゲームへと変えます!後はプレイヤーがオンラインゲームに参加できるようなメニューシーンをつなぐだけです。
メニューシーン
Quantumにはプロトタイピング用のサンプルメニューが用意されています。このメニューは、Photon/QuantumMenu
フォルダーのQuantum-Menu.unitypackage
をダブルクリックしてプロジェクトに展開できます。
Photon/QuantumMenu
フォルダーのQuantumSampleMenu
シーンを開いてください。メニューシーンは、ロビーを含むQuantumのゲームをオンラインで実行するためのすべての機能を備えています。シーンを開いた時に「TMP Essentials」のインポートを求めるポップアップが表示されたら、ボタンを押してプロジェクトにインポートしてください。
インポートが完了したらFile > Save As
から、Scenes
フォルダーにMenu
という名前で保存してシーンのコピーを作成します。

今回の例では、メニューの「Quick Play」機能のみを使用します。
メニューの調整
メニューは主にMenu Config
アセットから調整します。
新しいメニュー設定アセットを作成(Resources
を右クリックしてQuantum > Menu > Menu Config
を選択)して、AsteroidsMenuConfig
と名付けてください。
Available Scenes
リストに新しい項目を追加して、AsteroidsGameplay
を紐づけ、AsteroidsMap
アセットをシーンに持たせます。シーン名もAsteroidsGameplay
にします。インスペクターのRuntime Config
フィールドを展開して、関連する各フィールドにAsteroidsMap
・AsteroidsSimulationConfig
・AsteroidsSystemConfig
・AsteroidsGameConfig
を設定します。
また、デフォルトのMachine Id
とCode Generator
アセットを選択します。
メニュー設定から利用可能なリージョンや「App Version」を設定することもできます。

Menu
シーン上のCanvas/QuantumMenu
ゲームオブジェクトを選択します。Default Connection Args
フィールドを展開して、Player Avatar
フィールドにAsteroidsShipEntityPrototype
をドラッグしてRuntime Players
にプレイヤーを追加します。
次に、Config
を新しく作成したAsteroidsMenuConfig
に置き換えます。
Server Settings
とSessionConfig
は未設定で、Assets/QuantumUser/Resources
のデフォルト値が使用されます。設定ファイルのコピーを違う場所に作成した際は、手動で設定する必要があります。

Quantumのメニューは、Unityのシーン管理を使用してゲームシーンをロードするため、Build Settingsにシーンを登録する必要があります。Build Settingsを開き、Scenes In Build
リストにMenu
シーンを追加し、その下にAsteroidsGameplay
シーンを追加してください。

オンラインプレイ
ゲームをビルドして、オンラインでテストしましょう。
まずEdit > ProjectSettings > Player > Resolution and Presentation
に移動してFullscreen Mode
をWindowed
してから、File > Build Settings
に移動してビルドを作成します。
ビルドしたアプリケーションの起動と、エディター上でゲームを再生することで、ゲームのインスタンスを2つ開始します。Quick Play
を押すと、各クライアントはゲームに参加して、自分自身のアバター/エンティティを操作できるようになります。
