Improbable Icon

Learning Feedback


So I have been trying to wrap my head around learning Spacial OS with Unity while also learning C#(I know It’s probably a stupid idea). First I read most of the Doc’s trying to comprehend as much as possible, then checked out all the Demos and tried to learn how and why things happen and in what order. So while completing the recipes I found that i understood the reason things happened but its when something didn’t happen that should have happened confused me. When comparing to the demos some of the code for positioning and rotation was using a different method than the starter project. Anyhow something i would really like to see instead of a guide on how to do something in more of a checklist for the type of command or trigger your implementing so you have some idea of where you should look. Something not tied to having exact code from a recipe so that you know where to look when something unexpected occurs. The flow chart for building is great maybe add one for different parts of how to do things in Spatial? (Scheme -> Template -> Trasnform -> Sender/rec) kind of thing.

Basically It hasn’t been difficult doing things as much as it has been finding what your looking for.


Hey @SlikeyTre

Building a game on SpatialOS without prior game dev and C# experience can be challenging, but should be possible. I would highly recommend focusing on your core C# skills while learning Unity and then think about incorporating SpatialOS GDK or SDK.

Here are some tips I summarised during my study.

  1. Firstly you need to think about your game and about how you would like to you use Entities, (e.g. what information would you want to store in an Entity’s Components, which worker should be in charge of which components (i.e. Server vs Client Authority)).

  2. Then you will need to implement your design in the schema files. SpatialOS tools can generate code based on these schema definitions.

  3. Then you can build out your entity templates, specifying in the ACL component (Access Control List) which workers have the read/write access to each component.

  4. You can then design your Scripts to interact with these entities.

Using Require statements, you can specify where you want these scripts to be run (e.g. requiring a writer means the script will only run on a worker with write authority over that component).

The Pirate tutorial is excellent for introducing the core concepts, but I would advise you to try to tackle a simple project from scratch using the BlankProject. Just aim for something simple with separate server and client side authoritative components.

You may be aware already, but we will shortly be releasing the Unity GDK. The GDK is an improvement on the SDK and includes many features requested by our customers and community. This will come out with all new starter projects and should be something to watch out for in the coming months.

Hopefully I answered some of your questions and if not, we are here to help so please feel free to reach out to us if you have any questions. Good luck with your project!