I wanted to write a bit about what I learned during the 8 months that I tinkered with Lab Runner.
This was my first major coding project; I started it in May 2013. As you may know, it was supposed to be a side-scrolling platformer with a crafting element. You wake up in a laboratory and have to collect and combine items to escape. Sounds simple enough, and for the most part, it is.
However, I forgot to keep it that way.
As the months went by, I was sort of learning as I went. The game went from looking bad and glitching out to looking fairly decent and only having a few (visible) glitches. This continued until the game was actually starting to look professional (kind of). But there were, fundamentally, a few things wrong with the game, that I would only realize a year later. These issues slowed my progress (I never did finish it; at best it is a tech demo of everything I learned), and made the game unappealing to the average player.
For starters, the game felt cluttered. Originally I wanted to make a simple platformer, but as I went on, I began adding features that “looked cool”. I focused too much on “gimmicky” features like explosion effects that are customizable to the number of particles thrown in the air, instead of actual gameplay, like enemy AI or level design. Every update I pushed was focussed on the details and I missed the bigger picture. Eventually I added so many features it became something like an RPG, with several weapon types and enemies that aren't even laboratory themed. Although I learned a lot by experimenting with so many options, it didn't help to progress the game, and eventually I burnt out.
This external complexity reflected the internal code as well. Objects in the game were cross-referencing each other, and there were redundancies everywhere. There were also dozens of class files to do what should have taken way less. It was getting hard to maintain, and when things are hard to maintain and overly complicated, there is a higher chance of weird bugs showing up in-game. Some are often very hard to fix.
As I mentioned in the first paragraph, I added useless features and delved deeper into the world of art style and themed levels, but this led me astray from my true goals. Most of the world was incomplete and did not take place in anything that looked like a laboratory. In fact, you start off in a dungeon. The game did not at all match the title.
These are a few of the things I learned not to do from Lab Runner. As I make my next game, Monospace, I will have these in mind. And maybe one day I will come back to this game and finish it. We'll see!