Announcing our plans for Unreal Engine and SpatialOS

20 January 2017

Update – we have announced a new Unreal game developer kit (GDK) that is an improved version of our SDK. Find out more here.


Developers often ask us ‘is Improbable going to bring SpatialOS and Unreal together?’ It’s a good question - after all, Epic’s Unreal engine is the platform of choice for many developers, from the largest AAA studios to the smallest indies.

Therefore, over the coming year Unreal Engine 4 will become a first-class integration for SpatialOS, for use both as a client and as a server-side worker. This process will start with an experimental SDK that we plan to make available by the end of March 2017.

demo of Unreal rendering in SpatialOS - Glacier

The Unreal engine and the games of the future

Over Epic Games’ long history in game development, it is fair to say that its Unreal engine has been one of the most widely-licensed videogame engines in the world. That reflects Unreal’s unique strengths, which you can see in games as varied as the Bioshock series, Street Fighter V and XCOM.

SpatialOS integration will make Unreal an ideal engine choice for the next generation too - for building the sort of persistent, emergent, gigantic games we’ve been promised all our lives. We’re proud to be integrating SpatialOS with such well-respected tech - and excited to see what you’re all going to do with it.

With the support and advice of the Epic team, we’ve got a pretty robust plan of how we’re going to integrate it. Our game engine integration team will be keeping you updated on our progress. We’ve covered many of the more important questions below, but we’ll also be giving regular updates on our progress from now on.

Here’s a short video showing our prototype Unreal integration with SpatialOS - remember, this is very early!

Keeping it Unreal

We plan to use Unreal’s cross-compilation tools to create Linux server binaries, which SpatialOS deployments can in turn run to simulate the physics, AI, and everything else in your world. Unreal will be able to run as both a server worker and as a client.

You will able to link our initial C++ code into blueprints with ease - our in-house Improbable teams have done this before. In the longer term, we’re planning to allow you to generate blueprint events and functions “out-of-the-box”, amongst many other things. Our goal is to make sure you don’t have to build a custom version of the engine to use SpatialOS.

It’s worth noting that, at this stage, we do not intend to integrate Unreal’s existing networking tech. This is because, as good as it is, it revolves around the idea of a single dedicated server, rather than a swarm of workers like SpatialOS.

Early experiments running Unreal as a SpatialOS client

However, we fully intend to make the integration open source when where we're ready from a technical standpoint. Currently we still need to decouple it from the rest of our repositories. If you want to contribute to this process, please let us know in this forum thread.

Simply put - our goal is to build a first-class integration of SpatialOS into Unreal, suitable for building and shipping games. The first milestone will be the experimental SDK which, as stated earlier, we aim to ship by the end of March 2017. This will let you use Unreal as a client, and, experimentally, as a server worker within SpatialOS.

We want you to help us and other members of the SpatialOS community to make this the success we know it will be. You can do this by simply telling us about your project in the forum discussion thread for this blog post or letting us know how you’d like to be using Unreal. This will help shape the roadmap and the kinds of features we will look to add. When the experimental SDK is released, we’ll also be collecting extensive amounts of feedback. More on this soon!

And if you’ve not tried SpatialOS yet, you can try it today at https://spatialos.improbable.io/get-spatialos.