top | item 44096980

(no title)

oofoe | 9 months 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

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).

discuss

order

No comments yet.