top | item 13169002

(no title)

mwitkow | 9 years ago

Our Platform team uses Golang extensively. We use it together with gRPC to form our microservice stack that orchestrates the SpatialOS simulations. The TL of our Platform API team did a cool talk at the Go London User Group meetup in October: https://skillsmatter.com/skillscasts/9259-a-debuggable-base-...

discuss

order

stcredzero|9 years ago

Very interesting. I have a multiplayer game I'm working on.

    http://www.emergencevector.com
The servers are written in Golang. There is a "Master Control Process" that acts as a coordinator, and a farm of worker processes that can report on their population/load and host star-system instances. (Basically, a game loop on an R-Tree.) The coordinator just uses the best available information and assigns clients to hosts. Clients join hosts in an idempotent fashion, so it doesn't make any difference if an instance currently exists or not. Each process is structured somewhat like a Erlang actor.

I might try to do a port of my game on your servers, just out of curiosity.

mwitkow|9 years 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.