Game development is hard work, and like many jobs, sometimes you’ve got to cheat a little bit. In a recent Twitter thread, game developers have come forward to share their most embarrassing workarounds, some of which are genuinely hilarious.
Prompted by Fullbright co-founder Steve Gaynor, the developers range from current indie designers to grizzled triple-A veterans, all of whom have stories to share about pulling out the duct tape when nothing else seems to work. In some cases, inexperience with coding or engine use forced developers to come up with bizzare solutions to what seem like simple problems, while in others, shipping deadlines meant coming up with something on the fly, quickly.
Stuff like this exists all over games: In Fallout 3, for instance, you may have heard that the moving presidential metro car you find in Broken Steel is actually a very large hat for an NPC. And there are plenty of ‘field expedient’ fixes that you never see that cover bugs and memory leaks and auto-save problems. Games are complicated, and unraveling a problem you discover toward the end of development might mean blowing a deadline or breaking a bunch of other stuff you’ve done in the meantime.
Check out our list of the best indie games on PC
Here’s Gaynor’s initial tweet, in which he kicks things off by admitting to writing all of Gone Home’s scripting in just two massive graphs.
please share your most embarrassing game dev crimes. Mine: all the scripting in Gone Home is contained in 2 gigantic uScript graphs, bc I didn't know about interlinking many smaller graphs at the time. It's only 2 bc the first one started running too slow to navigate. Your turn.
— Steve Gaynor (@fullbright) December 14, 2018
Vlambeer’s Rami Ismail said they had to get a boss character to spawn on top of a procedurally-generated building, and so they came up with a brute-force solution:
In an early Vlambeer game, positioning a boss unit on a roof of a (awfully coded) generated building was done by dropping it from above the roof at a random position, and teleporting it back up if it fell below the roof.
If you went fast & got lucky, you could catch it falling.
— Rami Ismail (@tha_rami) December 16, 2018
Media Molecule co-founder Alex Evans worked at Lionhead Studios during the development of god game Black & White. The team ran into a memory problem:
on black and white 1 theres a memory leak we never found. so it detects if low on mem, saves, quits and restarts itself without explanation. passed overnight qa soak after that…
— tanh(mmalex) 🦄 (@mmalex) December 15, 2018
Damion Schubert says the expansion pack for early 3D MMORPG Meridian 59 had a pretty significant problem: They had accidentally made it impossible to access.
I shipped an expansion pack where players had no way to access the expansion content.https://t.co/1sYhlKqoHf
— Old Man Schubert, Design Crank (@ZenOfDesign) December 15, 2018
There are issues with pets in games, which sometimes do unexpected things – such as draw aggro on themselves.
I once coded an AI Pet, that after several fights would start spinning rapidly, and stop fighting. Turns out it existed in it's own list of enemies, so after a few fights it would gain so much threat it would consider itself the most dangerous enemy and attempt to attack itself.
— Cynicat (@CynicatPro) December 15, 2018
That car you drive in the moody, li-fi horror game Paratropic? Yeah, that’s not really a ‘car’:
to solve a late in the day issue with the road clipping through the floor compounded by an obtuse rendering approach, the car in Paratopic is actually a gun
— jessica (@oysterFAKE) December 15, 2018
Then there was the time that the Kingdom of Loathing developers tried to back up their database but accidentally deleted it instead (the full story is behind the link, and it’s a nightmare):
There was the time we dropped the entire Kingdom of Loathing database instead of backing it up… https://t.co/BirdMyDmHT
— Kevin Simmons (@puzzletheory) December 15, 2018
I quite like the virtual Rube Goldberg devices developers create to keep the illusion alive, like this solution to making time pass in Firewatch, shared by Jake Rodkin (who’s now at Valve):
In Firewatch free roam mode I wanted the time of day to change constantly, but we didn’t write our system like that. It was only written to respond to Henry’s position in triggers. So in free roam there’s a water wheel of triggers attached to Henry that slowly rotate through him.
— Jake Rodkin (@ja2ke) December 15, 2018
Even Brendan Chung, who’s made games about computer programming at his company Blendo Games, has had to learn as he goes:
For the first version of atom zombie smasher, I didn't know how to put code in separate files.
So the game was pretty much all in one mega-sized C# file : (
— Brendon Chung (@BlendoGames) December 15, 2018
Maybe best of all is the fact that everyone’s favorite Ur-RPG, Baldur’s Gate, shipped in debug mode, according to BioWare’s Mark Darrah:
Baldur’s Gate 1 shipped in debug mode because it crashed in any other compile target (uninitialized memory)
— Mark Darrah (@BioMarkDarrah) December 15, 2018
We’re hoping that won’t be the case for Anthem, which he’s working on now.
As players, we don’t often get to see the creative ways developers get around problems that crop up as they translate big ideas into working games, and this peek behind the curtain is a thought-provoking (and funny) demonstration of how sometimes, there’s just a bit of string and glue holding everything together.