Answers to frequently asked questions about SpatialOS
What is SpatialOS?
SpatialOS is a cloud platform for developing and hosting multiplayer games. It empowers developers to create innovative games which are able to use more than one game server in a single instance. This means that games powered by SpatialOS can vary from smaller-scale session-based titles to persistent worlds with very large scale, high player count and much complexity.
Is SpatialOS a game engine, or built using game engines?
SpatialOS is not a game engine and is not built using game engines.
SpatialOS is a set of cloud services for hosting and networking game engines and, as it is not a game engine, does not provide game logic (e.g. for physics or other gameplay systems).
When using SpatialOS, you can use a game engine to write your game logic. You can integrate any game engine with SpatialOS using our SDKs and we provide our native integrations for Unity and Unreal.
Do I need to know about Unreal/Unity/Game development before using SpatialOS?
SpatialOS is designed to help developers build their games, faster and easier.
As SpatialOS is middleware and also a very technical product, however, it does require some existing knowledge and/or experience of game development and game engines, such as Unity and Unreal, or languages such as C++ and C#.
If you are completely new to game development, we recommend acquainting yourself with the fundamental factors and building blocks of game development and your chosen engine before exploring what SpatialOS can do for your game. This way, you will be able to fully benefit from the capabilities of SpatialOS when you choose to develop with it.
What games have been made with SpatialOS?
We have a number of studios and developers working with SpatialOS and building their games, including Scavengers by Midwinter Entertainment, Worlds Adrift from Bossa Studios, Seed from Klang Games and more. You can check them out on our website.
Do I have to be making a large persistent MMO game to take advantage of SpatialOS?
SpatialOS is flexible and can accommodate real-time multiplayer games of all sizes and types. It can host both session-based games (i.e. games that begin and end during one play session), as well as persistent worlds and even games that combine both of these experiences.
How much does SpatialOS cost?
It’s completely free to learn how to use SpatialOS, to start development and prototype a game or a project
We recommend anyone developing on SpatialOS or who has previously had questions related to the pricing structure of SpatialOS to check all of this out and read through everything in detail.
How do games use Unity with SpatialOS?
There are two options you can choose if you’re a developer looking to use Unity.
This is an open source toolkit we maintain to make it much easier to use Unity as a game client connected to SpatialOS hosted games, or with the option of a game server running in our Worker Service. Developers upload their Unity binary and we run it for them inside containers. We also provide example solutions to common multiplayer problems such as physics synchronization, player movement and shooting.
Some studios want more flexibility to build their own APIs. The SpatialOS base SDK is ideal and suitable for this.
What updates are coming up for the SpatialOS GDK for Unity?
We’re always working to keep our SpatialOS GDK for Unity up to date and you can check out on what’s coming up on our public roadmap.
How do games use Unreal with SpatialOS?
There are two options you can choose if you’re a developer looking to use Unreal Engine.
We are collaborating with Epic on a fork of Unreal Engine. This project re-implements Unreal’s networking to communicate through our networking layer, making it much easier for Unreal games to run on our platform and leverage our unique features.
Developers can use Unreal Engine without modifying its source code, using our networking APIs directly instead of those provided by Unreal.
What updates are coming up for the SpatialOS GDK for Unreal?
Our SpatialOS GDK for Unreal is still in pre-Alpha and we’re working very hard to iron out quirks and stay updated. You can check out on what’s coming up on our public roadmap.
How do games use CRYENGINE, or another engine, with SpatialOS?
It’s possible to use almost any commercial or open source game engine with SpatialOS. For example, Improbable and CRYENGINE are working to deliver official support for CRYENGINE and SpatialOS.
What updates are coming up for SpatialOS in general?
SpatialOS is constantly being updated and iterated upon as we work to make sure it is the best it can be for our developers. You can stay updated on all our updates on our Forums and Discord or via our website.
How do I get started with SpatialOS?
First, you’ll need to sign up for SpatialOS – once you have an account you’ll be able to download the software.
How does the SpatialOS Runtime differ from other game networking solutions?
The key differences that the SpatialOS Runtime has from other gaming network solutions are found in the following factors.
Multiserver: multiple game servers can connect to a single game instance. This allows the world to be larger and have more complexity than a single game server can handle.
Persistence: the synchronised data of the game is routed through and stored in memory. This allows the game to be resumed from a previous point in time and recover from crashes.
Distributed networking: the Runtime runs across multiple servers, allowing it to handle more concurrent players, NPCs and objects in a game instance than a single server could.
Rich interest management: game servers and clients only see objects in the game world that they need to see.
Client agnostic: the Runtime also allows for clients and servers of different types to communicate together using our data definition language.
How is the SpatialOS Worker Service different from other game hosting solutions?
The Worker Service sits within the SpatialOS Runtime and is similar to other game server hosting options (e.g Kubernetes or GameLift). Our platform manages the lifecycle of workers, scaling the number of them according to a load balancing policy decided by the developer. It also manages worker failures and can restart them when they crash.
Does SpatialOS require workers to be game engines?
No, it does not.
Running game engines server-side can be useful to prevent cheating, or when you want to run the same code on clients and servers for predictive purposes. However, many games only need simpler workers (not full game engines) to run, which can be built without an engine. Some developers have even used scripting languages like Lua on top of our C SDK.