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リストに新しい項目を追加して、AsteroidsMapアセットが設定されているAsteroidsGameplayシーンを紐づけます。シーン名も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を押すと、各クライアントはゲームに参加して、自分自身のアバター/エンティティを操作できるようになります。