For the past several years, I've been tinkering on and off with something that might be called a "game engine", except there's not enough of it. More of a "conceptual framework", or maybe "organizing principle". Basically, I cut the idea of the Entity-Component-System down to the bare minimum and provide some structure and queries.
It's fairly free form, so you can do almost anything you want, but still structured and "legible" for computers and the person debugging it. I wrote it in a Lisp that compiles to JavaScript, but there's no reason you couldn't implement it in any language that supports associative arrays -- idea is that the language has most of what we want, just need to organize it a little. I think the idea is useful enough, that it's potentially useful for more than "just" games.
Recently used it for a Lisp Game Jam entry, which someone described as "Helltaker meets the Magic School Bus": https://oofoe.itch.io/class6
About 800 SLOC, compiles down to just under a hundred lines of JavaScript. This includes the utilities, the "engine" (keyboard handling, overlays, text and art composition, animation, sound effects, etc.) and the game logic itself (which includes a level editor).
Here's a presentation, includes examples: https://hg.sr.ht/~oofoe/candheat/raw/dox/intro.pdf?rev=tip
It's fairly free form, so you can do almost anything you want, but still structured and "legible" for computers and the person debugging it. I wrote it in a Lisp that compiles to JavaScript, but there's no reason you couldn't implement it in any language that supports associative arrays -- idea is that the language has most of what we want, just need to organize it a little. I think the idea is useful enough, that it's potentially useful for more than "just" games.
Repo with several more-or-less worked examples: https://hg.sr.ht/~oofoe/candheat
Recently used it for a Lisp Game Jam entry, which someone described as "Helltaker meets the Magic School Bus": https://oofoe.itch.io/class6
About 800 SLOC, compiles down to just under a hundred lines of JavaScript. This includes the utilities, the "engine" (keyboard handling, overlays, text and art composition, animation, sound effects, etc.) and the game logic itself (which includes a level editor).