IN­SIDE DE­VEL­OP­MENT

Why does code get left be­hind?

PC GAMER (UK) - - CONTENTS - By Xalavier Nel­son Jr.

Ev­ery other day, it seems that some band of in­trepid datamin­ers finds hid­den, out­dated, or mys­te­ri­ous con­tent buried in the code of our favourite games. This isn’t neg­li­gence. In­stead, it’s a peek into a lit­tle known re­al­ity of game de­vel­op­ment: that un­used code is left in data­bases be­cause it’s too risky to re­move.

De­fender’s Quest DX dev Lars Doucet com­pares dis­abled (rather than re­moved) code to a nest of cords. “You can’t say for cer­tain what is plugged in to what with­out tak­ing a lot of time to fig­ure it out.” This is es­pe­cially true if you didn’t write the code, for in­stance if you’re work­ing on a large team. Delet­ing old, seem­ingly ob­so­lete code can risk break­ing some­thing im­por­tant.

In­dus­try vet­eran Tom Forsyth ex­plains how keep­ing dis­abled code around al­lowed Ocu­lus to re­lease Po­si­tional Time Warp (tech that smooths per­ceived mo­tion by track­ing depth in­for­ma­tion and move­ment) in 2018. “For var­i­ous non-tech­ni­cal rea­sons, the fea­ture was re­moved,” Forsyth says. “[Fast] for­ward to more than THREE YEARS later, and in 2018 Ocu­lus an­nounce this new fea­ture called… Po­si­tional Time Warp! And it’s ex­actly the same as the thing it was be­fore. … If it hadn’t stayed alive in the (very fluid) code­base all those years, it would have been a huge pain in the arse to re­in­state, and prob­a­bly wouldn’t have got the go-ahead.”

Keep­ing code also lets de­vel­op­ers re­use it in for­mu­laic se­ries, such as Trav­eller’s Tales’ Lego games. Ac­cord­ing to for­mer Trav­eller’s Tales se­nior game me­chan­ics pro­gram­mer Chris Payne, the same code was used to recre­ate Harry Pot­ter’s Agua­menti spell, the Clone Wars hover tanks, and Iron Man’s iconic chest laser. “All used the same beam code with dif­fer­ent visual treat­ments and game­play ef­fects – but they shared the same cur­sor aim­ing, so the me­chanic felt in­tu­itive, worked re­li­ably, and was im­ple­mented quickly,” Payne says. “And the beam code it­self reused the bolt code – fir­ing an in­vis­i­ble bolt at in­fi­nite speed ev­ery frame to sim­u­late a con­tin­u­ous laser.”

War for the Over­world pro­gram­mer Scott Rich­mond de­tails the process that fol­lowed the de­ci­sion to dis­able (and then re-en­able) health bars in their iso­met­ric god game. “The de­sign re­quired that each en­emy would have a health bar above its head. How­ever we flipped that de­ci­sion as it looked bad, but we didn’t re­move all the code – we just dis­abled it. Pretty quickly there­after a bug was re­ported to us that crea­tures were dou­bling in size ev­ery time a player cast the pos­ses­sion spell! Turns out some code that han­dled scal­ing the health bar was not dis­abled and started scal­ing the crea­ture in­stead!” The bug was fixed, but the de­sign­ers even­tu­ally re­versed their de­ci­sion on health bars – some­thing they were eas­ily able to do be­cause the code was still all there.

“a ded­i­cated enough com­mu­nity (Hi, Dis­cord) is go­ing to find it”

Dig­i­tal de­tec­tives

Un­used code pre­served in mul­ti­player ti­tles in­tro­duces an­other set of con­sid­er­a­tions. I ask Jor­dan Thomas of mul­ti­player teen sleuth im­mer­sive sim The Blackout Club how to hide emerg­ing fea­tures in an avail­able ex­e­cutable. His sim­ple an­swer is: you can’t. “You can en­crypt, and ob­scure, and deeply ob­fus­cate that con­tent, but a ded­i­cated enough com­mu­nity (hi, Dis­cord) is go­ing to find it. We tend to fo­cus our ef­forts on try­ing to stave off the worst of the cheat­ing rather than hid­ing ar­eas that are un­der con­struc­tion,” Thomas con­cludes. The de­vel­op­ers of Club Pen­guin used this to their ad­van­tage, as re­lated by for­mer Dis­ney nar­ra­tive de­signer Alexan­der New­combe, bury­ing backstory and clues to fu­ture up­dates in the client for hard­core fans to ‘dis­cover’. “There were sev­eral as­set names that hinted at the se­cret Penglan­tian (that’s pen­guin At­lantis, obvs) backstory of the is­land. Play­ers who knew were SO ex­cited to share their the­o­ries on­line and it was great to see (even when they were re­garded as wacky con­spir­acy the­o­rists),” says New­combe. How­ever, this did have draw­backs when plans would in­evitably change. “We once em­bed­ded a co­de­name in bi­nary in an im­age. Play­ers thought for sure it was go­ing to lead to some­thing juicy since it was un­usu­ally se­cre­tive and in­ten­tional. Sadly, the planned fol­low-up never got made, so it be­came a loose end. Even when we de­nied fu­ture plans, some play­ers thought we were just be­ing coy still.”

In­stead of see­ing un­used con­tent (such as Skyrim’s civil war plot­line) as a missed op­por­tu­nity, a source of dis­ap­point­ment, or po­ten­tial dan­ger, these de­vel­oper com­ments point to­wards a dif­fer­ent con­clu­sion. In these lit­tered code seg­ments are vi­sions of game ver­sions that we will never play, as well as the po­ten­tial seeds that could grow into fu­ture bril­liance.

Newspapers in English

Newspapers from UK

© PressReader. All rights reserved.