Enemy AI: Phase I

We’ve finished up all of our basic menu systems for the dungeon game state and it’s currently possible to progress from the top floor of a generated dungeon all the way to the bottom!

We can now recognize when a unit is next to a stairway tile and present the Exit action.

A basic placeholder stage clear menu tracks turn count and surviving party members.

Now we’re ready to start building the foundations for interactions between the player GuildKnights and the monsters that roam the dungeons.

GuildKnights is a turn-based game where each distinct “group” in the current dungeon is allowed to execute all of the actions for its members before the turn shifts over to the next available group.  Under normal circumstances, group turns flow in the following order:

  1. Player Party
  2. Dungeon Enemy Groups
  3. Player Ally Groups

AI Units on the dungeon map all belong to special AIGroups.  Each AIGroup has a behavior tree that governs turn order and, potentially, specific unit actions for the group’s members.  While Enemy AIGroups with active units remain, the Dungeon Manager will randomly select one of the groups to be the acting group during the Dungeon Enemy Groups phase.

An AIGroup behavior serves as the core for cooperative interactions between enemies within the same group.  In its simplest form, it will randomly select one of a group’s units and allow it to act on its own.  At the highest level, it can facilitate coordinated attacks where units with debilitating techniques can weaken opponents before the high-damage units attack.

Initially, we’ll be focusing on getting the basic AIGroup structure and random action order set up.  After that, we’ll be working on a simple AI behavior that will allow an enemy to path-find its way to a nearby player character.  Once that’s finished, I’ll be back to go into more detail on individual enemy AI as we dive into work on Idling, Tracking, and Fighting behavior trees.

Here’s wishing everyone a prosperous and productive new year!

2017-12-05T04:38:36-07:00December 29th, 2013|GuildKnights|

Leave A Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.