44
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SpatialOSを使えばMMOゲームを作れそうな

Last updated at Posted at 2017-07-08

インターネットをご覧の皆さん こんばんは。
SpatialOS(https://improbable.io/games)を触ってみたところ、なかなか面白かったのでメモがてら記事を書いてみます。

SpatialOSとは?

Improbable社(https://improbable.io)が開発している、
MMOゲームの開発&実行プラットフォームです。

MMOゲームに求められる要件をシンプルに表現するなら、

  • 多人数のプレーヤで同一空間を共有する
  • 空間内のオブジェクトの状態を全ユーザで同期させる

といったところでしょうか。
SpatialOSはこの空間共有&状態同期を行う仕組みを提供します。

今年はGoogle Cloud NextやGDCでもセッションを行っていたので、目にされた方もいるのではないでしょうか。
Google Cloud Next '17 | Herman Narula Day 3 Keynote
Improbable @ GDC '17 | a look inside SpatialOS

SpatialOSは現在オープンβを行っており、MMOゲームを開発するためのSDKの提供や、開発したゲームをホストするサービスが試せます。
https://improbable.io/games
※追記:"SpatialOS GDK for Unity" としてローンチされたようです。

SpatialOSでできること

MMOゲームを作るのは難しそうで、まずもって作ろうという発想すらわかなかったのですが、SpatialOSを試してみてとても可能性を感じました。
面白いなと思った点を3つほど紹介してみます。

Unityでサーバサイドの実装も行える

MMOゲームだとサーバサイドを作るのに別言語とか勉強しなきゃいけないんでしょ。はい、ムリー。

ゲームを作る際にUnityを使っている方も多いと思いますが、
SpatialOSではUnityでサーバサイドの実装もできます
C#で書けるというだけではなくUnityの機能も使えるようです。
チュートリアルで扱うプロジェクトもUnityなので、わかりやすかったです。

A tour of SpatialOS
https://docs.improbable.io/reference/11.0/getting-started/tour

ちなみに、他にもUnrealで作れたり、C++/C#/Java/JavascriptのSDKもあるようです。

※追記: UnityでMMOゲームを作成する際にやることを簡単にまとめてみました。

サーバの負荷分散を行う仕組みがある

数人規模の接続数なら何とかなりそうだけど、何十人何百人と同時接続数が増えたらさばけるわけないじゃん。はい、ムリー。

SpatialOSにはサーバの負荷分散を行う仕組みが備わっているので、ある程度なら何とかなりそうです。
複数のWorkerで空間分割を行い、処理を分担する仕組みのようです。

cross worker boundaries
https://docs.improbable.io/reference/11.0/getting-started/tour#optional-cross-worker-boundaries

※追記:ちょっと古いですが、負荷分散の様子がわかる動画がありました。
Dynamic worker allocation time lapse on SpatialOS
https://www.youtube.com/watch?v=impXy5r4a3U
SpatialOS | Distributed physics without server boundaries
https://www.youtube.com/watch?v=ysB6bi7QUbw

Web上からゲームの状態を監視できる

もし作れたとしても運用するには、ゲーム内で何が起きているか把握できなきゃいけないでしょ。はい、ムリー。

WebのConsole画面が用意されていて、Web上からゲームの状態を監視できるので便利そうだなと思いました。

プレーヤや各種オブジェクトの状態を見れる Inspector
https://docs.improbable.io/reference/11.0/getting-started/tour#the-inspector-window
サーバの状態を見れる Metrics
https://docs.improbable.io/reference/11.0/getting-started/tour#metrics
発生した各種イベントを見れる Log
https://docs.improbable.io/reference/11.0/getting-started/tour#logs

おわりに

基本的にはドキュメントが充実しているので、
概要を知りたければ A tour of SpatialOS を、
具体的な実装方法を知りたい場合は Pirates tutorial
やってみると良いかと思います。

注意点として、まだβの段階なので最新版のSDKでないと動かない場合があります。(最初10.3を使おうとしてインストールできなかった。)
SDKやドキュメントは最新版を参照することをおすすめします。

※追記: SDKのインストール方法を簡単にまとめてみました。

※追記:"SpatialOS GDK for Unity" としてローンチされたようです。
概要を知りたければ Get started を、
具体的な実装方法を知りたい場合は Health pick-up tutorial
やってみると良いかと思います。
GDKのインストール方法も簡単にまとめてみました。
追記終わり。

SpatialOSの今後に関しては未知数な部分も多いですし、実際にMMOゲームを作るとなれば問題も出てくるかと思います。
ただ、もしMMOゲーム開発の敷居が下がるなら、いままで見たことのないゲームが出てきそうでワクワクしますね。

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

44
48
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
44
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?