Friday, August 5, 2016

After 10,000 years, it's free!

Back in the distant lands of 2010, Danielle found an online tutorial about how to code ActionScript games in Flash. The tutorial instructed the reader on how to make a game in which you, a paddle, use a ball to destroy apples in a tree. The very most basic of brick breaker clones. Having completed the project, I saw her excitement in having coded something. And I decided in that moment to obliterate that small happiness forever.


"What if we made it more elaborate?" I said while lightly tapping in the first nail. "You could be a little guy knocking down a building! What if we added procedurally generated levels of a building with cutscenes in between them?". Meeting with little resistance I decided to query further, sweeping my hand along a shelf of antiques. "How about adding different kinds of bricks and building materials?" This, of course, destroyed the fancy procedural generation script that had already been completed. I either did not or could not recognize the shattered finery on the rug. More. There must be more.


"Racket physics! And we'll need new levels! We'll make new levels to replace all that hard work you just did! While you're at it, how about we add construction workers that call the police on you! Oh! Yes, we should have multiple game over conditions! We'll need a health meter, and power ups to go with it like buckets and sandwiches. And let's add more level designs while we're at it!" Unable to accept the fact that this would be just another brick breaker game, no matter how many bells and whistles we duct taped to it, I proceeded to push us deeper into madness. "Let's add something besides rocks that you can hit at the building!" Having seen the resulting rock re-skins, I could not let this scab go unpicked. "What if they each did unique things, like broke or exploded? Let's put in multi-ball functionality and an inventory bar while we're at it.
How about a remote control that brings in a wrecking ball? Wouldn't it be cool to fight a UFO with a wrecking ball?"


Years had passed at this point and the once simple tutorial game had already been reprogrammed from scratch, including several code revamps to handle all the new ideas I was polluting this once innocent project with. But my nagging suggestions and torrent of new assets had only increased with time. Three mini-games were planned and the groundwork laid out for them. More bosses. The collectibles system. Easter eggs, including a cheat system and a new hidden game mode within it. Remastered the cutscenes. Made a new cutscene gallery to replace the old ugly one. Added corrupted cutscene files to the game which replaced all the sprites with cutscene frames and almost irreparably broke the game. The level auto-complete system. Randomly generated countdowns. Procedurally generated room interiors. An actual ending to the game, instead of an endless loop of levels. More cutscenes. Throwing out of the previous groundwork for the three mini-games and adding the Demolition Carnival in their place. Unique cutscenes for all the bosses.


Neither of us wanted anything to do with it at this point. A spaghettian titan of tangled code and jumbled ideas, desperately trying to be something more than the uninspired monster it was. Meanwhile, Danielle had surprised me with Cardiac Snowdrift in 2011 which was everything Hitting Stuff at a Building was not - concise, addictive, and quaint. With Cardiac Snowdrift out in the wilderness, HSaaB had become even more reprehensible. What was the point of this mutant hearse of a training-wheels game when Cardiac had totally supplanted it in that role? We did not know. We did not care. Hitting Stuff at a Building rotted in the depths of our hard drives for years, untouched and unloved.


But here we are. We finally pulled it together in 2016 and made a concentrated effort to finish it. I am still coming to terms with the realization that I am a horrible, horrible project manager and our first substantial game will be just one of millions of derivative indie-games that are over-saturating the market. This trend of nostalgia fixation and subverting retro game tropes is something I desperately don't want to be a part of. Having grown up without video games, I had very lofty ideas about what video games actually were, and when I finally got to start extensively playing them 5-6 years ago, I was disappointed with how limited most of them actually are. Seed of Destruction is more along the lines of what we'd like to make, but we played it "small" and "safe" with Cardiac Snowdrift and HSaaB in order to get a handle on how to make games ourselves. But we've learned a lot, and thanks to her trucking through this programming boot camp hell, Danielle's grasp on coding is now so high that her career is moving up as a result. We've come away from this a lot more experienced than before and that's what really matters at the end of the day.


When asked for comment, Danielle added "FUCK FLASH RRRHAAABBGGLKKKGGRAAAH". Needless to say, we will thankfully never be working in Flash again. Our next project is being built in Javascript and HTML5 and it has been phenomenally easier to work with. It doesn't hurt that I've learned to plan out the full scope of a project in advance, as to prevent another catastrophic idea cascade. Meanwhile, I'm working hard on getting the Zehkiflorn reveal trailer ready for BarfQuestion's 10th anniversary on January 14th, 2017. It's going to be a huge update.