Comment by Animats
5 years ago
Hadean is a general-purpose distributed object system. People have tried to use those for games. EvE Aether Wars used that. They got 10K players in the same space. But it's all spaceships in a big space, not interacting much. Xsolla’s Game Carnival was only 500 users.
Spatial OS is more geographical. They have regions, and dynamic boundaries between them. If more players are in a region, the regions get smaller. Inter-region interactions are possible but slower.
Second Life has fixed-sized regions. Each region talks to its neighbors on four sides. The user's viewer talks to all the regions within visual range of the viewpoint. Assets are stored on AWS front-ended by Akamai. The servers are mostly single-thread per region, because the design is old. Crossing regions works most of the time, and since moving to AWS with faster networking, the delay is usually under 0.5 second. The whole system is sluggish but works reasonably well. (I'm writing a new client for it in safe Rust, using Vulkan and multiple threads. It's going well. The existing C++ client gets CPU bound on the main thread and can't keep the GPU busy.)
Disclaimer: I work at Hadean, thought I'd clarify a couple of things
Yes, the Hadean Platform is a general distributed compute platform. But 'EVE: Aether Wars' used Aether Engine, our spatial simulation engine built on top of the platform (and works similarly to how you describe Spatial OS). Some updated numbers: more recently we've hit 2 million entities with a few hundred CCU.
In terms of cross-cell ('cell' being our region) interactions, entities moving between cells has been a single tick (at 15-30Hz depending on sim) in all simulations we've built so far - 'EVE: Aether Wars' did torpedo and player transitions, as well as torpedo target tracking across cells and torpedo-ship collisions. We also have a demo of cross-cell PhysX - this has some pretty strict requirements on inter-cell interaction latency.
Out of curiosity, what would you see as a litmus test for 'simulation with lots of cross-region interactivity'?
"CCU"? ConCurrent Users?
"Let us all join hands around the world".
No, that's too hard. Crowd scenes, basically. How big a crowd of players, reasonably close to each other although not in physical contact. Clubs, ground battles, etc.
Yep, CCU = concurrent users.
We look at CCU alongside number of entities in the sim, since they're both axes of interest for customers - 2m+ entity scale is tricky, netcode at 10k+ player scale is tricky, we target both.
That said, I've found it interesting that people _generally_ want one or the other. Game companies like the idea of loads of entities/logic ('high fidelity'), but that ramps up cost per user - ultimately they just want more people in-game for cheaper. Whereas companies willing to put the money behind resources for high fidelity simulations, generally 'only' want a few hundred concurrent users.
Thanks for the thoughts on the scenario!
1 reply →