This page covers: The platform (as a PaaS). How it’s different from traditional client-server development.
What is SpatialOS?
SpatialOS is a platform-as-a-service that runs and manages online games in the cloud.
But while it runs your game and manages the infrastructure for you, SpatialOS also enables something more than that. It runs games in a way that lets them scale further, be more complex, and have long-living persistence.
How does it actually work?
The traditional ways to develop large online games mean that you’re either limited by the capacity of a single game server, or you have to shard your game world.
SpatialOS works differently: it brings together many servers so they’re working as one. But it does this in a way that makes a single world which looks seamless to players.
To make that work, you need to do some things differently.
You’ll need to build your game using an entity-component-worker architecture, writing server-side code in a way that enables SpatialOS to stitch servers together. Instead of writing a single game server, you’ll write server-workers: server-side programs that are only responsible for handling a part of the world at a time. The part of the world is their area of authority.
In order to be able to simulate the world properly, server-worker instances need to see a slightly bigger area than the area they’re responsible for:
How this architecture supports persistence, scale, and complexity
Persistence: The game world is stored as a scalable database of entities, providing the canonical definition of the world that server-worker instances use and make changes to.
Scale: Stitching server-worker instances together allows you to create a huge game world, and distribute the workload among multiple servers.
Complexity: You don’t just have to have one type of server-worker. You can have many types, looking after many different systems in your game world, letting you layer up functionality without overloading your servers. (You’re not limited to one system per server-worker type - each server-worker type can potentially look after several systems.)
What we provide
We run your game in the cloud for you, managing all the infrastructure, so you don’t have to worry about how to make your game run on a distributed architecture.
As for development, you build your game using the tools you are familiar with. If you want to work in Unity or Unreal, we have integrations to make the transition to SpatialOS smooth. If you want to use another game engine or integrate other tools, we provide a low-level SDK, so you can create an integration that works for you.