Some network optimization stuff



  • @Altimor:

    Chivalry’s networking is incredibly wasteful. The client seems to be relied upon for everything. Even the simplest of things like grunting are replicated function calls. There are functions for starting and ending parries and MaA dodges, there’s no reason the server can’t keep track of the parry/dodge. The hit registering function’s (AttackOtherPawn) arguments take up an absolutely massive amount of space. Most of this crap is an artifact of a poor netcode setup by Epic and Torn Banner.

    This game needs to do what Quake engine descendants like Age of Chivalry do. Tell the server when I press the attack/parry/dodge/whatever buttons and let the server keep track of my parry timers and sword swings. Use lag compensation to replicate what I see on my screen for hit registry. This also gets rid of the animation/actual hit desync with high latency jitter and packet loss.



  • unreal3’s netcode is terrible, TBS didn’t do anything to try and fix it



  • As far as I know, the reason the netcode is the way it is, is due to how often tracer positions are updated with the real time strike system. I was lead to believe that issues such as what you see in team fortress 2, i.e. running behind cover and then dying after, would be more prevalent in chivalry with the amount of swing calculations going on.

    Playing in 50-75 ping servers against other 50-75 ping players is a mostly seemless experience for me, which is not something I can say for TOO many other games, including ones with lag compensation. I think the netcode could be better, but that it’s not terrible.



  • Lag compensation is terrible :x



  • I prefer what they did with Chivalry. Having no lag compensation is great, but yes there are some desyncs here and there. It’s certainly nowhere near as bad as when people could replicate a desync hit at will on a counter-attack.



  • @SlyGoat:

    Lag compensation is terrible :x

    For melee games.
    In shooting games, it’s pretty much required in tandem with server side hit detection. I shudder when I think about client side shooting games that aren’t Tf2. Especially if such client side games use hit scan registry.



  • gotta love peeker’s advantage



  • @Event:

    @Altimor:

    Chivalry’s networking is incredibly wasteful. The client seems to be relied upon for everything. Even the simplest of things like grunting are replicated function calls. There are functions for starting and ending parries and MaA dodges, there’s no reason the server can’t keep track of the parry/dodge. The hit registering function’s (AttackOtherPawn) arguments take up an absolutely massive amount of space. Most of this crap is an artifact of a poor netcode setup by Epic and Torn Banner.

    This game needs to do what Quake engine descendants like Age of Chivalry do. Tell the server when I press the attack/parry/dodge/whatever buttons and let the server keep track of my parry timers and sword swings. Use lag compensation to replicate what I see on my screen for hit registry. This also gets rid of the animation/actual hit desync with high latency jitter and packet loss.

    Yea, this is my biggest issue with Chiv.

    Client side hit detection takes precedence over parrying. If someone hits you on their screen, it will still register even though you blocked/parried it perfectly on your screen. It’s especially annoying outside of duels when you’re fighting a bunch of people who all have different timings. Some people will hit you in the windup of their combo so you have to do prediction parries, others will hit you straight through perfectly timed reaction parries.

    Sometimes you’ll get 150-300 ping players that are just completely unblockable, like what lagswitchers cheat with in peer to peer / most online console games.

    Jedi Outcast and Warband still have the best netcode - what you see is what you get, everything is verified by the server. No animation desyncs, no player warping, no lagswitching, and block/attack timings that are always consistent regardless of opponent’s ping. With melee games, I’d much play at a ping disadvantage than have to deal with inconsistency.

    Playing in 50-75 ping servers against other 50-75 ping players is a mostly seemless experience for me

    If <75ms is being targeted as the optimal experience, why even bother with client-side hit detection? <75 ms is a seamless experience in every game I’ve ever played that doesn’t use peer-to-peer with multiple players or unrestricted lag comp. If someone wants to play on an NA East server all the way from Australia with a ping disadvantage, then tough shit! Why should they get unblockable ghost swords in a melee game?



  • I agree.

    If more things were handled by the server we would have a much more stable experience. Far less ghost swings and desyncs for sure.

    At the very least it is imperative that you make projectiles server side. Its just misleading to have projectile trails that don’t actually follow anywhere near where the actual projectile is.


Log in to reply