While building this I liked the idea that I can fan-out to any retro videogame console or handheld's specifications.
I then devised my own declarative language - Demotic - to express the game you want to build as concisely and naturally as possible without implementation detail. To work on different machines, you use relative units, like vw, vh, vmin, vmax.
It has a web UI, CLI and NPM package. Still a work in progress.
bensyverson•7m ago
Are there any device capability guards, so more capable systems within a tier (like SNES vs NES) could attempt more complex graphics, sounds or interactions? What works on the Game Boy is different enough from what's possible on the SNES that you may want some way to express that. Or to make it dynamic, like "make the number of enemies the number of supported sprites - 2"