4 ms·
Hey! Improbable dev here. We deal with such a situation through the fact that SpatialOS dynamically scales the zones that each game engine is responsible for.
by dvanamst 9y ago
Hey! Improbable dev here.
We deal with such a situation through the fact that SpatialOS dynamically scales the zones that each game engine is responsible for. So if you have many players gathering in the same reduced area then there will actually be multiple game engines allocated to that specific zone and extra engines might even be started if the load requires it. This also works in reverse so that if your player density falls drastically and a single game engine would suffice for your entire world you will only have one running, so you always have the right amount of resources at your disposal.
Such game engines are what is referred to as workers in SpatialOS (https://spatialos.improbable.io/docs/reference/10.3/getting-started/concepts/spatialos https://spatialos.improbable.io/docs/reference/10.3/getting-...) and workers can be of many types: game engines like Unreal or Unity to manage the physics of the simulation, custom workers based on one of the language SDKs that implement AI-like functions, or any other behaviour you want to put in your world: it's entirely up to you to take this as far as you like.
- sergiotapia 9y agoThis sounds exciting for large multiplayer games. Are there any games coming out soon that you can share with us that use your technology? (Please be Destiny 2!)
- dvanamst 9y agoYes, there sure are (not Destiny 2 though ;) ). Actually Worlds Adrift (https://www.worldsadrift.com/ https://www.worldsadrift.com/) is already in Beta and Lazarus (http://www.playlazarus.com/ http://www.playlazarus.com/) is in open-development and you can start playing right now. And more are already in development.
- eximius 9y agoHow does this handle a load too large for a single server in an extremely small area? Say, the Halloween War in Eve or just a bunch of morons - say 10k people - gather within a single small valley in a game? Sure, you can subdivide it as small as you want, but that just increases the overhead by requiring the servers to communicate more. But even if the servers can figure it out, what the client sees seems like a hard problem too.
- rl3 9y agoI think you hit the nail on the head. Segmenting workloads is far from a total solution.
- troymc 9y agoI think you're worrying about a problem that most users don't care about. Improbable could cap the density if they need to, and over time they can do optimizations to increase the maximum.
- dvanamst 9y agoTo answer eximius. In your valley battle example there would be multiple game engines handling the valley. Whereas it is entirely true that you can always find a counter-example that would break a given technology, troymc is absolutely right in the fact that those counter-examples still leave an overwhelming majority of use-cases that we can handle perfectly well with our approach.
- eximius 9y agoI don't mean to disparage the technology, but I disagree with that my examples are unrealistic. I think people would love large scale battles like that.
- dvanamst 9y agoNo problem. You should definitely ask such questions. If you want to dive into the technicalities, see what people are already doing with SpatialOS and ask your own questions I really recommend having a look at the forums (https://forums.improbable.io https://forums.improbable.io). That said, my previous response was actually targeting your example as being a use-case that falls into the 'realistic' category that we want to address with SpatialOS. Again, I am not suggesting that you can and should pile-up 1000 players onto 10 square meters, but if you take care when defining your world's characteristics (SpatialOS's entity & components) you will be able to scale up your player density in your battle scenario to a level that significantly exceeds anything that you could achieve with any existing monolithic game server and for a fraction of the trouble as you do not really have to deal with any of the usual networking issues because SpatialOS takes care of that.