8 ms·
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 "conc
by oofoe 1y ago
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.
Here's a presentation, includes examples: https://hg.sr.ht/~oofoe/candheat/raw/dox/intro.pdf?rev=tip 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 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 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).