BITMASH is a game jam-style game that was conceived and initially developed in about four hours, with all game features implemented in about 12 hours. After that, I took more time to develop multiple level concepts using the basic engine; this phase exceeded the amount of time one would normally have during a game jam, but I was not strictly holding myself to any specific time limit, it was more of a mindset.

The above image is taken from an actual playable level of the game during development; the basic concept borrows from Sean Howard’s White Noise as well as something I implemented during OpenGNOP’s development.


The above image shows how the computer paddle was predicting the ball would travel; each point in the ball’s travel was assigned a different, random color. This, combined with the idea behind White Noise, gave me the idea of a game comprised almost entirely of randomly-generated and shifting squares, which would only make sense in motion. Here’s the same level as shown above, in motion.


You may notice two 3×3 squares that shift faster than their surroundings in the center play space; one represents the player, and the other represents the goal. Completing this level merely requires the two squares to touch. This was one of the earliest examples of a game scenario that is completely obfuscated in a static image but apparent in motion.

In keeping with the game jam aesthetic, BITMASH is open-source, and all of the code for Bitmash is contained in this GitHub repository. The full game will likely be made available for Windows and Flash, the latter via sites such as Kongregate, Newgrounds, and GameJolt.

Follow me on Twitter for the latest info on this and other game projects. All GIFs in this post were created using GifCam, which is a must-have program for indie game devs. BITMASH is written in Haxe and uses the OpenFL library. Let me know if you have any questions about this project via the comments below, or feel free to contact me!

Leave a Reply

Your email address will not be published. Required fields are marked *