Improbable Icon

Support for SDK beside Unity



Hello SpatialOS,

Clearly Unity is the most important engine to support solely based on its success. Yet, it is not the only one, especially on the web. For example Mozilla recently released Aframe (based on threejs) which is specialized for WebVR content. Unfortunately despite having glTF support, physics support (via Cannon.js), multi-player supports (via firebase) and yet no persistent worlds. SpatialOS could properly fill that gap.

What kind of efforts would be required?

Unreal Engine Support?

I know that besides Unity there is now also Unreal Engine integration; I am not aware of any (planned) support for other platforms


Hi utopiah,

We are currently working on Unreal. The early access date for this is still not confirmed as we are currently focusing on improving the Unity workflow.

We also have language integrations for C#, C++ and Java. These are currently experimental but you can integrate your own engines if they are based on those languages. See these doc pages for more details for C++, Java and C# for more details. If you start using the language SDKs please let me know as these are really new and we want to get as much feedback as possible.

Internally we are currently experimenting with making an SDK for Javascript. This is still very early stages but the hope here is when we have this we can start looking at more Javascript based engines (like the ones you mention). Stay tuned as we will be talking more about this over the coming months.

JavaScript / Typescript Support for Spatial OS

Great, if you need any help to experiment with Javascript to support Aframe or others please feel free to ask me here or privately.

Until then maybe a websocket facade of the API available to any language could do the trick (even if yes indeed potentially way slower).


The UE4 community has grown exponentially since the engine went free in 2015. The size of Unity’s installed user base is due primarily, it appears, to the simple fact that it has been available to lower capitalized independent developers for a long time – it was, more or less, the only game in town… A huge number of independent commercial games are being developed today with UE4 and many Unity developers are moving to UE4.

I understand that it is prudent to finalize a product line, in this case the Unity SDK, but I do urge that all available resources be devoted to a UE4 SDK as soon as possible.


It’s also still a lot easier to get a quick prototype done in Unity than it is in UE4. In addition it has the pseudo-javascript code support that enables more people with different backgrounds to work with it. Not to mention that unless you go real deep C# is just not as much of a as C++ can be.
Both have different areas that they can and have to improve on. Recently UE4 has been gaining on Unity but we’ll have to see what Unity is going to do as a counter-strategy. Either way in the end it’s the users/developers who win.


I would contend that a prototype can be created in UE4 with blueprints much faster than one could be created in C# and anyone with any experience in any sort of programming can pick up blueprinting in a matter of hours. The single redeeming aspect of C++ is that it is faster than C#, but that is a game changing difference.


Blueprints in UE4 are still severely limited, a lot of the things accessible from code are not accessible from there. The Networking Blueprints API for example is very very basic. But as I said, yes UE4 is catching up and Unity will have to do something.
And in many cases the performance overhead that C# has doesn’t matter all that much because Game Engines are used for all kinds of things nowadays and in a lot of them that doesn’t change much. And with Unitys IL2CPP we’ll have to see how much all that even matters at all in the long run. If we want to hyper optimize everything we might as well all work with assembler code.
The biggest down-sides I personally see with Unity is that it’s not free with source access as UE4 is and that it uses a really outdated Mono version, which also restricts libraries you can load in to everything before .net 4.0.


I believe your characterization of the limits of UE4 blueprints as “severe” to be misleading and inaccurate. While blueprints do indeed lack direct access to certain engine features, a fully functional multiplayer game can be created with UE4 entirely in blueprints.

Our game, for example, is 99% blueprints currently.

Unreal is likewise developing a feature to convert blueprints to c++ that should see the light of day this year.

Having first investigated Unity, I can say without reservation that UE4 has a by far much easier learning curve.


I would like to put this out there. The BP to C++ is out but it is a experimental feature at the moment.

That said I personally would like to see more BP support for Unreal :slight_smile:


It is a somewhat late follow-up but the just released 10.3.0 contains the first experimental iteration of our Javascript SDK. Enjoy!


I just read about SpatialOS on a thread in r/gamedev and it looks pretty amazing. I’d just like to make a small squeak for you fine people to add Lua support as there are some great Lua game engines out there (yup I use one of them) and most of them sorely lack multiplayer support.

Anyway, keep up the fantastic work! :slight_smile:


Are there any documents for the experimental javascript sdk? a sample project even?


Hello @6418849159184384 and @AntixDevelopment !

Very happy to see you around, joining our developer community! Do not hesitate to bombard us with any further questions you might have as well. :slightly_smiling_face:

As for your initial questions:

  • @6418849159184384 - the experimental Javascript SDK was briefly introduced in the past but was very quickly deprecated because of our focus on other topics and the fact that it did not pick up with many users.

  • @AntixDevelopment - we do not provide a LUA integration of our own, and are not planning on doing so in the foreseeable future. However we do provide, since the 13.1 release, a C API that should be easily bindable from LUA. As a matter of fact I do know of some people who have already done it (not us - so we can’t provide an example project).

Kind regards,


@dvanamst when I search the latest documentation I get nothing any link I could follow to start?


Hello @utopiah,

As explained in my message above:

Javascript support is no longer available since SpatialOS release 12.0 and above. The release notes for SpatialOS 12.0 also contain the deprecation message.

Kind regards,