LoginSignup
8
8

More than 5 years have passed since last update.

[SpatialOS] SpatialOS GDK for Unity のインストール~MMO FPSゲームサンプルの起動を試してみた

Last updated at Posted at 2018-10-21

インターネットをご覧の皆さん こんばんは。

いままでアルファ?ベータ?版だった SpatialOS ですが、先日 "SpatialOS GDK for Unity" としてローンチされたようです。( for Unreal はまだアルファの模様 SpatialOS GDK for Unrealも公開されました )

SpatialOS GDK for Unity launch: build multiplayer games faster
https://improbable.io/games/blog/spatialos-gdk-for-unity-launch

SpatialOS を採用したゲーム開発に関してもいくつかトピックスがありましたので、今後さらに開発は進んでいくのではないかと思います。

今回は新しくなった SpatialOS GDK for Unity の公式ドキュメント Get started を試してみたので、かいつまんで書いてみようと思います。

試した時点の環境は

  • SpatialOS 14.0-b6143-48ac8-WORKER-SNAPSHOT
  • Windows10
  • Unity2018.2.8f1
  • .NET Core SDK 2.1.403

です。

0. ユーザ登録

まずはユーザ登録を行います。今のところは無料で試せるようです。
https://improbable.io/get-spatialos

1. 環境構築

SpatialOS GDK for Unity が対応しているバージョンの開発環境をインストールします。
2018/10/20 時点では以下のバージョンが必要なようです。公式ドキュメントから各種リンクが張られています。
https://docs.improbable.io/unity/alpha/content/get-started/set-up#set-up-your-machine

  • Unity 2018.2.8
    • Linux Build Support (server-workers で必要)
    • Mac Build Support (作成したゲームをMacユーザに配布したいときは必要)
    • ※はじめは Unity2018.2.13f1 で試そうとしたのですが、モジュールの参照が外れたりエラーが出たので素直に Unity2018.2.8f1 をインストールしました。
      ※追記:2018/11/24時点ではバージョンUnity2018.2.14になっていました。都度上がりそうなので公式ドキュメントをチェックしてください。
  • .NET Core SDK (x64) 2.1.3xx or 2.1.4xx
  • SpatialOS Installer
  • コードエディタ
    • Visual Studio 2017 or Rider がおすすめらしい。
    • Visual Studio を使用する際は、Visual Studio Installer から ".NET Core cross-platform development" と "Game development with Unity" を追加。

2. サンプルゲームの準備

  1. SpatialOS GDK for Unity ではサンプルとして FPS Starter Project が提供されています。
    FPS Starter Project は GitHub で提供されていますので、Clone してきます。
    https://github.com/spatialos/gdk-for-unity-fps-starter-project

  2. clone したリポジトリのルートから以下のコマンドを実行します。
    powershell scripts/powershell/setup.ps1
    このコマンドで、GDK for Unity が所定の場所に clone されます。

  3. Unity のバグがあるらしい ( https://docs.improbable.io/unity/alpha/content/get-started/open-project ) ので対処を行います。
    ※使用する Unity やサンプルコードのバージョンが上がれば解決しているかもしれません。

    • Shader の Reimport:Project パネルから Assets/Fps/Art/Materials/Source_Shaders を選択し、右クリックメニューから Reimport を行います。
    • Navmesh を Rebake:Assets/Fps/Scenes/SimulatedPlayerCoordinator シーンを開き、Hierarchy から FPS-Start_Large を選択して Enable にします。
      Windows > AI > Navigation で Navigation パネルを開き、Bake タブから Bake を行います。
      Assets > Fps > Scenes > FPS-SimulatedPlayerCoordinator 内の Navmesh のアイコンが正常に表示されれば Bake 成功です。FPS-Start_Large を Disable に戻しておきます。

3. サンプルゲームのビルド > アップロード > 起動

https://docs.improbable.io/unity/alpha/content/get-started/build-workers
https://docs.improbable.io/unity/alpha/content/get-started/upload-launch

  1. worker のビルドを行います。(worker はSpatialOSの処理単位です。)
    Unity エディタの Jobs メニュー から Enable Burst Compilation が無効になっているのを確認した後、 SpatialOS メニューから Build for cloud > All workers でビルドを行います。
    ビルドが成功すると、コンソールに "Completed build for Cloud target" というメッセージが出力され、gdk-for-unity-fps-starter-project/build/assembly 以下に worker の zip が生成されます。

  2. サンプルゲームをデプロイするにはプロジェクト名が必要です。
    登録したアカウントでログインを行いconsoleを表示すると、
    「beta_ほげ_ふが_数値」という名前のプロジェクトが用意されているはずです。

  3. 設定ファイル gdk-for-unity-fps-starter-project/spatialos.json の "name" を自分のプロジェクト名に変更します。

spatialos.json
{
    "name": "beta_ほげ_ふが_数値", <- この部分を変更
    "project_version": "0.0.1",
    "sdk_version": "14.0-b6143-48ac8-WORKER-SNAPSHOT",
    "dependencies": [
        {"name": "standard_library", "version": "14.0-b6143-48ac8-WORKER-SNAPSHOT"}
    ]
}
  1. コマンドプロンプト or Powershell で gdk-for-unity-fps-starter-project/ に移動し、以下のコマンドを実行してアップロードを行います。
    アセンブリ名は自由につけることができるようです。ここでは fps-assembly にしています。
    spatial cloud upload fps-assembly

  2. 続いて以下のコマンドを実行して起動を行います。
    コマンドでは、アセンブリ名 / 設定 / デプロイ名を指定します。
    アセンブリ名はアップロード時に指定したものです。
    デプロイ名は自由につけることができるようです。ここでは shootyshooty にしています。デプロイ名は SpatialOS web Console に表示されます。
    spatial cloud launch --snapshot=snapshots/default.snapshot fps-assembly cloud_launch_large.json shootyshooty

起動時の web Console
WebConsole.png

4. サンプルゲームで遊ぶ

  1. console から、デプロイしたゲームを選択し、 Overview 画面を表示します。
    Overview画面左端のLAUNCHボタンを押すと、ゲームを起動するリンクが表示されるので、そのリンクからゲームを起動できます。
    Launch.png

  2. マルチプレイを行いたい場合は、Overview 画面左端の SHARE ボタンを押すと、共有するための URL が発行されますので、その URL 経由でゲームが起動できます。

  3. サンプルゲームでは、WORKER FLAGS 画面から fps_simulated_players_per_coordinator パラメータを変更することで、敵AIを生成することもできるようです。
    enemy.png

ゲーム画面はこんな感じ。
Game.png

console の Inspector 画面では、ゲーム内の状況も見れます。
inspector.png

おわりに

SpatialOS の CLI ツール等がインストーラから入れられるようになったりと、以前より手軽に導入できた印象です。

最新の環境が必要になった分、特に Unity の新しい機能に対応しているようなのは、開発のしやすさやパフォーマンスに恩恵があるかもしれません。
(ECS とかも使ってたりする模様 https://improbable.io/games/blog/unity-gdk-our-first-steps)

FPSサンプルゲームは、バトルロイヤル系のゲームの参考になりそうな感じだなと思いました。

以上 おつきあいいただきありがとうございました。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8