Live data from Hacker News

Improbable announces SpatialOS Game Developer alpha

improbable.io

21–30 of 33 posts

Re: Improbable announces SpatialOS Game Developer alpha

#21
post #9

It looks like they use GoLang on the server.

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-...

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.

Re: Improbable announces SpatialOS Game Developer alpha

#22

Hey, I just made a deployment with SpatialOS. This is one of the starter projects. Go to this google doc and click the links. Please leave a comment on the cell as the links are one-time use. https://docs.google.com/spreadsheets/d/1Q185RKFhjspin4zo0PBH... Come play!

This guide explains how to build and deploy this game we created as a tutorial: https://spatialos.improbable.io/docs/reference/9.0-alpha/tut...

To play the game, just follow the link to the spreadsheet (parent comment) -- no sign-up or tutorial required! :)

Re: Improbable announces SpatialOS Game Developer alpha

#24
post #9

Earlier quoted context omitted.

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-...

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.…

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.

Re: Improbable announces SpatialOS Game Developer alpha

#25
post #8

How is this different from what SecondLife/LindenLabs was doing a decade ago?

(disclaimer: I'm a Cofounder & CTO of Improbable - and massive fan of Second Life)

You're right to see that there are some inspirations from worlds like Second Life with our platform - it spatially distributed the simulation of the world through multiple servers.

Will elaborate on this in a blog post a some point, but some main differences:

-SL is a great example of a product somebody could make on top of SpatialOS: we're less of a 'social world environment', and more of an abstract spatial computation platform. We don't care what game engine is used, what the view of the world is, etc.

-While really impressive for its time, SL's architecture didn't re-distribute its load across machines based upon player & object density - each server was statically allocated a part of the world. This meant concurrent players per 'Sim' were limited to ~50. We can move these boundaries on the fly to deal with higher density. Here is an example (we really need a better one, this doesn't do it justice!) https://www.youtube.com/watch?v=XXhxI4dKU_E&t=1s

-Although a player could cross server boundaries, it was never very smooth, and people in SL would deliberately limit their playspaces to a single server. To create a proper seamless world you have to deal with multiple servers simulating the same physical space, and reconciling with each other. Here is an example of us doing this with Unity3D and physics https://www.youtube.com/watch?v=ysB6bi7QUbw

-Our approach allows for arbitrary kinds of process to be used as the server worker, including existing game engines like Unity3D rather than a monolithic server. https://spatialos.improbable.io/community/create-a-custom-fl.... We currently have SDKs for C++, C#, Java, rather than the slightly esotetic Linden Scripting Language (https://en.wikipedia.org/wiki/Linden_Scripting_Language) SL had (incidentally, the first computer language I ever learned!)

Re: Improbable announces SpatialOS Game Developer alpha

#26
post #24

Earlier quoted context omitted.

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.…

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…

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.

Re: Improbable announces SpatialOS Game Developer alpha

#27
post #24

Earlier quoted context omitted.

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…

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 C…

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.

Re: Improbable announces SpatialOS Game Developer alpha

#28
post #24

Earlier quoted context omitted.

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…

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 C…

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.

Re: Improbable announces SpatialOS Game Developer alpha

#29
post #8

How is this different from what SecondLife/LindenLabs was doing a decade ago?

(disclaimer: I'm a Cofounder & CTO of Improbable - and massive fan of Second Life) You're right to see that there are some inspirations from worlds like Second Life with our platform - it spatially distributed the simulation of the world through multiple servers. Will elaborate on this in a blog post a some point, but some main differences: -SL is a great example of a product somebody could make on top of SpatialOS:…

I'm curious how SpatialOS compares to Second Life's successors -- Sansar and High Fidelity. I gather that they also allocate processing in a more targeted way, to respond to demand.

P.S. I'm also a huge fan of SL, and look forward to trying out whatever similar world emerges using SpatialOS.

Re: Improbable announces SpatialOS Game Developer alpha

#30

why would I entrust the future of my company or game project to a closed source server and SDK? I've seen several MMO middleware companies announce revolutionary new technology with outdated closed source business models only to fold couple of years layer. Badumna Network suite was the last well funded one I remember closed a while back. And it started by Australian academics with decent technology.

There is no open source alternative yet
Post reply on HN