Sorry if this is not the right place to ask, but am I the only one who thinks that Star Citizen’s new server meshing technology is an old hat? I believe it’s the same technology that a few highly scalable Minecraft servers have been using for years. WorldQL introduced this back in 2021, but I think the idea was around even earlier than that. GrieferGames has also put this into practice.

  • northendtrooper
    link
    fedilink
    arrow-up
    11
    ·
    1 year ago

    I feel like I can speak a little about this as I’ve been studying how CIG is implementing server meshing for the past, well a while, but in depth since the demo. For reference until they post the panel: https://youtu.be/xKWa4WoTkV4?t=4500

    Specifically timestamp of my explanation: https://youtu.be/xKWa4WoTkV4?t=5119

    What CIG’s way of dynamic server meshing is the revolutionary thing. Currently, AFAIK, all games performing server meshing is built on a static zone mapping. Whereas CIG is using dynamic server meshing zones that will actually map to the interior limits of a room of a capital ship as an example. And this can scale out to planetary objects if only one player is on that planet. If no one is on that planet then it will only run in their tool Quantum, a non rendering backend game simulation.

    Along the dynamic zone mapping is the authoritative way of transferring object containers. During the demo you can see the entity graph of the parent object (zone) and child object containers under an authoritative container (player). When a player transfers servers, you can see the movement of child objects from local to replication, and vice versa. This is a needed step as there are millions, and eventually billions of objects to be tracked of throughout the shard.

    And last, CIG is building this as a global scale since they have servers in multiple regions where AWS is hosted. From the article and demo I believe this was all done locally with no latency. I do acknowledge that CIG’s demo was local as well so we will see how the net coding is affected when it goes to the EPTU,PTU and PU.

    Me and group of nerds are trying to figure out how they are going to eliminate or minimize the latency and error correction or validating the transferring of the auth between the zones.

    • lukas@lemmy.haigner.meOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Thank you for your insightful comment!

      What I’ve got full respect for is the multi region problem. I didn’t know that Star Citizen aims to have one global world instead of American, European, Asian, etc. worlds with the ability to travel between them with a latency penalty. I’m curious how they plan to solve that without god-tier peering and an artificial minimum latency to balance combat between distant players.

      But I’m struggling to understand static and dynamic zones, maybe you can shed a light on where my understanding went downhill. Static and dynamic zones feel like an implementation detail to me. Do I care whether the replication layer(?) changes the boundaries of a zone, or discards the zone and creates a new zone with the appropriate state? No, only the process is different.

      Since static and dynamic zones feel identical to me, I don’t get why a static zone can’t be an authoritative way of transferring object containers. What prevents servers assigned to a static zone from exchanging object information with the replication layer? Nothing, I assume WorldQL also does that.

      Okay, so why use dynamic zones? Perhaps the implementation is easier than static zones? Everything else is identical to me, so nothing but the implementation difficulty feels important to me. Or is there a difference between static and dynamic zones about server assignment/scheduling? I don’t know.

      What I do know is that my understanding is flawed.

      • ursakhiin@beehaw.org
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Dynamic zones help balance the processing of a particular zone across multiple servers based on usage.

        In a static setup, an unlimited number of players could end up on the same server causing performance issues in a particular zone. While dynamic will cap the number of players on a server and split the single zone into many to preserve performance.