I want to address one of the questions we are asked frequently, and which we’re very happy to be able to answer.
Over the coming year Unreal Engine 4 will become a first-class integration for SpatialOS for use as both a client and a server-side worker, starting with an experimental SDK available by the end of March 2017.
We would like to clarify our position on this because we recognise that Unreal is the engine of choice for many developers, from AAA studios to indies.
Over Epic’s long history in game development, it’s fair to say that Unreal has been one of the most widely-licensed videogame engines. That reflects Unreal’s unique strengths, which have led it to be used for games as varied as the Bioshock series, Street Fighter V and XCOM.
SpatialOS integration should make Unreal an ideal engine choice for the next generation too - for 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!
Our very early experiments with running Unreal as a client
With the support and advice of the Epic team, we’ve got a pretty robust plan of how we’re going to integrate it. Jared Hefty (@jared) , tech lead on our game engine integration team, will be keeping you updated about 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.
A short video showing Unreal integration with SpatialOS
Will Unreal be able to run as a server worker, as well as a client?
That is our plan, yes! We’re planning to use Unreal’s cross-compilation tools to create Linux server binaries that SpatialOS deployments can run to simulate the physics, AI, and everything else in your world.
Will it support blueprints?
You will able to link our initial C++ code into blueprints fairly easily (we’ve done it before). Generating blueprint events & functions out-of-the-box is part of our longer term plans.
Will SpatialOS require modifying the engine?
Our goal is to make sure you don’t have to build a custom version of the engine to use SpatialOS.
Will we integrate with Unreal’s networking?
Our investigations have found it not to be the best approach - the Unreal networking is around the idea of a single dedicated server, rather than a swarm of workers like SpatialOS.
Will the integration be open source?
We fully intend to open source the integration when we’re ready from a technical standpoint - but we currently need to decouple it from the rest of our repos. Please let us know on this thread if you would be interested in contributing!
When will I be able to play with something?
Our goal is to build a first-class integration of SpatialOS into Unreal, suitable for building and shipping production games.
The first milestone will be our experimental SDK, which 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.
This will be the first step towards our end goal of a first-class, idiomatic integration into Unreal and its workflows.
How can I help?
Tell us about your project in this thread, and how you’d like to be using Unreal. This will help us shape the roadmap and the kinds of features we will look to add. When the experimental SDK is released, we’ll be collecting extensive amounts of feedback.
Finally, if you’d be interesting in contributing to the project directly, this will help our efforts to prioritise open sourcing of the integration.