Back to search

Another question about server meshing, (which is potentially dynamic), with servers managing small zones, generally on planets: What about more global events, how are they managed, are the servers managing them? I'm referring in particular to cloud movement, or something that hasn't been mentioned for a long time : the movement of stars?

TL;DRGame servers handle zones and replicants handle networking, while universe-wide features like weather, voice, groups, persistence and missions are being moved into shared services; the answer doesn't directly address star or cloud movement.

Cloud Imperium

Yeah. Actually, on a technical level, we have game servers. These are the others that are part of the Mesh, the Server Mesh. We also have Replicants, which take care of networking. So at the moment in 4.0, we have a Replicant and then several Game servers that distribute the zones to each other. So the system is able to assign a server to a zone.

So we can make sure that wherever there are players, there's good performance, right? The further we get into implementing dynamic mesh, the more responsive it's going to be. So folks, if everyone goes off in an 890 jump, well, we're going to give the 890 jump a server. Okay, it's a bit silly, but that's it. That's what's cool, you know.

Now, there are other levels to this. There's what we call Star Services, which are game servers that aren't assigned to a shard, but take care of the overall universe. They run the game server, it's the same fundamental core of software, but they're only there to respond to calls for remote procedures to coordinate several shards together. So things like Dynamic Weather, for example, are something that can be put into a service and used by every shard.

Exactly. Everything that's VOIP is Voice Servers, everything that's social is the group manager and so on. So there are services like that. The entity graph, which handles all the game's persistence, are also services that are partly in the game server, but they're deployed as services that serve everything.

One of the big elements we're currently working on for 4.0, which is a hot feature, is the mission system. So, for example, the mission system in 3.23 or even 3.24, when you accept a mission or a contract, it creates a mission entity on the server. In fact, it's located at 0.0 of the universe! It's an invisible entity, obviously, that persists and follows you, but it's there. TODAY, you can't have that anymore! Because now 0,0 it's another server!

So now we're in the process of moving all mission systems, but into services that will be able to serve all shards. We're talking about Contract Broker, for example, which takes care of all your contracts that are available in your MobiGlass. There's also the Mission Factory, which takes care of creating missions in the game and coordinating the game servers, for example: if I have a delivery mission, we'll create an entity at the first location, and another entity at the drop location, and that'll make it possible to follow up.

The marker system has also been released. For example, something as simple as a party marker in another system... It's really hard to do in the old model. In the old model, you just put in a marker, but now with the new architecture, you have to have a service dedicated to that.

So there you have it, it's all about extracting what's in the current game server (PU) into services that will enable us to manage this more widely.

CitizenCon›Interview of Benoît Beauséjour (CitCon 2954)·
Published on this date.20 Oct 2024