This week I’ve prepared the “Overworld Adventures” testbed, which will be use to test out behavior trees + utility AI.
Here’s a video:
The map is a pre-alpha visualisation of the overworld map (no tiles yet for environment, sorry). There is the hero sprite (centered), the dungeon tiles (stairs) and the cities (shop tile). The hero wanders in dungeons, tries to kill monsters to get coins, and then goes to the cities to spend coins to heal and buy equipment (which increases health and power). The battle is “hero attacks, if enemy not dead, enemy attacks” , where attacks do Nd6 damage, where N=power. When the hero dies, another is respawned. Heroes start with (power=5, health=50, coins=0) and dungeons contain one of four monster variants: (power=1/5/10/50, health=10/100/1000/10000, coins=power). I spawn 1000 dungeons and 100 cities, and new dungeons are spawned every several turns.
As explained above, the hero party is pretty dumb, so they get killed after a few dungeon runs, as they’ll encounter and try to tackle a difficult dungeon. The behavior tree is all specified and I’m currently about to add the utility AI logic.
Depending on how much time that takes, next step is even more exciting: a hunger clock! Cities will sell rations, coins can be spent on rations, walking the land costs rations, and decision need to be … rational, as when heroes run out of rations they die. I’ll implement some sort of score bookkeeping to see how the AI performs (aka how long it lasts before dying). Extra bits are proper pathfinding and visibility, as the hero currently knows all.