-
-
Puter.js
Puter.js - The Backend for AI-Generated Apps. One-shot full-stack apps with your existing AI coding tool. Puter.js gives you Auth, Storage, DB, AI & more, with up to 90% fewer AI tokens than other backend platforms.
-
I've seen this engine before and thought it was really cool!
I've been playing around with writing my own turn-based game engine with TypeScript: https://github.com/snowbillr/turn-based-game-engine
It's a WIP still, but what's really been the struggle for me is coming up with a data structure and traversal algorithm for the turn order. I wanted that to be extremely configurable by whoever uses the library.
What I ended up with was essentially a tree that's traversed depth-first to enter each node, and then goes back up the same traversal path until a sibling node is found to dive into.
That lets the user define rounds/turns/phases as children of each other in whatever shape they want.
It's been a real fun project!
-
https://hearthsim.info/hsreplay/
Incidentally the UI we wrote for hearthstone replays is a react app. It’s funny because looking back it was the first time I used react and typescript, and both were not at all adopted by the js community yet at the time.
https://github.com/hearthsim/joust
-
barrage
Discontinued [GET https://api.github.com/repos/sjrd/barrage: 404 - Not Found // See: https://docs.github.com/rest/repos/repos#get-a-repository] (by sjrd)
The way I did this was to design a more-or-less monadic container `Result` for all my game logic functions. It batches a sequence of animation steps with a result. It can also model error conditions (like not having enough resources for example). I can then instantiate it any concrete result type, such as a full game state or just the result of individual computations. It was very nice to concisely write complicated game logic with animations while retaining the happy path.
https://github.com/sjrd/barrage/blob/main/src/main/scala/be/...