3 ms·
I'm pretty far into a project to create a Typescript framework for turn and tile-based (think roguelikes) client/server games: https://github.com/chaos-framewor
by and0 5y ago
I'm pretty far into a project to create a Typescript framework for turn and tile-based (think roguelikes) client/server games: https://github.com/chaos-framework https://github.com/chaos-framework. Mix of entity-component and event-driven design (inspired by Brian Bucklew https://www.youtube.com/watch?v=U03XXzcThGU https://www.youtube.com/watch?v=U03XXzcThGU and Thomas Biksup https://www.youtube.com/watch?v=fGLJC5UY2o4 https://www.youtube.com/watch?v=fGLJC5UY2o4, though looking now I'm surprised I landed on a similar but imo more robust event system as I was only looking at EC pattern at the time). Typescript means entity factories and their components can be fully written in the language rather than XML per the videos above, and people can for example distribute a package that is basically DnD5e or Pathfinder rulesets, custom world generators, or anything else to be plugged into a published game.
Typical Minecraft "infinite" world data structure, handles binding up event system to component listeners automatically, (will soon) handles serialization, listeners are async generators ala Redux Saga for neat inversion of control and advanced patterns as needed. It doesn't have any specific frontends or clients (APIs and react hooks+utils exist but not super advanced yet, and a small WebGL renderer + react component), it's more a collection of objects that recursively process state updates in response to a user input until it finishes (like a classic console roguelike), and produce a serialized stream of events clients of any kind can listen to, completely agnostic to how any client may choose to represent it, so you could easily make a DM interface vs an interface for players connected to the same server, but it's also not something like Unity that is an all-in-one engine that's ready to publish (unless a proper ecosystem gets fleshed out). It's been a joy to architect and program in, and excited to someday publish it and document it (I haven't updated the examples I've written for the new saga-based event system so it'll probably all be gibberish to an outsider still).
Not going to lie, my heart skipped a beat at the headline.. It's selfish but would hate for someone to publish something that covers a lot of the same ground. Sometimes I think to look around again and stop myself.