2019-03-01_PC_Gamer___40_US_Edition

(singke) #1

XALAVIER
NELSON JR.
I’m a full-time
game writer and
narrative designer,
with credits inside
and out of gaming.


E


very other day, it seems that some band of
intrepid dataminers finds hidden,
outdated, or mysterious content buried in
the code of our favorite games. This isn’t
negligence. Instead, it’s a peek into a little
known reality of game development: That unused code
is left in databases because it’s too risky to remove.

Defender’s Quest DX dev
Lars Doucet compares
disabled (rather than
removed) code to a nest of
cords. “You can’t say for
certain what is plugged in
to what without taking a lot
of time to figure it out.” This
is especially true if you didn’t write the code, for instance
if you’re working on a large team. Deleting old, seemingly
obsolete code can risk breaking something important.
Industry veteran Tom Forsyth explains how keeping
disabled code around allowed Oculus to release Positional
Time Warp (tech that smooths perceived motion by
tracking depth information and movement) in 2018. “For
various non-technical reasons, the feature was removed,”
Forsyth says. “[Fast] forward to more than THREE
YEARS later, and in 2018 Oculus announce this new
feature called... Positional Time Warp! And it’s exactly the
same as the thing it was before. ... If it hadn’t stayed alive
in the (very fluid) codebase all those
years, it would have been a huge pain
in the ass to reinstate, and probably
wouldn’t have got the go-ahead.”
Keeping code also lets developers
reuse it in formulaic series, such as
Traveller’s Tales’ Lego games.
According to former Traveller’s Tales
senior game mechanics programmer
Chris Payne, the same code was used
to recreate Harry Potter’s Aguamenti
spell, the Clone Wars hover tanks,
and Iron Man’s iconic chest laser. “All
used the same beam code with
different visual treatments and
gameplay effects—but they shared
the same cursor aiming, so the
mechanic felt intuitive, worked
reliably, and was implemented
quickly,” Payne says. “And the beam
code itself reused the bolt code—firing an invisible bolt at
infinite speed every frame to simulate a continuous laser.”
War for the Overworld programmer Scott Richmond
details the process that followed the decision to disable

(and then re-enable) health bars in their isometric god
game. “The design required that each enemy would have
a health bar above its head. However we flipped that
decision as it looked bad, but we didn’t remove all the
code—we just disabled it. Pretty quickly thereafter a bug
was reported to us that creatures were doubling in size
every time a player cast the possession spell! Turns out
some code that handled
scaling the health bar was
not disabled and started
scaling the creature
instead!” The bug was fixed,
but the designers eventually
reversed their decision on
health bars—something
they were easily able to do
because the code was still all there.

DIGITAL DETECTIVES
Unused code preserved in multiplayer titles introduces
another set of considerations. I ask Jordan Thomas of
multiplayer teen sleuth immersive sim The Blackout Club
how to hide emerging features in an available executable.
His simple answer is: You can’t. “You can encrypt, and
obscure, and deeply obfuscate that content, but a
dedicated enough community (hi, Discord) is going to
find it. We tend to focus our efforts on trying to stave off
the worst of the cheating rather than hiding areas that are
under construction,” Thomas concludes. The developers
of Club Penguin used this to their advantage, as related by
former Disney narrative designer Alexander Newcombe,
burying backstory and clues to future updates in the client
for hardcore fans to ‘discover’. “There were several asset
names that hinted at the secret Penglantian (that’s
penguin Atlantis, obvs) backstory of the island. Players
who knew were SO excited to share their theories online,
and it was great to see (even when they were regarded as
wacky conspiracy theorists),” says Newcombe. However,
this did have drawbacks when plans would inevitably
change. “We once embedded a codename in binary in an
image. Players thought for sure it was going to lead to
something juicy since it was unusually secretive and
intentional. Sadly, the planned follow-up never got made,
so it became a loose end. Even when we denied future
plans, some players thought we were just being coy still.”
Instead of seeing unused content (such as Skyrim’s
civil war plotline) as a missed opportunity, a source of
disappointment, or potential danger, these developer
comments point towards a different conclusion. In these
littered code segments are visions of game versions that
we will never play, as well as the potential seeds that
could grow into future brilliance.

“A DEDICATED ENOUGH
COMMUNITY (HI, DISCORD) IS
GOING TO FIND IT”

LEFT BEHIND


How, when, and why unused code sticks around. By Xalavier Nelson Jr.


Inside Dev


MAKING GAMES IS HARD

Free download pdf