who ever though it was a good idea to have so many different ammo types that only work on 1 enemy with limited ammo supply is f****** retarded
– Reddit comment
At the end of the How to make a top-down shooter in JavaScript tutorial I challenged readers to expand on the game using the techniques they’d learned throughout the lessons. This is what I did with it.
This is a top-down survival shooter where you have to get through waves of progressively tougher bad-guys. Along the way, you can collect power-ups, summon ships to fight on your side, and sometimes you need to protect civilian ships from the enemies.
As the Reddit comment above points out, you have different ammo types that only work on certain enemies (they are colour-coded). It’s very difficult, and there’s a knack to it. While it’s not a puzzle game, you definitely need to “figure it out,” and the idea was to require some thought and skill, rather than be an out-and-out blast-’em-up.
The trick is to conserve ammo by ensuring you’re always using the right ammo for the enemy. So you could switch to blue ammo, and then hunt the blue enemies while just dodging the others. But some enemies move faster than you, and it can get hectic with many enemies on the screen, so at times it takes a lot of coordination to switch ammo types quickly, while still taking evasive action. But you can set traps for the enemies, and call for computer-controlled backup to fight on your side.
There didn’t seem to be much appetite for this game, but I was really making it just to learn JavaScript and Canvas, so I didn’t put a great deal of thought into the game mechanics. Some improvements that would really help would be to have lives, and extra-life power ups, and to have the enemies explode on impact with the player taking a little of your health as they go, rather than having them drain your health but not die.
Have a go: