JS13k 2021 Game Jam #JS13k

I spend my days managing a development team, dealing with projects, strategy, policy, security, operational issues and sometimes some development; so when JS13k comes along I like to just play with pixel art and Javascript, make it up as I go and see where I end up. The jam always brings some stress through running out of bytes or time but for the most part I can just have fun and follow other jammers on Twitter and Slack.

From the 2020 jam I had some code as a starting point and the script to minimise the classes, to save some time I stripped out all the game code and used this as a base. This blog post will be a short walk through my month of development with some gifs, nothing too in depth nor ground breaking compared with other entries.

I had several ideas early on all to do with SPACE of course but nothing I got excited about, I have been following https://twitter.com/orangepascal for sometime and did fancy making a top down shooter but more like Nuclear Throne than a turn based game.

After clearing up the game code and implementing a simple 2D array of tiles I started randomising rocks to give the levels at least some personality.

I had a basic list of objectives from day one and slowly worked through them, added the hero and allowed them to move around within the boundaries of the level, to keep things simple there is no moving camera and the level fills the canvas. Added a 3×3 array of rooms, like many shooters the room is locked until you kill all the mobs, this then opens up the doors for you to move on. Added a simple screen transition when the hero switches rooms and animated the doors so its obvious its possinle to move on.

Had a few issues with the old code, the mouse to map possition was incorrect, I had left some magic numbers behind rather than properly calculating the mouse position, lost some time working out why this was wrong and also went through collision code to check I had not incorrectly added hitboxes etc, when you are casually coding its so easy to make silly mistakes.

At this point I has a 3×3 map, animated doors, shooting, enemies that could be killed, breakable objects the game was progressing well, I always expect the game to form and become fun right at the end. I wanted to add a few types of shooting patterns, single, double, triple and so on, had a play about with Javascript on JSFiddle to work out the best way to achive this and be sure the math worked:

Up until now the enemies had been static, I did not really want to implement path finding; the enemies instead try to move toward the X and Y of the hero but if they are colliding with an object will try to move around it was a few seconds:

There were plenty of bugs throughout the jam but sadly this was about as entertaining as it got!

With around a week left I worked on a splash screen, adding some simple sounds and tried out the built in voice functionality. I played with randomising more parts of the game, the bullet colours, background colours of the level, the speed of the enemies and how fast their bullets travelled. The number of mobs per room is random and increases as you beat levels, a level consists of clearing all 9 rooms and then using the portal to move on, after beating 5 level you get a basic boss level which is just a room full of mobs.

To conclude, I enjoyed the month of developing Space Kitty, in the last few days I feel the game did become fun, I am super happy with the top 30 finish! I had some really good feedback which I will take into the next jam, better sounds and some background music, full screen mode, make it obvious that pickups can be collected – I saw some footage of people not collecting ammo and being frustrated, a melee attack would have been a good idea.

I look forward to the next jam! Thanks