So recently, some traffic to the ‘Flappy Jam’ game jam saw some fresh (and unexpected) hits to my entry in the jam, Happy Turd. With this new influx of attention, I saw fit to bugfix, polish and otherwise spruce up the game because, well I’ll be honest, I was embarrassed by it.
Happy Turd was my first jam entry. Not my first attempt, since ‘Robotron with sweets’ seemed like a good idea for Candy Jam, until I realised that this was not a great idea for a first rodeo. Indeed, a game as deceptively-complex as Robotron 2084 is not first-jam material unless you’re fully conversant with your game-making tools. I was not.
On top of being my first jam game, Happy Turd was my fledgling effort with Construct 2 — and it showed. Despite hand-drawn art that has been both ironically and unironically called ‘beautiful’ by friends and strangers alike, the game was a rough mess in all areas. Scrolling didn’t work properly, background didn’t move, Comic Sans was used for the HUD (I had no idea how to create a sprite font at the time), and pipes would glitch out after a while and become unaligned, making the game disastrously easy after a certain point.
Luckily, I knew why each and every one of these things happened, and resolved to bugfix in the future.
Enter v2.0 — which saw me take the path of least resistance and actually code the thing from scratch. Yes, I am arguing that C2’s event sheets are coding; albeit high-level syntaxless coding, but coding nonetheless.
Turd v1 was a scrolling afair that employed a lot of C2 automation, and a very clumsy system of “if it moves off the left side of the screen, randomise the height and shift it just off the right side” for the wrap-around. I couldn’t make this work with a parallax background layer, so this remained still. C2’s automated ‘physics’ behaviour saw a lot of jerky movement as uncontrollable rotation of the player turd affected horizontal movement. Last but not least, the highscore function was basically spat onto bubblegum and wedged into an instance variable, because I couldn’t fathom global variables for some reason I can’t recall.
Turd v2.0 actually fakes this on a static screen; a trick I employed to great effect in DOWN.LOAD; and uses much less automation, giving me full control over the wrapping around. Literally the only automated thing C2 is handling is the gravity of the turd — which gave me one small problem regarding framerate slowdowns that I figured out the answer to with delta-timing, but I digress. I used global variables up the wazoo for much greater control, including a ramping difficulty (much to my joy) and a little screenshake. I’m convinced this is not a ‘bad’ practice, since I can call upon a variable at any time to know what’s up. But even now I accept there are probably more efficient ways to do things. As there always are. And, highscores are saved to local webstorage.
You know, the end result is finally something I can be proud of. It took me literally an afternoon to recreate and improve on the initial week’s worth of work, and it shows how much I’ve learned. Speaking of pride, I actually put my name on this version; something I purposely missed from the initial Happy Turd.
Why don’t you play Happy Turd on itch.io?