These sorts of games are incredibly fun to write in modern languages, especially if you are given a canvas and the ability to blit graphics around without much concern for memory usage or blit speed. I especially like the implementation of yours, and the code is nicely arranged and readable, and surprisingly, just a single file. The difficulty ramping could use a little tuning, it hews close to the relentless "you dead!" difficulty ramping of a 1980's console game. Maybe I've just gone soft in the intervening years. Overall, fun to play.
Obligatory self-promotion: https://justin-lloyd.com/ which is my C.V. site that includes a 1970's-era space invaders style game based on the portable Galaxy Invaders 1000 game.
"Invaders from 78" is written in Typescript, implements a small ECS framework, uses Pixi for canvas rendering, and is event driven. No audio because, well... it's a C.V. website. It also doesn't work on mobile because the audience numbers for mobile visitors to my C.V. website is near enough zero that it would be wasted effort. Please excuse any front-end sins I may have committed because I generally don't do front-end web dev.
The game is also included directly on the C.V./portfolio page, scroll down and to the right. Kind of like an Easter Egg that isn't too well hidden. The link you post I think is to a slightly older version of the game. It still works, it just might not work the same. I don't think the game at the link you posted uses the event framework. I wanted to understand how some of the Javascript event emitter frameworks worked. So there's the classic event/action invoker style, and then the event emitter style. I need to upload a newer version as well, that utilizes texture packing, effectively reducing the entire invaders game to just four files.
Obligatory self-promotion: https://justin-lloyd.com/ which is my C.V. site that includes a 1970's-era space invaders style game based on the portable Galaxy Invaders 1000 game.
https://github.com/JustinLloyd/invaders
"Invaders from 78" is written in Typescript, implements a small ECS framework, uses Pixi for canvas rendering, and is event driven. No audio because, well... it's a C.V. website. It also doesn't work on mobile because the audience numbers for mobile visitors to my C.V. website is near enough zero that it would be wasted effort. Please excuse any front-end sins I may have committed because I generally don't do front-end web dev.