I just want to offer a quick explanation for anyone who is wondering why they’re not in the same location where they were before their game froze up or crashed.
The way most of the modern multiplayer games like Conan Exiles work is that the client is responsible for three things, basically:
- receiving the state of the world from the server
- the state does not include things that are completely static and immutable, like terrain
- the state does include your character
- the state does not encompass the whole map, only the part that is close enough to you to matter
- rendering that state on your screen and your audio device
- telling the server about your “inputs”, e.g. that you’re moving forward while strafing left, or that you interacted with the door, or that you’re executing a light attack with your axe
Sounds simple, but there’s a couple of things to keep in mind that aren’t necessarily obvious or intuitive if you don’t know how things work:
- The client will keep rendering the state it has until it gets an update from the server.
- If that update contradicts what the client “knows”, the client will have to adjust
- The server will keep simulating the last input it received from the client until the client sends different input or disconnects.
These two things explain many of WTFs people see in the game. Rubberbanding is what you get when the client can’t talk to the server smoothly enough or fast enough, so the client keeps having to correct what it “knows” about the state of the world. Scorpions slowly levitating into the sky is what you get when an update for those scorpions never gets from the server to your client.
And it also explains why you find yourself far from where you were when you disconnected. Due to how the networks actually work, if your client crashes, it cannot “hang up” its connection to the server properly and it takes some time for the server to realize the client isn’t there anymore.
So if the last input the client sent to the server, before crashing, was “my player’s character is moving forward”, the server will keep moving you forward, waiting for the client to give it your next input, until it realizes that the client is not there anymore. Only then will it log you out of the game.
I hope this clarified why some things happen.
I also hope it clarified that there’s no “polling” involved. Polling is really not a good way for games like this to work. Instead, client and server are sending each other messages.
While we’re on the subject of tech lingo, “deadlock” has a specific meaning – the one you quoted from Microsoft’s docs for software devs – but it’s important to understand that it does not mean “my computer froze”.
Not every deadlock will cause your computer to completely stop responding, and vice versa, your computer might stop responding for reasons other than deadlock. The focus of anyone trying to diagnose your problem should be on why it causes your whole computer to become completely unresponsive, rather than just your game. My intuition is that it’s because something bad happens on a very low level, with very high privileges, which is not a level Conan Exiles runs at.
If I’m right, that doesn’t mean that Conan Exiles isn’t causing it indirectly, but it does mean that the code that’s running when your computer freezes is not Conan Exiles code.
For an overview of what I’m talking about, you can take a look at the Wikipedia entry on protection rings. Suffice it to say that Conan Exiles, as a game, does not have the privilege to make your computer stop responding completely. It has to be something either in the operating system itself, or the drivers, or the anti-cheat software. The trick is finding what combination of factors is causing that, and it’s devilishly hard.