Try SpatialOS

Sites

Menu

SpatialOS

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.

Traditional client-server architecture

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.

SpatialOS architecture

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.

Server-workers: 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:

Server-workers: area of interest

Read more about entities and components

Read more about server-workers

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.)

Layers of server-workers

Layers of server-workers: flat view

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 low-level SDKs, so you can create an integration that works for you.

Read more about the [game development and maintenance tools] of SpatialOS(/reference/13.2/index)

Search results

Was this page helpful?

Thanks for letting us know!

Thanks for your feedback

Need more help? Ask on the forums