I implemented collision detection. It's the first time I've used my spatial hash code in a game-jam. I think it went well, and it certainly works well, but I discovered a few clunky parts of the API when using it. Firstly, it expects all the positions to be vectors of [x y]. Yet in the game you inevitably don't have that, you have a vec2 (part of the google closure library), which is a JavaScript object. So every time I work with the position I'm going (vec2/as-vector pos). This has to be introducing unnecessary slow down too, as every tracked object is updated every single frame. As always with game-jams, that'll do for now, as after the jam I can refactor the code to be cleaner.
I had to implement a quick explosion which I just outlined. It's a technique I discovered in a past game-jam. That is, don't flesh out any of the graphics until the last hours of the game-jam. Just do quick outlines to use as place-holder art and get back to the game. This is for a few reasons. Firstly, I'd done too many game-jams where you spend all this time making assets you just don't end up using. And that time ends up wasted. And in jams time is the most precious thing of all. So by just doing outlines, and then immediately placing the asset in the game, you keep moving. Then at the end you know exactly how much work needs to be done.
The other reason comes from an audio mixing book called Mixing With Your Mind, by Michael Paul Stavrou. One of the tips in the book is to avoid left brain/right brain context switches. There's a whole bunch of stuff you do when recording music that is technical, like laying cables and setting up microphones and connecting and troubleshooting equipment and so on. These are all logical tasks that exercise the left-brain. Then there are a whole bunch of tasks that are creative and right-brain, like balancing a mix, choosing effects and plugins and tweaking settings etc. If you keep context switching between the two, you do a poorer job of both sets of tasks.
However if you group all the left brain tasks together, and group all the right brain tasks together, it allows you to get more into a flow in each endeavour and you get better outcomes. So I extended this idea to game-jams. When you are doing logic and code you want to try and stay in the code and not be drawn out to more creative artistic pursuits. And when you are being artistic you don't want to be drawn back into the code. By using place-holder art (and place-holder sounds) you can quickly return to the code before the 'context switch' sets in. And then at the end of the game-jam you can spend a bunch of time getting into flow around the art and sound.
I haven't got the death and losing a life, then restarting the game loop done yet. That will be next. For now, when you die, you have to reload in your browser to start again. After that I will setup the level progressions. I'll aim to get all of this done before adding more enemies and variety to the game.
So have some fun and play the game as it presently stands. It plays best with a gamepad controller, so after the page is loaded just plugin your USB game controller and go from there!