Real-Time Il­lu­sion­ists: The State Of Shooter Net­code

The state of shooter net­code

Hyper - - CONTENTS - Nathan Lawrence is your host

On the sur­face, the core net­code of your av­er­age on­line shooter hasn’t changed a whole lot in re­cent years. But dig a lit­tle deeper, and there’s a wealth of tweaks, im­prove­ments and, in some in­stances, back­ward steps that greatly im­pact the all-im­por­tant feel of play­ing shoot­ers on­line.

Back when we were all high-ping bas­tards (HPBs), on­line mul­ti­player re­quired play­ers to take their la­tency into ac­count to hit play­ers run­ning across their aim. Even for shoot­ers that used hitscan bal­lis­tics, like Counter-Strike of old, a player with, say, 200 la­tency would have had to lead their tar­get by 0.2 of a sec­ond to en­sure a hit.

As HPBs be­came low-ping bas­tards, de­vel­op­ers ad­vanced net­code tech­nolo­gies to fur­ther push the il­lu­sion of real-time in­ter­ac­tion be­tween play­ers. In re­al­ity, even though fast broad­band con­nec­tions fa­cil­i­tate in­ter­ac­tions mea­sured in mil­lisec­onds, all play­ers con­nected to a server are ef­fec­tively in­ter­act­ing with the re­cent-past ghosts of other play­ers.

It’s eas­ier for com­par­a­tively slower-paced games, such as re­al­time or even turn-based strat­egy games, to sell this il­lu­sion. But for fast-paced gen­res such as shoot­ers that re­quire con­stant au­thor­i­ta­tive val­i­da­tion (from the server) to main­tain the il­lu­sion, things can start to fall apart.

Ba­si­cally, your av­er­age on­line shooter is con­stantly send­ing and re­ceiv­ing up­dates about your in­di­vid­ual in­put and mea­sur­ing it against other player’s in­put and, most im­por­tantly, what the server ac­cepts to be the true state of the game world at a par­tic­u­lar point in time. For in­put that doesn’t clash with other play­ers, such as move­ment com­mands, this tends to be han­dled client-side (on your gam­ing ma­chine) and is au­to­mat­i­cally ac­cepted as true.

The only time it’s re­jected, and usu­ally af­ter the fact, is if the server de­ter­mines that your move­ment con­tra­dicts with an in­ter­sect­ing in­put from another player. This might be as sim­ple as col­lid­ing with another player. It also might mean you had al­ready jumped off a ledge on your screen, but you’d been head­shot on another player’s screen be­fore or dur­ing the jump. Re­mem­ber: you’re in­ter­act­ing with the re­cent his­tory of other play­ers, so it’s ac­tu­ally less im­por­tant about what you see now on your screen as it is com­pared to where you were mil­lisec­onds ago.

This is also why it feels like you take dam­age be­hind cover in cer­tain games. Counter-Strike: Global Of­fen­sive uses 64Hz tick rate as stan­dard, and even of­fers the op­tion of 128Hz tick-rate servers. Tick rate is a fancy term for de­scrib­ing the amount of times the server sends up­dates to play­ers ev­ery sec­ond. It’s com­ple­mented by the player up­date rate, which is how fre­quently up­dates are sent from player to server. Gen­er­ally speak­ing, the higher the tick rate, the smoother and more ac­cu­rate the on­line ex­pe­ri­ence.

The Bat­tle­field se­ries was, not so long ago, forced to over­haul its net­code, in­clud­ing its tick rate, be­cause of the dis­as­trous launch of Bat­tle­field 4. At launch, Bat­tle­field 4 play­ers suf­fered from un­re­li­able servers, rub­ber band­ing, and other re­lated net­code is­sues that ru­ined the on­line ex­pe­ri­ence. Fast­for­ward to years af­ter re­lease, and Bat­tle­field 4’s tick rate was dou­bled

Hitscan vs pro­jec­tile

In ba­sic terms, pro­jec­tile-based bal­lis­tics mod­el­ling is used in games that re­quire play­ers to take into ac­count real-life fac­tors such as bul­let drop and the time it takes for a round to reach a tar­get. Ba­si­cally, bul­lets are mod­elled as ob­jects in the world. Hitscan games or weapons hit the tar­get in­stan­ta­neously. from 30Hz to 60Hz as part of a net­code ren­o­va­tion.

