Back to search

With the arrival of server meshing, potentially dynamic, with servers that would handle rather small zones, potentially on planets, what about events that are much more global? How are they run, if it isn't the servers running them? I'm thinking of clouds moving, and potentially something that hasn't been talked about in a long time, which is movement around the stars [orbits]: is that still on the table, is it technically very complicated, for example?asked by AlexWill

TL;DRGlobal features like weather, voice, social and persistence run as services serving all shards, and the mission system is being moved into such services for 4.0; the question about orbits isn't addressed.

Benoit BeausejourChief Technology Officer

Yes, that's cool. On the technical side, we have game servers. They're the ones that are part of the mesh, the server mesh. We have the replicants that handle networking. Right now, for example, in 4.0, we have one replicant and several game servers that share out the zones. The system is able to assign a server to a zone. That lets us make sure that wherever there are players, there's good performance. The further we go into dynamic, the more reactive it'll be. So if, for example, everyone goes into an 890 Jump, we'll give the 890 Jump a server. It's a bit crazy, but that's what's cool. Now, there are other levels to this. There's what we call the Star Services, which are actually game services that aren't assigned to a shard but that take care of the global universe. They run the game server; it's the same fundamental software core. However, they're only there to respond to remote procedure calls so they can coordinate several shards together. Things like dynamic weather, for example, are something we can completely put in a service that can serve all the shards. Everything VoIP is voice servers. Everything social, group management, etc., are services like that. The entity graph, which handles all of the game's persistence, is also services that are part of the game server, but they're deployed as services that serve everything. One of the big elements we're working on right now for 4.0, which is the hot item, is the mission system. So, for example, the mission system in 3.23, how does it work? When you accept a mission or a contract, it creates a mission entity on the server, which is actually at 0,0 of the universe. It's an invisible entity that persists and follows you. But it's there. But now, today, you can't have that anymore. 0,0 is another server. So we're in the process — we've already moved it all — of moving the whole mission system into services that will be able to serve all the shards. So we're talking about the Contract Broker, which handles the contracts available in your mobiGlas, the Mission Factory, which handles creating the missions in the game, so which will coordinate the game servers to know, for example, if I have a delivery mission, we create an entity at the location, the marker is also extracted. For example, something as simple as a party marker in another system is super hard to do in the old model. In the old model, we'd just place a marker. Now we need a service for it. So it's all this extraction of what's in the game server into services that will let us manage it at a larger scale.