This document is about: QUANTUM 1
SWITCH TO

Ownersheep

このサンプルは全ソースコードを公開しています。何百ものシミュレーションエンティティ群を用いたゲーム作成にどうQuantumを使用しているかを説明しています。

  • Quantum 1.2.4.1 F1で構築
  • Unity 2019.3.3f1以降が要件
  • Windowsで実行

最新のサンプルソースコードはこちらからダウンロードできます: Ownersheep

免責事項:このサンプルはMi'pu'miによって、Exit Gamesのために開発されました。

特徴

  • 2人プレイの羊飼いゲーム
  • 3Dグラフィックおよび2Dゲームシミュレーション
  • Quantumの予測計算を用いた何百もの羊の群れのシュミレーション

動画

スクリーンショット

サンプルの実行方法

  • Unityエディタでquantum_unityフォルダを開きます
  • Gameシーンを開きます
  • Playを押します

オンラインでのサンプル実行方法

  • PhotonのダッシュボードでQUANTUM APP IDを作成します: Dashboard
    • CREATE A NEW APPをクリックします
    • PHOTON TYPEPHOTON QUANTUMに設定します
    • NAMEフィールドを入力してCREATEを押します
    • 新しいQuantumアプリのMANAGEのをクリックします
    • 下方向にスクロールしCREATE A NEW PLUGINをクリックします
    • SAVEを押します
  • Quantum App Idをコピーします
  • 「PUN Wizard」を開きます Unityで'Window > Photon Unity Networking > PUN Wizard' (またはAlt+P)と進み、開いたウィンドウで「Setup Project」をクリックします。
  • 「PUN Wizard」ウィンドウで、AppIdをペーストし「Setup Project」をクリックします。
  • Menuシーンを開きます
  • Playを押します
  • ゲームUIでConnectを押します
  • Create New Roomを押してMax Playersを2-4に設定します
  • Create を押して、他のプレイイヤーがルームに接続するのを待ちます
  • Start Gameを押して接続済のプレイヤーとゲームを実行します

技術資料

quantum_code folder

このフォルダにはゲームシミュレーションコードが記載されています。 シミュレーションは予測性で、画面にとらわれず、レンダリングエンジンに依存しません。

サブフォルダの quantum.stateにはシミュレーションが実行するステートデータが含まれています。 ここでは、自分のシミュレーションでエンティティを設定するのに使用した読み取り専用データを用いてUnityでシミュレーションを提供するのに使用可能なアセット定義を見ることができます。
シミュレーションエンティティ自体は.qtnファイルに記述されています。 Quantumはこれらの記述ファイルをフレームデータごとに解析し、ゲームシステムで使用します。
このサンプルに関連するアセットやエンティティは以下のフォルダにあります。quantum_code/quantum.state/Ownersheep

サブフォルダquantum.systemsには、予測シミュレーションロジックが格納されています。 Quantum内のシステムはステートレスで、Updateメソッドを介して受信するミュータブルフレームデータで機能します。 このミュータブフレームデータにはquantum.stateに記述されているエンティティが含まれています。
このサンプルで実際に使っているシステムは以下にあります。quantum_code/quantum.systems/Ownersheep さらなるシステムセットアップ、アップデート順序の決定などは以下にあります。quantum_code/quantum.systems/SystemSetup.cs

quantum_unity folder

このフォルダにはUnityプロジェクトが含まれており、ゲームのレンダリングと、ゲームプレイやマルチプレイヤーとは関係のないサードパーティのライブラリの実装を行っています。 以下は一例です:

  • Photon Unity Networkingを使用したマルチプレイヤールームの作成とマッチメイキング
  • PlayerIO統合またはローカル限定の「バックエンド」を使用して行うパーシステンスサーバーでの通信

Quantumはこのサンプルで使用している基本のロビー設定とプロファイリングUIを提供しています。 フレームワークは Assets/Quantum にありますが、このサンプルに適応させるため少々修正しています。 修正を行ったのはプレイヤーやルームのプロファイリングUIとデフォルト名選択切替のためのキーバインドなどです。

このサンプルに関連するスクリプトは Assets/ScriptsAssets/Sheep にあります。 これらのフォルダに格納されているスクリプトは簡潔で、インタラクションや表示関連のタスクを処理しています。
このサンプルで使用したアセットは、 Assets/FontsAssets/ModelsAssets/PrefabsAssets/ResourcesAssets/ScenesAssets/StreamingAssetsAssets/UIAssets/Worldにあります。

Assets 内の残りのフォルダはこのサンプルに使用したプラグイン関連のものです。

Release History

Apr 4, 2020
- Initial release of Ownersheep
Back to top