JS13k 2022 Game jam post-mortem #JS13k

Full play through of the game (https://js13kgames.com/entries/soul-jumper):

My fourth JS13k gamejam and fairly happy with how it has played out. Previous entries have been platformer, topdown / idle and a topdown shooter:

1. https://js13kgames.com/entries/quick-wins
2. https://js13kgames.com/entries/in-to-net-cafe
3. https://js13kgames.com/entries/space-kitty

I had no idea what I would make this time around, preferably I’d like to try new genres but when I heard the theme was death was keen to make a platformer where everything is out to kill you, similar to the speed run “Unfair Death” games that are popular on Youtube. I started out by cleaning out my last entry code until I had a workable template.

This is not an indepth look into any clever code or challenges I faced, more of a short look at how the game progressed. This year I had very little time to work on the game, only 88 commits were made to the repo, most days I would be lucky to find 2 hours spare to work on the game.

I had feedback on previous games which I wanted to address this year including screen size and coyote jumping (some grace time before graivity kicks in); I have been trying to improve the game and hopefully my postion each comp:

While I was setting up the basic concept and controls etc I thought it would be interesting to use a rewind feature and use your death as a platform; while many games use the body I’d not seen the ability to rewind; kind of like braile. At this point I gave up on the idea of lots of ways to die and focused on the rewind feature:

My first go at this tracked all the co-ordinates; far too many! I limited this to 10 steps eventually and also only tracked the postion every few ticks rather than 60 times per second.

Early on I put some effort into simple effects:

– Screen shake
– Blood splater when you die
– Blood drips on spikes if you hit them
– Dust from the hero when you run or hit the ground after a long fall
– Multi coloured explosions when you beat a level

These small details add a lot of feeling to a game, without feedback on jumping, falling or hitting objects a game lacks excitment or fun!

The level size was quite small, to allow larger levels I added a camera to allow the hero, added a little lerp so the movement was smooth. This is another feature that many games seem to lack, the character moves around a stand level which is less fun, movement is key to a fun platformer in my opinion.

Spinning character – I wanted to work out how to rotate spikes to save on sprites, they appear on walls, the floor and ceiling; I started by adding a few degrees to the hero every frame of the game to be sure it rotated around the centre point. Once I worked out how to do this correctly Id been playing the game with the spinning hero and thought it looked great and saved on animating!

If you stay idle for a while your character spins, I did have add in a jump at one point but it was possible to die!

After putting all the extra tiles; traps and features into place I was short of time and did not have enough hours to make sure the levels were well thought out, the current 10 only take 2-5 minutes to complete and are not too difficult. This is the area I would like to improve next year, more effort into the menu, add controller support and carefully design the levels. To give myself some credit the first few levels are teaching the player the basics, tool tips whcih you can turn off help you understand the controls.

Before the next JS13k jam I plan on spending time making a smaller and cleaner template with controller support and a better implemenation of full screen, also I will put more time into a fully working mobile version of the game.

See you in 2023!

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 )

Twitter picture

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

Facebook photo

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

Connecting to %s