April 6, 2014

A few things I learned while making this game

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!

March 6, 2014


Because I am taking a break from Lab Runner, I am releasing 0.1.0-dev as is and putting the planned changes aside for now. I will be spending my time working on a different (smaller) game until I am refreshed with ideas for Lab Runner.

So that said, here is 0.1.0.


  • Added lighting engine (disabled in the current build)
  • Much improved collision detection and physics
    • 95% less wall clipping!
    • Jumping and falling feels smoother
    • Knockback is improved
  • Tile based platform spawning
  • Major performance increases
    • The game only processes items that are on-screen
    • Removed excess function calls
  • Improved item randomization
  • New levels (work in progress)
    • Redoing office levels, started the basement level
  • Reduced number of platform sprites
  • Refactored code to be more multiplayer friendly (multiplayer is a work in progress)
  • Changed how chests are looted (it's fun, try it!)
  • Added new enemies and objects
    • Spiders
    • Spike traps
    • Lots more!
  • Screen shaking 
    • Flashes red when player takes damage
Bug Fixes
  • Fixed invisible ladders
  • General bug fixes, nothing too specific

January 19, 2014


Update time again! A lot of awesome things have been added, and some really cool level generation has been added. It may still have a few performance issues; I will be working on that for the next update. Here's a rundown of all the changes:


  • Added logic gates and input methods (AND/OR/etc, levers and buttons)
  • Added item tooltips (shows the recipes the item is used in)
  • Added object tooltips (shows basic information about the object)
  • Added lots more objects (like desks, water coolers, laser turrets, etc)
  • Added level backgrounds (no more darkness!)
  • Added buttons below the hotbar to access crafting and armor menus
  • View discovered items by clicking the button in the crafting menu
  • Player can now equip certain items (like hats and rocket boots; access the equipped items by clicking the shirt in the top left corner)
  • Disabled off-screen rendering to improve performance
  • Added new enemy class: Medic
  • Added new melee enemy: corporate zombie (spawns in office levels)
  • Added support for custom player colors
  • Replaced FPS toggle with a button to change the size of levels generated
  • Projectiles are much more accurate, and you can now shoot in all directions
  • Added a loading screen
  • Added random title screen backgrounds
  • Added new projectile type: fireball (wands shoot it)
  • Right click with the band-aid in hand to heal 10HP
  • Fixed broken recipes
  • Fixed explosions doing damage multiple times
  • Fixed items deleting randomly
  • Fixed levers sometimes activating on mouse hover
  • Lots more!

November 20, 2013

Server issues, please read!

If you are having issues with updating or launching the game, please rerun the setup file from the downloads page. It will re-install the game and update the necessary files. If that doesn't work, go to C:/Users/YOURNAME/ and delete the ".labrunner" folder, then rerun the setup file.

Sorry about all this, it's been a rough week server-side. I moved some files around and the whole system broke. Just follow the above instructions and all should be well. If not, spam me on Twitter until I reply.


November 17, 2013


Since 0.0.8-dev had some performance issues, here is a hotfix. And since I foolishly broke the launcher earlier this week, you will have to redownload the setup file from the downloads page in order to see the update. This will not affect your save files.

  • Improved platform rendering performance
  • Fixed jumping problems on slower computers
  • Fixed chest inventories breaking when the item contains a banana peel