Improbable Icon

Unreal support for SpatialOS

general
unreal

#1

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

FAQ

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.


#2

#3

Hi, I’m oscarmolinadev. Half a year ago I’m in the process of changing my specialty to videogames, specifically Unreal Engine.

I’ve been planning a prototype step by step for a few months. I have a long journey to travel yet, years… I discovered SpatialOS a few weeks ago and I want to value what can be done.

My intention is to make a combat simulator and the key points is AI and very big world but with the current engine is quite difficult to get.

Current technology without modifying the engine:

As you can see there is no open world, the maps that unreal engine can support are 35-40km2 and streaming levels for multiplayer are not supported, very small for a simulator. Infantry and land vehicles could be fine but air vehicles would be unthinkable.

What I think can be done with SpatialOS?

If I think correctly I could make an open world with persistent AI (make wars) and a really big map that can fly with an airplane or helicopter, also, the players can affect their bases and fight against them. Server physics, environment, etc are a plus :slight_smile:

Also for mi experiencie in the forums of Unreal Engine a lot of people want big worlds for MMO without instantiate everything.

Sorry for my English isn’t my native language.

oscarmolinadev.


#4

Excellent news!

Our project is, of course, an MMORPG. We, however, are aiming our game at a niche audience and will attempt to achieve a higher degree of simulation in player activities than is commonly attempted.

At present, we have a functioning (barebones) prototype client and server. Our data transactions are handled by a separate Java socket server but for security purposes all of these transactions require dedicated server authority.

We also have available a separate C# chat server and social system, but have not yet integrated the two.

In fact, all of our systems – inventory, crafting, combat, & etc --are fully dependent upon the Unreal Dedicated Server.

As is well known, the UE4 dedicated server does not scale, thus our interest in SpatialOS.

We would prefer that a possible move to SpatialOS be as painless as possible.

We make extensive use of UE4’s dedicated server replication.

We would rather not start over from the ground up, but if transition to SpatialOS would provide the scalability that we need and the cost was not prohibitive from an indie perspective, then we would consider a full re-write of our code, but would prefer a solution that does not require this.


#5

Fantastic News!

I’ve been playing with SpatialOS since August of last year always with the intent to incorporate it into Unreal Engine 4. Our team is in the early prototype phase of a FPSRPG that we fully intend to convert to an MMOFPSRPG (Thats a mouth full for sure, lol :slight_smile: ). We want to use Spatial to give our a world that living breathing feeling where our players actions have meaning and where the consequences of players action can be left upon the world forever. Kill off too many critters too quickly and its throws off the ecosystem, etc. Also, we never want our players characters to disappear. We feel that while you are logged off, your character should still be actively engaged with the world there by furthering our desire for a world that feels rich and alive.

As far as how we intend to use UE4, we are looking for the ability to cluster/scale the dedicated server so that our players are given the opportunity to all play in a single massive space without the need for “shards”, etc. We also want to ability to inject “world events” or “ecosystem balancing” into a live running game/simulation and watch the emergent game play unfold.

Lastly, I would love to help out in any way that I can to help with the open source conversion! You have built an amazing product and it should be shared with as many people as posible IMHO :wink:


#6

I am building a MMORPG and a private physics simulated server worker will be great for me. Now I am using the unreal dedicated server and all the networking layer of the engine. I will continue my development until the experimental SDK is ready, so I can see what I can do with SpatialOS.


#7

Hello! This is really exciting, I must say.
I didn’t want to be rude so I didn’t post about it, but… I will touch SpatialOS only when we have a UE4 API.

By the way, I have 3 years of experience developing self-contained plugins for UE4 for a bunch of studios as contractor.
I always focus on building systems that never require custom builds of the base engine, if you guys are in need of help with this, please let me know; I can help developing this port if needed, I know a lot about UE4’s Plugin API.

Here are some of the open plugin projects I have built for Unreal on Unreal Marketplace:
https://www.unrealengine.com/marketplace/profile/Bruno%20Xavier%20Leite


#8

Hey @rob - Got a question about Spatial OS and plugins.

I am guessing that Spatial OS is using a micro service architecture. If so how will we be able to interface our plugins with SpatialOS? Just curious as I make heavy use of some plugins for extending the Unreal Editor.


#9

Is the experimental UE4 SDK still on track for March?


#10

As with any software project that involves cross functional teams to pull it together: it’s hard to say.
We’re actively working hard on it: we’re solving a bunch of strange and wonderful problems and we’ll be documenting the lot of them.
Keep the faith!
:support:


#11

As others I’m am interested in prototyping a MMO. It would feature persistent and emergent AI.
Unreal would be my engine of choice, I would be very much interested in working with the integration and could possibly assist with any decoupling.


#12

While I realize that it is just barely March, could we get an update on your progress with the UE4 SDK and perhaps a new projection on the experimental release?


#13

@Rhynedahll in v10.1 Improbable released experimental support for UE (https://spatialos.improbable.io/docs/reference/10.1/experimental/unreal/introduction). Or are you looking for something else?


#14

Thanks, that apparently was it. I must have missed the announcement.

I’ll start working on it today. :slight_smile:


#15

Any ETA on UE 4.15 integration ? I’m building up my client server code and want to base it on SpatialOS but I need UE 4.15 for its generic HOTUS support.


#16

Ditto on the query concerning 4.15.


#17

We’re working on official 4.15 support at the moment. Although I don’t have a time frame yet, you can expect it before or as part of the 10.3 SDK release :slight_smile:


#18

Hey @christopher.barnhous / @Rhynedahll,

The 10.3.0 release that has just come out does indeed, as @morrison promised, contain support for 4.15.1 (which is now actually the minimal supported version).