16 Mar 2018

Block Runner

The original version of Block Runner.

Block Runner

Block Runner is a platformer game that I worked on in my free time while in middle school. It was written in a programming language/environment called DarkBASIC Pro, which is a BASIC style language with graphics commands, file I/O, and input functions supplied as commands. The game’s most important feature was its level editor. There were 18 kinds of blocks with unique behavior that could be used to make interesting levels. Players could compose levels and share them via copying and pasting generated level-sharing codes. I posted Block Runner on TheGameCreator’s forums, which was the forum used by DarkBASIC Pro developers, and a few people downloaded the project and had some good things to say. Some created and shared levels on the forum too.



Before I worked on Block Runner, there was a flash-based game I played called Block Action. I copied their art and most of their basic block types and then began creating my own. My version of the game, “Block Runner”, was really just a personal project to see if I could create such a game. The new block types I added were very different from the ones offered by Block Action and they played off of eachother surprisingly well. When people played my game, I made sure they knew it was a fan game varient of the real website’s game. I was pleased to have people interested in my work, but it felt weird, given that most of it wasn’t original. Nonetheless, Block Runner was a great learning experience.

As the project grew larger I began to see the limitations of DarkBASIC and started learning Java as a replacement. Block Runner’s code was all contained within a single file and it had no concept of object-oriented programming. DarkBASIC’s primary code structure was based on GOSUB, a command that basically jumps to another line of code while remembering the return line. As Block Runner reached and exceeded 3000 lines of code in a huge monolith of a source file, it became increasingly more time consuming to add new feautres, work out bugs, and create new block types. Having seen these limitations, I now have a great respect for code organization and just how much a good programming language can do to help.


You can find all of the original Dark BASIC code for this project on my github (here).
You may be able to download the game and run it yourself if you have Windows 10.