[SpatialOS] SDKのインストール～MMOゲームのデプロイ＆実行をやってみた

[追記]"[SpatialOS GDK for Unity](https://gdk.improbable.io/spatialos-gdk-unity)" として改めてローンチされたようです。
こちらのサンプルも試してみましたので、興味のある方は[こちらへ](https://qiita.com/tsukitsutsuki/items/1d9950256fd9c6ff66bf)。
<br><br>


インターネットをご覧の皆さん こんばんは。
[前回の記事](http://qiita.com/tsukitsutsuki/items/56d4c5deefad3bb4c0eb)ではSpatialOSのさわりをメモってみましたが、
今回は公式ドキュメントの[Get started](https://docs.improbable.io/unity/alpha/content/get-started/get-started)をかいつまんで、
SDKのインストール～サンプルゲームのデプロイ＆実行までを書いてみようと思います。

試した時点の環境は

* SpatialOS 10.4
* Windows10
* Unity5.6.1f1

です。

# 0. ユーザ登録
SpatialOSは現在オープンβを行っており、もろもろの機能を試してみることができます。
というわけで、まずはユーザ登録を行います。
https://improbable.io/get-spatialos

# 1. SDKのインストール
> じつはこの段階で若干躓いたのですが、A tour of SpatialOS の [Set up SpatialOS](https://docs.improbable.io/reference/11.0/getting-started/tour#1-sign-up-for-spatialos) は手順が一つ抜けています。
[SpatialOS setup guide for Windows (64-bit)](https://docs.improbable.io/reference/11.0/setup-spatialos/win) というページが別にありますので、そちらを参照するほうが良いようです。

1. SpatialOSのCLIツールは [Chocolatey](https://chocolatey.org/) (Windows向けのパッケージマネージャ) 経由でインストールできます。
Chocolatey を使用したことがない場合は、まず https://chocolatey.org/install を参考に Chocolatey をインストールします。<br><br>

1. コマンドプロンプト or Powershellから以下のコマンドを実行してSpatialOSのCLIツールをインストールします。
```choco install spatial --version 1.1.6 --yes```
EULAは[このあたり](https://auth.improbable.io/auth/v1/eula)に書いてあります。
<br>

1. 正しくインストールされたかを以下のコマンドで確認します。
```spatial update --force```
「Latest version is already installed」と表示されていればOKです。
新しいバージョンがあった場合は更新されるはずです。
<br>

1. 最後に依存ツール群を以下のコマンドでインストールします。
```spatial setup install-dependencies --sdk-version=10.4.0```
※もしインストールできないものがあれば、新しいバージョンのSDKがリリースされていないか確認してみてください。
 ~~（と言いつつ、記事執筆時2017/7/9の最新ver.11.0.0が入れられませんでした。古いバージョンが入っているときは[How to upgrade](https://docs.improbable.io/reference/11.0/releases/upgrade-guides/how-to-upgrade-11)の手順でやらないとだめなのかなぁ。）~~　※追記: できるようになってました。（2017/8/20）
※それでもダメな場合は、個別にインストールすることもできるみたいです。[Manual SpatialOS setup guide for Windows](https://docs.improbable.io/reference/11.0/setup-spatialos/win-manual)
<br>

1. 念のためOSの再起動を行います。

# サンプルゲームのデプロイ
※ここでのデプロイとは、サーバにゲームをアップロードして、サーバサイドのロジックを起動するといった感じです。

1. GitHubに公開されているサンプルゲームのソース [https://github.com/spatialos/Wizards](https://github.com/spatialos/Wizards) を clone もしくは zipでダウンロードします。
<br>

1. サンプルゲームをデプロイするにはプロジェクト名が必要です。
登録したアカウントでログインを行い[console](https://console.improbable.io)を表示すると、
「beta_ほげ\_ふが_数値」という名前のプロジェクトが用意されているはずです。
<br>

1. コマンドプロンプト or Powershell でゲームのソースを保存したフォルダに移動し、以下のコマンドを実行してデプロイを行います。
「insert_your_project_name_here」の箇所は、自分のプロジェクト名（beta_ほげ\_ふが\_数値）を指定します。
「Successfully created deployment」と表示されればデプロイ成功です。
※デプロイ中に認証のためブラウザが起動することがあります。放置するとデプロイが終わらない場合があるので注意。

```
spatial cloud launch wizards_demo_assembly default_launch.json wizards_demo --snapshot=snapshots/default.snapshot --project_name=insert_your_project_name_here
```

# サンプルゲームの実行
1. [https://docs.improbable.io/reference/11.0/setup-spatialos/win#3-install-the-launcher](https://docs.improbable.io/reference/11.0/setup-spatialos/win#3-install-the-launcher) を参考に、ゲームを起動するためのLauncherをインストールします。
<br>

1. ゲームのデプロイを行うと、[console](https://console.improbable.io) 画面のプロジェクト欄に、デプロイしたゲームが表示されているはずです。
ゲーム名をクリックして Overview 画面を表示します。
<br>

1. Overview画面左端のLAUNCHボタンを押すと、ゲームを起動するリンクが表示されるので、そのリンクからゲームを起動できます。
<br>

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

![Overview.png](https://qiita-image-store.s3.amazonaws.com/0/191218/8813dac9-07ae-b8c1-89fc-bd1492054de8.png)
Overview画面

![Wizards.png](https://qiita-image-store.s3.amazonaws.com/0/191218/4dcf59b2-2734-ed6a-7182-0f479af2bbdd.png)
ゲーム画面はこんな感じ。

# おわりに
今回試した[A tour of SpatialOS](https://docs.improbable.io/reference/11.0/getting-started/tour) の内容で、おおよその概要を見ることができました。
コマンド一発でデプロイできるところなんかは、なかなかお手軽だなと思いました。

具体的なゲームの実装方法を知りたい場合は [Pirates tutorial](https://docs.improbable.io/reference/11.0/tutorials/pirates/overview) を
やってみると良いかと思います。

※追記: ニュアンスだけ見てみたい方は、[UnityでMMOゲームを作成する際にやること](http://qiita.com/tsukitsutsuki/items/186e1c7aac2da5d7522f)を簡単にまとめてみましたので、よろしければどうぞ。

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