Former Respawn and Sony dev calls out The Division's network model
The Division's networking model received some flack from a senior network engineer.
Former Respawn and Sony dev calls out The Division's network model
Glenn Fiedler, who worked as a senior programmer at Titanfall developer Respawn, and as a lead network programmer at Sony Santa Monica before that, penned a blog post about how The Division handles communication between players and the sever.
Fiedler suspects the game is using a "trusted client network model," which he says is the reason from some of the exploits that keep popping up.
He gave the example of one video in particular that shows a player using Cheat Engine on PC to look for memory addresses and exploit them, giving the player infinite health, ammo etc.
This particular memory address trick is not exclusive to The Division, and it's essentially how programmes like Cheat Engine can help you in single-player games. In multiplayer-oriented ones like The Division, however, it becomes a problem.
"When I present such a bleak outlook people often people ask: why can’t they just implement more server-side checks? In fact the developers prior to release seemed to say something along the lines of: 'Oh, don’t worry. We haven’t implemented server side checks yet,'" wrote Fiedler.
"To me this displays a fundamental misunderstanding of how FPS games are networked."
Fiedler then goes on to explain how "top-tier" FPS games have managed to solve this problem. According to him, it's not as simple as adding server-side checks.
"For a competitive first person shooter there is a pretty standard approach to networking pioneered by Quake and later on perfected by Counter-Strike. This is the same network model used today by top tier FPS games like Call of Duty, Overwatch and Titanfall.
"This networking model has two main features you've probably heard of: client side prediction so players don’t feel lag on their own actions (movement, shooting etc.), and lag compensation, so when you shoot another player and bullets hit on your machine, you generally get credit for that hit as you saw it (so you don’t have to lead the target according to lag).
"But, critically, this decision of bullets hitting other players is decided on the server, not on the client."
Further explaining how a server-reliant model works, Fiedler says that the server acts as "the real game", never trusting client input outright. The server then takes input from all clients and runs them into the live game, hosted on the server. The effect of these inputs is what the server then registers.
"For example, if the input sent from a player is that they are holding down the fire button, then the server runs the same player code on those inputs (fire button pressed) which results in bullets being fired on the server according to the the current weapon the player is holding, the fire rate of the weapon, the amount of ammo in that weapon, and so on.
"And those bullets emitted on the server are the ones that actually hit and do damage to other players," adds Fiedler.
Parts of what Fiedler mentions in his piece were recently revealed in a network analysis video created by one Division player.
Unfortunately, Fiedler does not bring up the cost running "true" dedicated servers found in Titanfall or Counter-Strike would be for a game like The Division, something that's no doubt was a point of conversation during the game's development and ultimately played a part in the final decision.
You can read the rest of Fiedler's take through the link.