I used a game framework I made for myself that I use for a dozen different projects. It's written in Rust with all game logic written in AssemblyScript. I also have a library for managing state in a way that forces game rules to be completely divorced from UI, which I think keeps LLMs on the rails. It makes everything highly testable and prevents a certain type of ball of mud architecture that vibed apps tend to in my experience.
I should have mentioned that I think the bots are decent for the games I personally play - but they are probably bad for other games. In some cases the bots are purely heuristic based but in others they are informed by a small trained neural network or two. Hearts bots, for example, have two networks. One predicts what cards are in other players' hands, which is an easy network to train, and the other ingests that info alongside game state and chooses what to do, and was trained on self-play.
I used a game framework I made for myself that I use for a dozen different projects. It's written in Rust with all game logic written in AssemblyScript. I also have a library for managing state in a way that forces game rules to be completely divorced from UI, which I think keeps LLMs on the rails. It makes everything highly testable and prevents a certain type of ball of mud architecture that vibed apps tend to in my experience.
I should have mentioned that I think the bots are decent for the games I personally play - but they are probably bad for other games. In some cases the bots are purely heuristic based but in others they are informed by a small trained neural network or two. Hearts bots, for example, have two networks. One predicts what cards are in other players' hands, which is an easy network to train, and the other ingests that info alongside game state and chooses what to do, and was trained on self-play.