Server authoritative gameplay is terrible and needs to go

I believe that first and foremost, a game should feel good to play.

Darktide has an issue where all player inputs (except camera movement) are tied to latency and can be denied by the server/host at any point.

ALL PLAYER INPUTS

except camera movement.

The issue, highlighted in the clip above, is frustrating and a massive annoyance for me (and others). I would much prefer a game that feels good to play, but the choice to handle player controls through the server is a terrible one. I struggle to express how very frustrated I am with the occasional game feel because of it.

There are benefits to server-side control, such as preventing cheating and ensuring synchronized gameplay. I understand there’s reason for it to be this way, but I cannot ever think it makes for a game that feels good to play. I value controls and game feel far too much to be happy with this current system.

With the current system, players occasionally or often experience issues where the server limits the player’s actions and game feel. Examples include:

  • Inputs being denied, leading to delayed or unresponsive controls
  • Choppy animations
  • Laggy attack speeds
  • Bad hit registration
  • Weapon swaps not working
  • Botched heavy attack inputs
  • Block cancels not working
  • Dodges failing to work in times when needed
  • Abilities being canceled, but the voice lines still play
  • The player interaction progress bar being deceptive and leading to botched revives or medstation uses
  • Giving items to other players being unreasonably awkward and inconvenient
  • Stimms struggling to apply to other players
  • The simple act of moving (around/between enemies) being unreliable or choppy/disorienting.

In my opinion, for the game to feel its best and allow everyone to enjoy it, the client should dictate the player’s experience. If the client says they shot or dodged, then they did—no questions from the host, ever.

This would allow players from different continents to enjoy a smooth experience together, something that is lacking in Darktide right now. Currently, playing with others across great distances will guarantee that at least someone will have a far worse game experience than they otherwise would playing on their own region servers. Other co-op games, like Monster Hunter and Windblown, don’t have these issues, and they feel great to play without the server interrupting the player’s inputs—provided there’s a stable connection. Fatshark was close to this perfection with VT2, but in VT2, defensive mechanics are still tied to latency, which is better than Darktide but still not ideal.

The benefits of this system would be clear: everyone would experience a better game feel. Removing the dedicated server entirely would also give modders the freedom to create their own versions of Darktide, adding different difficulties and balancing. Hardcore players wouldn’t be limited to just Havoc or Maelstroms. This could even benefit Fatshark, like how VT2’s Big Balance Beta was based on a community-made balance mod.

I know this change is unrealistic—Fatshark isn’t likely to overhaul the game’s systems and/or the back-end. Even if they could, I doubt they’d be able to ensure stable connections between players. VT2 still has connectivity issues, especially when Steam or Fatshark’s servers have hiccups, and sometimes players can’t connect to each other for no clear reason.

Other games don’t have these problems, but Darktide does.

17 Likes

Agree fully and I can’t think of a real reason we can’t host missions and invite people and/or list them in a lobby ALONGSIDE the official, dedicated servers. Of course, it’d open up the possibility for those lobbies to be modded, but DRG solved that pretty elegantly by forcing modded lobbies to have an indicator.

I don’t think I’m far off in saying that when dedicated servers were requested, the above described system was what most people had in mind. I don’t think anyone wanted to lose the ability to host locally. But what can you do, the monkey paw curled

10 Likes

not even necessarily plenty games emulate team lobbies while totally being server sided

1 Like

Even if everyone had client side interactions with NPCs - you couldn’t have a situation where the player gets netted on everyone’s screen, then miraculously un-netted 50ms later because that players computer disagrees. Only one PC can decide what NPCs do.

re: local hosting (appreciate upon reading again that this is a segue) ~ if you’re hosting the “server” on your computer - then it’s still going to be your server that decides what happens?

If a player connected to you has a bad connection; they can still throw a knife and be trapped. Their side might confirm a kill to your server - trapper dies. But your ‘server’ side has still told them they’ve been netted.

If you’re just asking to host locally because your pc / internet is better than the AWS offering then so be it. I can understand that. But I’d only want private games there as I think the system as it is, where players don’t get to pull the plug on you in a strop, actually needs to stay.

1 Like

No, actually, this is very possible, just not commonly implemented.

1 Like

I didn’t mean impossible; I meant “terrible”.

1 Like

Why would it be terrible? I honestly don’t care if you see me get hit by a trapper’s net if I didn’t get hit by it on my screen, and I don’t care that it looks wonky to you if I magically get out of it and teleport away. I would rather have you see me teleport than for me to teleport into a trapper’s net.

3 Likes

So, fun fact, multiplayer shooters these days and for some time have basically all adopted client-side, server authenticated hit detection, so that 99.9% of the time, the shooting player’s screen is always respected regardless of what anyone else sees (server included) unless a certain ping threshold is crossed. Some games don’t have this ping threshold and some truly wacky stuff can happen like trades that are 3 seconds removed from one another.

