Search Unity

Help Wanted Netcode and horde of Zombies

Discussion in 'DOTS NetCode' started by YuriyVotintsev, Jun 11, 2020.

  1. YuriyVotintsev

    YuriyVotintsev

    Joined:
    Jun 11, 2013
    Posts:
    46
    I am using new netcode for my 3d shooter. And now i have a problem with a horde of zombies that need to be syced between players. With straightforward way using ghosts traffic becomes huge even with 50 zombies (position, rotation, etc), but I want much more (at least 1000 zombies). As far as i know this is possible if all gameplay is deterministic and send only player input, but Netcode don't support it at now. What can i do to implement determinism in current state of Netcode and DOTS? Or maybe there is some other way to implement hordes of zombies?
     
  2. WAYN_Games

    WAYN_Games

    Joined:
    Mar 16, 2019
    Posts:
    726
    I have no experience in multi player games so these and just what I would try :


    Can you limit the number of data you are synching for you zombies ? maybe only porived the direction instead of position and rotation. then make the zombie move and face the direction received by the server. Additionally make a delta compression method that ignore directional change under a certain amount (this would prevent sending data every time the player move a little and give the zombies a "slow" reaction to change that could fit with the "dumbness" they are generally associated with)


    Implement a method that cycle through the zombies to synch, so that you synch only the zombies closest to the player (given the size of the horde, little position difference in some zombies positions should not be a big issue).


    Or


    Give up on server authoring for zombies...


    Your question is interesting and difficult to solve in my opinion, essentially I see it as if you were trying to make an MMO with 1000 of player in the same spot (each zombie is a player where input is simulated by the server) which I don't think I have seen anywhere (except maybe for the eve online demo of the aether engine, but they focused on server compute power, not bandwidth reduction)
     
unityunity