Hacker News new | ask | show | jobs
by mwitkow 3474 days ago
That's interesting, we have a slightly related architecture. SpatialOS Runtime, itself distributed across many machines, acts as your "Master Control Process". It orchestrates Workers, both managed (running in the cloud), and external (remotely connected game clients), to perform the co-simulation of the world.

The key feature of the stack is that you can integrate various Workers to act together, leveraging existing game engines in multiple languages. Checkout https://spatialos.improbable.io/docs/reference/9.0-alpha/wor... if you're interested in trying to port your stuff onto our stack.

1 comments

How long before you let people write workers in Golang?

My equivalent to SpatialOS is not only my MCP (Tron reference, of course) but also a bit in each worker process. What you call Workers are what I call Instances. We both have pretty much the same notion of Entity. However, I don't have External Workers. Instead, I have a "Pilot" object for every "Ship" (Ship == Entity) and one kind of Pilot represents the game Client. The difference makes sense, as you have a notion of Workers sharing data, so your Clients are external to an Entity.

We have a C Worker API (and in fact the C++, C# and Java worker APIs are built on top of it), so you can write workers in any language that can call C functions. It is a non-trivial amount of work, though -- see https://spatialos.improbable.io/docs/reference/9.0-alpha/wor... to see what one of these APIs look like.
For the moment we don't have the SDK supporting Go but we are definitely taking input on such topics. You should definitely post this request on the forum as there will probably be other people wanting the same thing! Will be happy to discuss it further there.

The idea of a Go SDK has already crossed some minds at Improbable for certain.