1 Like

So every decision gets second guessed?

Whoops - you went down to a crusher overhead.
No you didn’t - up you pop.

Whoops a dog got you. Oh, no it didn’t. Oh, now it’s got me because I didn’t respond in that second while your computer was negotiating with the server.

All through the game? Every game? Bit like a football VAR decision on every single tackle.

I think it’d be far worse to be honest.

1 Like

That’s just to decide if damage is applied to the other player. We’ve all had games with that in, where we die round the corner to an opponent. That’s that, but it isn’t used to decide NPC movement.

1 Like

Decisions aren’t getting second guessed on your own screen in relation to you. You’d see wonky stuff happen to everyone else, and they’d see wonky stuff happen to you, but everything would behave as expected to you.

By the way, this is exactly how it works in Monster Hunter. You’ll see people walk through stuff that should have hit them all the time based on your perspective. It works perfectly fine.

3 Likes

No it wouldn’t! Because as I’ve said, a dog you think has someone else is suddenly not attached to them. Don’t forget - it’s not just client side HIT detection, the OP wants client side DODGE detection, client side blocking, client side everything. It’s not as simple as saying this enemy “died” so undo everything after.

Anyway. Mine is just one opinion. I’ll shush now and let the thread continue.

The dog would still have to properly lunge on you to hit you, and if you shot them in the head while they were not really on the other player, the headshot would still register and they’d still die.

In fact, only kills would still be delayed, but the hit detection itself wouldn’t be.

It’s a much better system. Again, much like competitive games, some kind of threshold could be implemented to avoid the most wonky situations, but I’d say it could be pretty generous, like 500ms or so.

3 Likes

A good implementation of rollback would help a lot. 4 players is not that much for rollback netcode to handle, and we’ve seen it work with 6 players with GGST 3v3.

Server-side dictation would be easier to tolerate if the netcode were just good. Use GGPO or GTFO.

Could also do something like Path of Exile’s catch-up; if the client and server start to desync, the server will still calculate things in the background, and catch up when the client is done dying. This helps a lot with keeping the illusion of constant gameplay when it comes to lag spikes or latencies that get a little high.

A side effect would be that everything would run faster while the client is catching up, but Darktide is already a fast game that nukes you for no reason sometimes, so it would be a fine tradeoff IMO.

1 Like

I’m not sure what your concern is, when the “second guessing” in this suggested system would basically just reverse who has the authority over game interactions. Dodging an attack and getting hit a moment later is just the reverse but in that scenario you are the only person to experience that issue while other players will just perceive you as never having dodged to begin with.

No, I think you don’t understand what I’m suggesting with this thread. I’m suggesting that the clients get total authority over their gameplay. So situations like

don’t happen in the first place. That player with a bad connection doesn’t get netted at all if they dodged or killed the trapper before the net gets them, to you it may just appear as if they phased through the net instead. This is how Monster Hunter handles things and it’s really not that bizarre once you see it in action. Unimmersive? Yea probably, but so is having my inputs disappearing into the void and I think that’s far worse.

3 Likes

Yeah, this is the more common situation. Any interaction with a player that isn’t you has to first be registered by the client in question before it’s sent to you (or the server first in a server-authenticated model). The status quo is that a lot of attacks will seem to just phase through other players, which in a PVE game, is totally fine.

Versus games have made giant leaps forward in netplay and have a lot more things to contend with because the game has to feel good for both the attacker and defender. PVE is stupid simple by comparison because nobody cares if the enemy AI “gets robbed”, and it’s embarrassing that Darktide’s netplay is as bad as it is.

What’s worse is that it was actually even a lot worse than it currently is at launch. The launch netcode probably turned off thousands of people even if they couldn’t articulate precisely why the game felt like crap.

3 Likes

Huh, you know I’m the weird one that didn’t make that assumption, I expected dedicated servers only, everything being a nail to a hammer and given FS’s past.

However, I half-expected (hoped, and more like 10%) the ability to host a headless dedicated server for private matches somewhere down the line like other games have done in the past.

2 Likes

the problem with the servers are not that they are servers
but rather that fs cheaped out and opted for low tickrate servers

if you make an input right after a tick, you have to wait for the next tick to resolve, causing micro delays or even dropped inputs
pair that with input buffering of the engine, and you end up with inconsistent inputs allover.

its one of the first things a shooter worth its salt should invest into if it wants any shot at having smooth gameplay

2 Likes

Ah, yes, Overwatch 2017. Fond memories of 20TPS. Or was it lower?

I was also hoping we would be able to host our own instances of the dedicated servers.

1 Like