PDA

View Full Version : Bot Agression Level


WildcardX
05-26-2009, 09:49 PM
A thought I had was to create a "bot aggression" variable to help guide the bot ai, especially for certain types of bot classes. Right now, I would characterize bot behavior as "aggressive"; meaning when bots aren't healing or casting pets, they are nuking like newbz ":-) Imagine we create 3 aggression modes:

1. Low Aggression
2. Moderate Aggression
3. High Aggression (think meth addict...)

So a bot with "low aggression" would nuke until it's mana was <= 75%, then this bot would conserve it's mana and med (ideal for the "healer" in the group like a cleric, druid or shaman).

A bot with "medium aggression" would nuke until it's mana was <= 50% and a "high aggression" bot (our meth addict) would keep up with the nukes until out of mana. Obviously you need corresponding logic here to guide how long each of these bot's would meditate until before resuming their "aggression".

Perhaps you can combine this idea of "bot aggression" with implementing another concept, "bot duties". We all know that in a group there is a "healer", a "tank" and someone is usually assigned "snare duty". So say we also create a command where we can assign these "duties" to our bots. So if we give the command:

#bot group tank

That should set a "property" with the bot that other bots can check and take appropriate actions. For the "healer", it would mean this bot gets a priority heal. For DPS bot members, it means not to engage until the tank has caused 5% to 8% damage (thus earned good aggro) and maybe it can tell these other bots to not over aggro with spells like over nuking or casting root, etc.

The bot on snare duty would auto cast a a snare spell when the target was under 25% of it's hit points.

The bot on "heal duty" should lower it's aggression level to "low aggression" and conserve it's mana only for heal spells and buffs. perhaps we could add additional logic here to calculate the rate at which the group tank is losing hit points. If the ratio of lost hit points is low, then the bot ai can increase it's aggression level by one level so it's being as useful as possible.

Another idea I had was right now a bot corpse vanishes when a bot dies and it auto leaves the group, even though a battle continues. Why not let the bot create a corpse and allow the group to rez it? Given, if this group doesn't have a cleric then i can see where some players would scream in pain at this suggestion, but it would add another dimension to the game. So if the bot dies, say it leaves a corpse and the bot stays in the group. If the cleric casts rez on the corpse, then the bot comes back and loots it's corpse, begins to med or whatever. If instead the player zones or disbands the group, then the bot's corpse simply vanishes as it does now.

Lastly, and I know this is ambitious, but why not let bots accumulate experience points and aa points like a player does? We can add logic to help guide the bot spending these aa points and to add new spells to it's spell list (and why not let each bot have it's own spell list for that matter!).

I might implement some of these ideas so I'd like to hear everyone's thoughts.

Congdar
05-26-2009, 10:15 PM
#bot group tank

This already exists, see '#bot raid order maintank' and '#bot raid order secondtank' and in raid situations the ai gives them priority on heals.

..it means not to engage until the tank has caused 5% to 8% damage (thus earned good aggro) and maybe it can tell these other bots to not over aggro with spells like over nuking or casting root, etc.

Current ai does this for casters, but not melee.

There's certainly a lot things that can be done with the bots. The ai currently has several classes grouped into a single behavior (pure casters) and other classes grouped into a single behavior (melee). The only class that really has the most ai work done is the Cleric. I would like to see the ai get to the point where each class is handled separately. That would be cool.

WildcardX
05-26-2009, 10:23 PM
I see you can set a main tank for a raid, but you can't for a simple group. I guess the bigger picture I'm trying to paint is to assign general guides like "aggression level", "group role" to throttle bot behavior.

As for the "bot raid commands", i was just thinking how cool would it be if we could tie in the client's "leadership" commands to achieve the same thing bot commands do. I haven't done much with leadership points, but I believe you can use them to tell your raid on live who the raid main tank is, etc.