Since the announcement of our strategic partnership with Google Cloud Platform (GCP), we’ve been asked quite a few questions about what this will mean for game developers who wish to start developing on SpatialOS. To answer these, we were delighted to accept an invite from the fantastic Google Cloud Podcast. Our CTO Rob Whitehead went along to explain more.
You can listen to the podcast in full on the Google Cloud Platform Podcast Blog, including whether SpatialOS is really an OS.
“That's a very good question.” said Rob Whitehead, CTO and co-founder of Improbable, during the podcast, “SpatialOS is classed as a distributed operating system. So when you have traditional operating systems, Android, Windows, they run on a single machine. SpatialOS is a layer above that, which lets you take multiple computers and consider them to be one big computer, and presents an abstraction on top of that. So specifically, SpatialOS runs on top of a core OS on a cluster of machines in the cloud, and then gives you APIs you can treat as almost one big supercomputer.”
Additionally the podcast sought to shed some light on the SpatialOS Games Innovation Program with Google Cloud Platform - more details of which are expected to be announced by Improbable at the Game Developers Conference (GDC) 2017 in San Francisco.
“Yes, we're going to be announcing the specifics of the program closer towards GDC.” explained Whitehead, “But right now, anybody who signs up through spatialos.com will be eligible to apply for the program.”
The experiences of developers who do choose to use SpatialOS for their next development project were also discussed at length, including some useful technical insights into the platform and its history.
“We really believe in people taking the tools they're already familiar with to use our technology.” said Rob, “So let's say you're traditionally used to building a dedicated server-based multiplayer game. In Unity, you'd have a Unity-dedicated server, probably built out on Linux and you'd probably put on some either dedicated machine or on some VM. And you'd have some clients go and connect to that.”
“And so with SpatialOS, you download our SDK, which is just a series of command line tools, and web UIs, essentially. And you get plugins which actually tie in to whatever game engine you're using. So whether you're using Unreal or using Unity or you're using your own game engine, this essentially handles your connection into SpatialOS and handles taking the part of the world which your engine is simulating and synchronising it with the broader one.”
“Does that mean I have to write in some sort of custom language, or am I escaping my usual set of tools, or how does that work?” asked Mark Mandel, the Developer Advocate for GCP and podcast co-host.
“No, you can use your existing set of tools, be it Unity, Unreal, whatever game engine or whatever kind of tool you want to be using for that...traditionally worlds would be built or run from a single dedicated server running in the cloud, now there's a cluster of machines. So concretely, for a game like Worlds Adrift, we’re (SpatialOS is) actually running hundreds of instances of a game engine, like Unity, in the cloud, cooperating together to simulate a world much bigger than any single one of those engines could ever understand.”
“Then,” Rob continued, “plugging into the world as well, you could have well over 1,000 clients interacting in the same physical environment. And again, that's much larger than a single game engine could ever deal with. And that's because SpatialOS is a distributed cluster handling the in-memory persistence of all those entities as they mutate, handling the network fan-out of you moving around the world and having all the things you're seeing streamed into you.”
You can listen to more of Rob’s Q&A with the Google Cloud Podcast crew on the official blog, where you can also find a full transcript.