Posted October 19, 2023 by Jummit
#jam
For the Autumn Lisp Game Jam 2023, having recently made a real-life version, I decided to implement Rai-Net Access Battlers from Steins;Gate. (Check it out if you haven’t, it’s amazing.) I used this fangame for research.
I’m pretty comfortable using TIC-80, and since it has Fennel support, it’s perfect for a Lisp game jam.
I’m going to write the code in Helix, currently my go-to editor.
For my VCS, I’ll use good ol’ Git.
Most of my new projects adhere to the REUSE specification. Check out https://reuse.software for more info.
I started prototyping a simple ECS setup, and this is what I came up with:
(local systems [])
(var entities [])
(fn _G.TIC []
(cls 14)
(each [_ system (ipairs systems)]
(set entities (or (system entities) entities))))
Entities are just tables, where keys are the “components”.
Systems take the world, iterate over entities and optionally return a new world.
Example system and entity:
(fn text [entities]
(each [_ entity (ipairs entities)]
(case entity
{: text : x : y}
(print text x y))))
(local systems [text])
(var entities [{:text "HELLO WORLD!" :x 84 :y 84}])
That’s it for the preparations. Hopefully I can finish something playable in time!
El. Psy. Kongroo.