3 ms·
I am also interested in languages to model board games, and I think your biggest mistake might be in relying too heavily on imperative programming models for a
by Scaevolus 6y ago
I am also interested in languages to model board games, and I think your biggest mistake might be in relying too heavily on imperative programming models for a domain that doesn't require them.
Have you tried converting games to your language, or read other literature on codifying game rules? It's much more popular to use declarative or logic based designs to state how a game can evolve. General Game Playing competitions, where the goal is to write AIs that can compete at _any_ game, use a Datalog variant to declare their rules. Extensions of this enable modeling complex games like Dominion (https://ojs.aaai.org/index.php/AIIDE/article/view/12669/12517 https://ojs.aaai.org/index.php/AIIDE/article/view/12669/1251...).
Pattern matching is another promising way to model and rapidly prototype games, with the most approachable version probably being PuzzleScript.
- mathgladiator 6y agoI look at the imperative programming model as the escape hatch, and I'm focusing first on data. My next step is to build UIs and look into AI. For instance, I've build the entire back-end for Battlestar Galactica ( https://boardgamegeek.com/boardgame/37111/battlestar-galactica-board-game https://boardgamegeek.com/boardgame/37111/battlestar-galacti... ). I can't release a product around this as the IP is not mine, but it is a good foil. I play a bunch of games, and it's hard to boil down every game into a concrete set of rules. So, my strategy relies first on getting (1) data synchronization, (2) privacy, (3) multi-user transaction flow , and (4) durability of state on solid ground. Once the foundation is good, and the foundation can grow into other domains (like converting Excel worksheets into web apps) then I can ask what models, idioms, and ideas do I want to layer on top of it. The hard part, it turns out, after the back-end works is getting a usable UI. This is my current focus, and I hope to have results sometime this year with my silly approach.