Posted September 25, 2020 by ShortSideStudio
Bot AI – Hunter Pass 1
Programmer Dev Log 004
Over this past week I have been working very heavily on reworking Cybold's AI and improving it immensely. The Bot that you will see a quick few gifs of today is the first pass of the “Hunter Bot” a small fodder type drone that is used for keeping people in check, with their fast speed and over-all hit and run tactics.
The making of the AI: Originally in Cybold we planned to make things simple, to classify each character under a certain section of presets, Ranged, Melee, Special and Zerg. Each did pretty much what the name implies, Ranged hangs back and shoots at the player while Zerg rushes and does quick melee not caring for it's own life. Over the course of the release of the player Demo and the very thoughtful support, we have decided to kick it up a notch, so I set to work. Instead of each character fitting under this umbrella of AI, I would do what Destiny and Halo does and make tailored AI for each character. Now this is more work on me as the Programmer but I'm certain that this endeavor is very worth while for making the game's AI feel more alive and more responsive to the player and their actions. So you might be asking, how does this AI work? What does it do? What can it do? Well let me explain readers!
The Goal
of the Hunter: Over
the week I have created a specialized “Brain” for the Hunter, a thing
called a “Behavior Tree” which holds all of it's available tasks
and orders that it can receive from it's
“Stimulus”. For example, if the Hunter wants to engage the
player, it will first ping near by enemies to
make sure it has both of two things: a Leader to Confirm the Order,
AND make sure it has enough health
to engage into the combat. The
Hunter does not work alone, it will sometimes be paired with Leaders
that will give it orders,
and if the Hunter does not have a Leader it will default to different
actions. Meaning Players, your
actions will change how this AI will work and function!
The
Meat of it all: The
AI has many different actions that it can take, it has over 24 standard
tasks that it can take all with different variations and more complex
actions. Lets talk about a few
of these!
Cover:
Down
Below in a few gifs you can see the AI moving away and around the
player, ducking behind certain... areas away from the player. This is
the AI's ability to Find
and
Generate,
it's own cover.
Finding Cover:
In the world space me and Mithos will eventually make hand crafted
dungeons and
areas of which you will explore, move, and fight in. Now we will be
hand crafting each encounter for
you players, making sure it is do-able. Even with our game using
Random generation tech, we have our
ways to preplan their routes and combat routines.
Generate Cover: Now
sometimes you as players might actually stump us, try a strategy that screws
the AI over, so this system is in place for the AI to act without
preset cover points.
Uncovering:
In some situations the Player will take cover themselves, that in
itself is not
a bad thing! But we can't just let you sit there and heal up with
your armor kits, so the AI as shown below
will actually go to flush you out and prevent this, and you can see
the first few things about variations,
the AI will take a distance based on it's presets, for example here
the AI is low on health so it
wants to take a bit further distance from you compared to a full health one.
Repair:
Well, your not the only one to heal! So we have decided to add
another layer into
the game, Repair stations! Currently using temp textures this repair
tower will heal Bots that request
for it, the AI will flee from the player when it gets low enough
health or loses a limb, and take comfort
in the healing aura that it will generate. This
will shutdown the Drone as it heals, but both the Drone and the
Station will be covered in an
energy shield, so try to take out the Repair stations first! If you
let a Drone fully heal... well that might
be bad for you
Conclusion:
So
overall this is the first pass in the Hunter AI, over the next few
weeks I will be making
more improvements to it as time goes on but for this week's sprint it
has been a good week for programming.
I'm really excited to share more with you all as time goes on! Thank
you for reading and supporting Cybold!