Yesterday morning Fullbright’s Steve Gaynor asked game developers to share their “game dev crimes” – tricks, workarounds, or inefficient ways to create a game or fix stubborn technical issues.
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
The responses quickly game pouring in as other developers shared their own tricks. All of them offer a look at how some of our favorite games are made out of rickety little bits of code hamstrung together to make something truly special, while some of them are just funny.
Some of them can get a little technical, but many of them are fun even without a knowledge of Java, CSS, or Unity. Here are some of our favorites.
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 harvey@PGC Seattle (@oysterFAKE) December 15, 2018
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
My first game (Earthworm Jim 3D) had no scripting language. So I made conditional logic using invisible washing machine objects in the sky that travelled animated paths on timers and could set triggers as they arrived at nodes. Debug was a nightmare. Shipped that way, I think?
— Eric Holmes (@ericholmeslive) December 15, 2018
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’s a twelve line conversation in The Walking Dead: Michonne that I pieced together with cut recorded lines from other scenes to try and fix a plot hole
— Emily Grace Buck (@emilybuckshot) December 15, 2018
My physics break if the player starts the scene touching the ground so instead the player starts 0.01 units above the floor and falls.
— why bot (@NotExplosive) December 14, 2018
Not me, but a game at a company I worked for was meant to have lip sync for conversations. They never got it working so they flipped the logic in the conversion camera to make it always point at the face of the character that wasn't talking instead of the one that was.
— James Sutherland (@jamessutherland) December 15, 2018
A level I worked on ended with a soccer match. I figured if you ran into the match area the game should remove all active enemies.
I had missed that the ball itself was tagged as an enemy and now removed. Making the level unbeatable.
The fix came in the day 1 patch
— Emil Nilsson (@gruvemil) December 15, 2018
We built a VR CES booth. Halfway through the chair you sat in needed to tip back. Never had time to write the motor controller to tilt the chair, even though it was plugged in. Booth went to CES and we had to sneak in and tip the chair back at the right time. Every. Single. Time.
— Peter Slattery 🚀 (@greensleevless) December 15, 2018
Every single toggle platform in Hot Tin Roof is a swing door rotated 90 degrees. Every single vertical lift is a sliding door. Every cruncher is also a sliding door.
Like half the game is technically a door of some kind, pretending very hard not to be a door.
— Megan Fox (@glassbottommeg) December 15, 2018
From a recent project:
1. Player presses left arrow key
2. Input handler sets a flag for "move right"
3. Game engine calls a function called "move left"
4. That function moves a game piece to the right internally
5. Renderer draws everything backwards
6. Game piece moves left
— Jack Ducham (@jackducham) December 15, 2018
I have made months-long game projects where 95% of gameplay takes place in a scene called "testscene"
— Heather ⬢ Flowers (@HTHRFLWRS) December 15, 2018
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
Every game entity in Wolverine’s Revenge contains a single bit determining whether it’s a helicopter taking off or not. Including Wolverine.
— Matthew Brooks (@brooksoid) December 15, 2018
As a freshed faced Engineer working on an MMO I used a static variable in a function to keep track of the previous character orientation worked fine when there was only 1 char in the test program, multiplayer test day came and no one could turn.
— Gedalia (@gedaliap) December 15, 2018
I did the panning shots in Ultra Hat Dimension's credits by making the player sprite fully transparent and lerping their position across the map
— Eniko (@Enichan) December 15, 2018
Not mine, but one I secretly loved. On "Pirates of the Burning Sea" a mission designer needed a fire ship. Ships didn't support particle emitters yet, but did have NPC stations. NPCs did support emitters. So they made the NPCs tiny and set them on fire D:.
— Brendan Walker (@binarys) December 15, 2018
The dog in fable 2 can’t turn on the spot (lacked the animations for it), so sometimes the AI get stuck running in a small circle trying to get to a goal it can’t ever reach. We gave up trying to fix it because ‘dogs do that’. No one in QA ever filed a bug for it.
— Glen Watts (@MrFlabyo) December 15, 2018
A little bit of Scribblenauts was translated by me and a programmer to five? seven? languages with google translate only like two days before cert.
— Liz England (@lizardengland) December 15, 2018
In Mallow Drops, if 3 or more blocks are stacked vertically, they started to vibrate each frame. Instead of fixing the physics engine, I just made sure in each puzzle that you couldn't get 3 blocks near each other.
Pretty sure it shipped with that bug.
— John Kane (@gritfish) December 15, 2018
A level I made would break down and trap the player whenever they stepped on a specific floor tile. Instead of figuring out the problem, I just put a lamp there to block it off. I did actually fix the problem later on, but by that point I was used to the lamp and kept it in.
— Alex Blechman (@AlexBlechman) December 15, 2018
A VR game I worked on didn’t have time to make me a free cam, so I strapped my Oculus to a Doraemon plush, put it on some boxes and blankets on my IKEA chair, re-centered the headset position, and pushed/pulled the chair across my carpet to make the smooth camera moves. pic.twitter.com/VFY0VzuYGq
— Derek Lieu (@Derek_Lieu) December 15, 2018
Made a randomized pokemon clone for a “programming for non-majors” class, couldn’t figure out how to trigger an encounter per-step on grass, so instead anytime you were on grass there was a possibility of Pokémon encounter. You could never stand still, and you could barely walk.
— 🎃Bryan 🦇 BOO!ne👻 (@brnbne) December 15, 2018