JS13k Game Jam – Post Mortom #gamedev #js13k

For 30 days I took part in a JavaScript gamejam hosted by http://js13kgames.com

Js13kGames is a JavaScript coding competition for HTML5 Game Developers. The fun part of the compo is the file size limit set to 13 kilobytes. The competition started at 13:00 CEST, 13th August and ended at 13:00 CEST, 13th September 2019. Theme for 2019 was back.

View my entry here: https://js13kgames.com/entries/quick-wins

Decided on a gameboy style platformer, simple levels whereby you collect coins to open a portal which leads to the next level. Got the basics in place quite quickly, standard entity, camera, hero and tile classes.

With the basics in place I started implementing some levels and refactoring code, with very little space early on aiming to keep the byte count down.

I played around with several different types of blocks which reacted in different ways, ice blocks that melted that you moved down with but this spoiled being able to run over several of the blocks, these later changed to blocks that melt but dont move the player downward.

The colour scheme I had gone with was pretty boring but determined to keep it simpe I search the web for some inspiration.

Escalators seems like a neat way to control the players movement and would allow for some interesting levels.

Ladders were quite a challenge to put into the game but an essential part of any platformer.

Walls are solid and cannot be passed through but platforms can be jumped through, a simple test of the heros Y position against the platform Y position was used to check if a collision with the tile should be checked. Quite a simpe solution to what seemed complex at first.

Added in some dust affects to give some feedback to the players movement and a simple transition between levels. At this point the code did start to get messy, with 30 days of coding it would have been better to build some systems or a simple state machine rather than dealing with many IF statements, before taking part in the next Jam creating a basic engine would be really worth while.


Originally I had planned to implement a Git menu, the idea behind this was playing a level and commiting the time taken to a branch or reseting, going back and retrying. The game would be about progressing once you had enough time to do so. This menu was a pain and was removed for something much simpler.

Early on I had time to work on features, test out colour schemes and mess with the UI, but later only being able to work the odd hour each evening I was running out of time, I dropped many ideas and polish to finish the menus and build levels. The game code did get messy and hard to work with which often lost me time.

Ther hero was always going to be updated to pixel art but as it reminded Lee of the Github contributor square, I left it as is:

I enjoyed the jam, having plenty of time was great but the keeping the game within 13kb compressed meant minifying to code and really limiting the sounds and graphics. Looking at other entries I could have added much more polish and tighened up the movement of the player. The music that was created by ModalModule really added to the quality of the game, I spent hours listening while testing the game.

The levels were put together very quickly and while there are a good number of them more time should have gone into testing them, a few more enemy and tile types could have made the levels more enjoyable, I probably didnt explore the use of the different tile types enough.

I used some of of Xem’s tools, a level and sound editor to help produce the game, there are so many talented coders taking part in the jam who are all really helpful and were often in the Jams Slack channels advising or just having a chat.

Over all a great jam, I am enjoying voting at the moment and look forward to seeing how I did!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s