Let's start with a screenshot of the recent game prototype:
The testbed for the goon's AI.
Even though it's only 2D, there's a lot going on to let the goons walk around the map on their own. Handling their normal way is easy enough, it is just looking ahead 2m and then decide what to do next (mostly broken up into multiple random chances).
If the goon sees a door, it is set as next target and he start walking into that direction (although there's a check every now and then to see if the player can be shot). After he reaches the door there aresome things to decide:
Doors are easy.
- Have we reached the max number of steps (90% chance of using the door to exit the stage)
- if not, there's 10% chance of an early exit
- ... and a 5% chance of turnung around
- otherwise pick the next target
Elevators on the other hand trigger a lot more possible actions (heavily simplified):
When the goon is finally in the elevator there are still a lot of things to check:
- Is the elevator on the same floor? (and is it empty?)
- Enter, pass or turn around
- is the elevator coming towards our floor (90% waiting for it)
- are we heading towards the player's floor? (keep going until we reach him)
- no? (chance of riding another floor or exiting the elevator)
- are we at the top or the bottom (90% chance of getting off, but which way?)
Here's an image of an early draft for the goon AI:
And the first playmaker based version (I since moved that over to code)
The code version is in a way easier to maintain than the playmaker version, but also less easy to track when you want to know what's going on.
And with this, I need to get back to the goons ...