Rational Monster Behavior (MMOs)
Jul. 30th, 2010 12:10 pmAs I recall World of Warcraft and other MMOs have fairly crude rules for determining whether monsters attack PCs. Most monsters will attack as soon as they enter the PCs threat area, this "threat area" being inversely proportional to the PCs level. This makes some sense, but it means monsters will still make Kamikaze runs against high-level PCs who run too close. It's stupid, and annoying for the player, too, who just wants to get to his high-level dungeon without fighting all the Murlocs in his way.
Here's one way I'd model monster behavior, if I could. (No idea if this would be impractical to program, take too much processor power, or what have you.) Assume PCs and monsters can be classified as "low aggression" and "high aggression." "Low aggression" creatures only attack out of fear or self-defense; they get no material advantage from killing. "High aggression" creatures, on the other hand, attack to get something from their victims (meat, money, XP, or whatever). Also assume, for the sake of argument, that higher level monsters always defeat low-level PCs, and lower-level monsters never defeat high-level PCs. (This isn't true, but it's a close enough approximation for the chart.) Given these assumptions, rational monster behavior would look like this:
(Sorry for the crude formatting. I'm too lazy to do HTML tables by hand, and I'm only willing to waste so much time cleaning up Word HTML for an LJ entry.) In this table, "Lower-Level" means the monster is weaker than the PC, "Higher-Level" means he's tougher. "Ignore," "Hide/Flee" and "Attack" indicate the monster's responses.
Now if you assume PCs are all "High-Aggression" then the monster's decisions are easy: They should attack weaker PCs, hide or flee from the stronger ones. This alone would make the game more interesting (it's hard farming creatures who flee at the sight of you), but I think it'd add another layer of interest if certain players can be perceived as less-aggressive. This would work especially well if players could advance through non-violent means.
Here's one way I'd model monster behavior, if I could. (No idea if this would be impractical to program, take too much processor power, or what have you.) Assume PCs and monsters can be classified as "low aggression" and "high aggression." "Low aggression" creatures only attack out of fear or self-defense; they get no material advantage from killing. "High aggression" creatures, on the other hand, attack to get something from their victims (meat, money, XP, or whatever). Also assume, for the sake of argument, that higher level monsters always defeat low-level PCs, and lower-level monsters never defeat high-level PCs. (This isn't true, but it's a close enough approximation for the chart.) Given these assumptions, rational monster behavior would look like this:
PC Aggression |
||||
Low |
High |
|||
Monster Aggression |
Low |
Lower-Level |
Ignore |
Hide/Flee |
Higher-Level |
Ignore |
Attack |
||
High |
Lower-Level |
Ignore |
Hide/Flee |
|
Higher-Level |
Attack |
Attack |
(Sorry for the crude formatting. I'm too lazy to do HTML tables by hand, and I'm only willing to waste so much time cleaning up Word HTML for an LJ entry.) In this table, "Lower-Level" means the monster is weaker than the PC, "Higher-Level" means he's tougher. "Ignore," "Hide/Flee" and "Attack" indicate the monster's responses.
Now if you assume PCs are all "High-Aggression" then the monster's decisions are easy: They should attack weaker PCs, hide or flee from the stronger ones. This alone would make the game more interesting (it's hard farming creatures who flee at the sight of you), but I think it'd add another layer of interest if certain players can be perceived as less-aggressive. This would work especially well if players could advance through non-violent means.