Bat­tle­field 4 also in­tro­duced clever tech­nolo­gies that tamed the oth­er­wise over­whelm­ing in­for­ma­tion that comes from 64-player servers that in­volve in­fantry, ve­hi­cles, and de­struc­tible en­vi­ron­ments. Ba­si­cally, an in­vis­i­ble field-of-view cone in front of in­fantry, and a larger one in front of ve­hi­cles, up­dates at a faster rate, and ev­ery­thing out­side that cone, which is less likely to im­pact the player, up­dates at a slower rate. This helps main­tain the real-time il­lu­sion and re­duces server de­mand.

Server de­mand was a hot talk­ing point for Rain­bow Six Siege, which re­cently pushed back a core DLC drop to pri­ori­tise Op­er­a­tion Health: a back-end re­fur­bish­ment de­signed to im­prove on­line play. One of those is­sues was server de­mand, which re­sulted in crashes (both client and server­side), higher-than-nor­mal la­ten­cies, and prob­lem­atic hit reg­is­tra­tion.

Hit reg­is­tra­tion is one of the most com­plained about fac­tors for on­line shoot­ers. When Call of Duty games dy­nam­i­cally switch be­tween ded­i­cated servers and peer-to-peer (P2P) hosts, as­sumedly to fa­cil­i­tate faster match­mak­ing, they cre­ate is­sues. CoD’s client up­date rate is so low

– a mere 10 up­dates per sec­ond in P2P matches – that it can cre­ate a phe­nom­e­non called ‘su­per bul­lets’.

Su­per bul­lets oc­cur when a gun’s fire rate is faster than the game’s up­date rate, which can re­sult in play­ers tak­ing dou­ble dam­age from fast-fir­ing weapons. One of the big­ger is­sues with P2P matches, though, is the player who’s au­to­mat­i­cally des­ig­nated host ef­fec­tively has zero la­tency, be­cause their ma­chine is act­ing as the server.

The host player has a dis­tinct ad­van­tage over other play­ers whose in­puts must be sent to and con­firmed by the host ma­chine. On top of this, au­to­matic host selec­tion may pick a player in a dif­fer­ent re­gion or with a low­band­width in­ter­net con­nec­tion. Ad­di­tion­ally, there’s no con­trol over the per­for­mance of that host­ing player’s ma­chine (which is more im­por­tant on PC), whether they’re us­ing Wi-Fi to play on­line (which can cause packet loss), or other net­work­ing fac­tors that can im­pact the real-time il­lu­sion.

Even games that use ded­i­cated servers aren’t free from net­code is­sues that im­pact the smoke and mir­rors re­quired for an on­line game to feel re­spon­sive. Anec­do­tally, smoke is one of the hard­est things to keep fair on­line, be­cause client-side smoke prop­a­ga­tion is of­ten dif­fer­ent be­tween play­ers. This is true of Playerun­k­nown’s Bat­tle­grounds, which also wres­tles with other net­code is­sues.

There’s no­tice­able lag at the be­gin­ning of matches, which isn’t so bad if you don’t land with en­emy play­ers, but is im­me­di­ately and frus­trat­ingly no­tice­able when in­put com­mands don’t reg­is­ter, de­spite a client-side an­i­ma­tion play­ing on-screen.

One of the more con­cern­ing is­sues is that Bat­tle­grounds uses a 20Hz tick rate, which is likely the


cause of some of the hit reg­is­tra­tion is­sues, syn­chro­ni­sa­tion con­cerns, and also why it ap­pears that play­ers take dam­age be­hind cover. This lat­ter point is par­tic­u­larly egre­gious be­cause of Bat­tle­grounds’ unique sound de­sign that al­ready makes it hard to pin­point the lo­ca­tion of the player shoot­ing at you.

If you take dam­age be­hind cover from a shot that ac­tu­ally hit be­fore you reached cover, you might be fooled into be­liev­ing the en­emy is be­hind you. It’s some­thing that Bliz­zard ad­dressed not so long ago in Over­watch by bump­ing the tick rate from 20Hz to 63Hz.

Re­gard­less of the on­line shooter, the re­al­ity is that no mat­ter how fast an in­ter­net con­nec­tion is, play­ers are at the mercy of a game’s net­code and the net­work mod­els sup­port­ing it. Net­code has im­proved in more re­cent years, but there’s still room for re­fine­ments. A push for net­work-model uni­for­mity across on­line shoot­ers would make them feel closer to the re­spon­sive­ness of a sin­gle-player shooter.

The higher a game's tick rate, the smoother the on­line ex­pe­ri­ence.

Newspapers in English

Newspapers from Australia

© PressReader. All rights reserved.