Glenn Fiedler, who previously worked on Titanfall at Respawn and worked as a lead network programmer at Sony Santa Monica prior to that, has called out The Division’s network model in a blog post criticising the manner in which the Ubisoft Massive game handles communication between the server and players.
While Fiedler admits he does not, in fact, own a copy of the game, he believes based on what he’s read and seen in videos that The Division uses a “trusted client network model,” which may be the same exploits keep appearing. Using the example of the video below, in which a players using Cheat Engine on PC to discover memory addresses and exploit them for infinite health and ammo, Fiedler notes that this particular memory address trick isn’t exclusive to the game.
This is exactly how Cheat Engine and similar programs work in single player games but in multiplayer titles like The Division, it creates problems.
“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,’” Fiedler wrote. “To me this displays a fundamental misunderstanding of how FPS games are networked.”
Adding server-side checks isn’t enough to stop such exploits, Fiedler adds, comparing the game to “top-tier” FPS titles.
“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.”
In a server-reliant model, the server acts as the “real game”, Fiedler explains, and never completely trusts client input. The server uses input from all clients and runs it through the live game, which is hosted on the server. The server then registers the effect of these inputs.
“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,” Fiedler added.
A recent netcode analysis video detailed some of Fiedler’s insights into the game.
While running truly dedicated servers would solve many of The Division’s problems, doing so would have been an expensive solution and that may be why Ubisoft opted to develop the game’s network model the way it did.
As it stands, it seems everyone’s talking about the game’s problems which is probably not what Massive hoped for.