Bad Code


Bad Code is a small indie dev group that focuses on mobile applications.  We work hard to improve our content with every release and love interacting with users.  We don't try to be anything other than what we are; that is, a small group of independent developers and designers.  

Three Cheers for Mediocrity

In the void of digital media it’s hard for an independent or an up-and-comer to make their mark or at the very least get noticed.  In many cases the life of an indie developer plays out like an REM set list; a mostly solitary soundtrack with hints of gloom, and subtle sparks of hope.  In an effort to get noticed, or kick start what’s sure to be the greatest career of all time we see developers trying to push the envelope while their still six steps from the gate; grasping at straws, but most importantly trying. 


Before I go any further I must say, I am all about making the best product, sharpest game, most ground breaking content; but there’s a problem here, these terms are more ambiguous than the endings of American Psycho, 2001: A Space Odyssey and Inception all rolled into one.  What is “best” for one, is certainly not the “best” to another— furthermore, just what is “groundbreaking”?  I promise I have a point.


When starting out, the most important thing we need to do is learn about our user base, and typically the first thing we learn is that people in masses, are incredibly complicated to nail down.  We may make a product that does great for a short period of time, but usage falls sharply after week two; we may find that our product doesn’t gain a massive following, but usage is steady and overall consistent.   Although less profitable in the short term the latter of these two scenarios is likely the preferred outcome for a product.  We stand to learn far more, have more opportunities to experiment with new ideas and concepts, and most importantly gain precious data.


Courtesy of

My first game was arguably, entirely mediocre, from the graphics to the game play there is absolutely nothing groundbreaking or special about it.  It’s modeled after some of the earliest platformers and this was 100% intentional.  You may be asking yourself— why would someone set out to be mediocre? — And the answer to this is simple; I did not set out to be mediocre, I set out to learn.  From my mediocre product I have produced almost perfectly consistent and predicable numbers.  I was able to experiment with various marketing techniques in various demographics and gain a better understanding of how players use my product.


In this industry, knowledge truly is power, and the relationship between developer and user is unlike most other industries.  Many times our product is free, most of the time users are willing to take us for a test drive on a whim, and just as likely to turn and run after 20 seconds of play time.  Flashy graphics may keep a user captivated for a spell, but the gameplay may drive them away shortly thereafter, or perhaps you have the exact opposite scenario.   The obvious answer to this problem is balance, but this is harder to achieve than one may think and often times balancing a game post launch is done in a reactionary way.  There are inherent problems with being reactionary, and more often than not, being reactionary simply escalates the initial problem creating new ones along the way.  Point being; make sure your product is balanced before you release it.  This may mean adding graphics below your level of capability to match a more simplistic gameplay, or simplifying gameplay to better compliment a more modest graphical interface.  Either way, in the end a less attractive balanced game is far better than the most beautiful unbalanced game—even if it is a bit mediocre.  


With the amount of truly poor content available to users, mediocre is great, in fact if we were to look at a large enough sample we would find that mediocrity is paradoxically anything but substandard.  So don’t be ashamed to be mediocre, this game is a rabbit race—be the turtle; and don’t despair if you don’t put out the greatest most ground breaking content today.  Build upon your mediocrity; learn from your observations, and in time you will create something truly unique, dare I say… ground breaking. 

My Hand + Face Moment

Like most indi developers I often find myself jamming out lines of code while the rest of the world is fast asleep; and I’m sure many of you, like myself, find a certain level of tranquility in doing so.  Of course the downside of this practice is that often times we make mistakes—but not ordinary mistakes— I’m speaking of the types of mistakes that make us feel as if the twilight magically shed 50 or 60 points off our IQ.  Code has a very unique ability to make us feel like absolute morons, and the worst part is, we normally deserve it.

Today I spent the better part of six hours chasing down a bug that was causing an infinite loop.  I assumed the bug was in a parse script I had recently added so I combed over this script endlessly for many hours with no sign of an issue.  Finally, defeated and felling very much like a grubby sleestak I decided to switch gears for a bit and do some maintenance on a few switch statements.

Screen Shot 2014-09-19 at 1.53.14 AM.png

Now, I consider switch statements to be pretty forgiving and certainly rank high on the “idiot-proof” meter, so the thought of a bug residing in the switch had not occurred to me.  As I scrolled down to case three I froze… Gee, I wonder why I was getting an infinite loop?  Could it perhaps be because I was essentially ordering the program to do it?  As I said above, code has a very special way of making us feel like total morons, and I of course deserved it.  This was my hand + face moment for the week, and a subtle reminder that I may actually require sleep after all.  I hope you enjoyed the read, or at the very least found amusement in my suffering : ).  Take care and I will talk to you soon.      

© 2015 Bad Code Studios All Rights Reserved