I’ve also always wanted to see something like this but with emoji for the “graphics.” (Emoji are, after all, the standard graphics resource pack of our era—like DOS box-drawing characters were for the 80s.) Maybe stick them as labels on a grid of buttons, resulting in a similar look to Chip’s Challenge.
I've spent the morning knocking up a little Space Invaders clone, it's the most fun I've had programming in ages. It's at https://incoherency.co.uk/24invaders/ and the logic is mostly done, just got some graphics work to do.
I got into programming as a teenager by making shitty games, first with Blitz Basic, and then with the Allegro C library.
My favourite parts of the Allegro community were the annual "speedhack" in which people create a game over a weekend, and the informal "screenhack" in which you create a game that must fit in 80x25 characters of C code. 24a2 brings back all the joy of those challenges for me.
All of my memories of Allegro mostly revolve around DJGPP. What an interesting piece of software that was.
I do think some very primitive sounds might be a good option. Don’t even use files. Just use the AudioContext and provide an enumeration of a couple beeps and boops. And I 100% support if the answer to this is “avoiding scope creep”
Anyway, it's in the README:
""24a2 can also run a function [...] when a dot is clicked on.""
So it would be pretty easy to make that.
You have to write more boilerplate, but at least you know what all that code is doing because the framework is so easy to understand. By contrast, a more heavyweight framework lets you wrote less boilerplate because there's a helper function for every situation, but then your application code is filled with lots of magical calls into the framework, so to understand your code you need to look at a different bit of the framework documentation for every line.
That's not to I say I think either is better or worse, just that those are the expected trade offs.
What games have you seen that you feel are too code heavy, written using this engine?
It isn't forcing you to do any extra work, it just saves you from having to worry about setting up a canvas, listening for input, or running a timer. That's literally all it does. And it gives you a neat aesthetic with the grid of dots.
Maybe with an additional array/matrix library it would be perfect.
One question: have you considered making it mobile friendly somehow? Given that all of the examples require arrow keys, it's a bit hard to demo on a phone.
Also misses bleeps. Beep boop