Improving AI of MMORPG Raids

Started by
22 comments, last by wodinoneeye 11 years, 1 month ago
I'm kind of new on this forum so maybe this is something that has been discussed before. I'm no expert in AI or even novice for that matter, however I've been working as a programmer for 5+ years in systems non related to gaming. Gaming has always been an interest of mine and I'd like to start a discussion about AI and MMO raids. I'm not sure how these raid encounters are programmed in current MMOs however I assume that most encounters are just scripted events with minimal AI. I'd like to know the difficulties of implementing a better AI system for boss encounters. Based on my experience playing games I've noticed that with time almost every encounter once defeated becomes increasingly easier each attempt. This is expected as the players are going to be better each attempt and with practice they will have the script timing and execution down to a science. I'd like to discuss the difficulties of creating a better AI system for raid encounters. My goal isn't to make the encounters more difficult but less predictable without just making the entire encounter based on a random dice roll.

Some simple ideas are:

1. Boss stops using abilities that are not effective. For example, if 80% of the players have a large resistance to ice abilities then change to a different ability. This may take a few tries to come to the conclusion that the ability is not being affective but once that decision is made the strategy should be changed.
2. When players run to a specific location to block line of sight why doesn't the boss position himself in the optimal location in the room to affect as many players as possible. Positioning is a big factor in current MMO raids. Why is it that the boss is so willing to move around if it puts him at a disadvantage. Having him fight at different locations in the room could easily increase the sense of a better AI.
3. If a player is low on health why not switch targets to kill the player who is low? Maybe this is too powerful or maybe it could only be used for players that are inside his vision.
4. Maybe even learning from previous battles how he was defeated and changing some of the encounter to counter the strategies of players. I'm not sure that all these AI changes need to take place in real time but the idea is that no two encounters are the same.

Is this possible or will players eventually figure out every combination and it just becomes a more complicated encounter script with more possibilities?
Advertisement
I think the predictability is there for a reason made by designers, rather than the inability to program convincing AI.

It also depends on what kind of structure you're having for your game. If we're taking World of Warcraft as an example where you have 3 roles: The tank, the healer and the DPS, the most logical A.I. choice for a boss is survival, so if I would make the A.I. for a boss, I would let the boss be aware of why this one person (the tank, the one who is taking most/all of the damage) doesn't die and why is everyone back to full health after a powerful attack? It's that healer, let's focus on killing that! No heals means players going down, results in victorious boss!

In this specific case, the whole structure on which the game is based is destroyed by a boss that only figured out that there is someone healing, making it very hard, near to impossible, to down this boss. So in this example it's not feasible to let the boss be aware of the roles.

Let's take your first example in a general case. Assuming that a boss is learning to adapt his spells related to the resistance of the players. In general if a game has some sort of resistance stats, it's either a general resistance to a school of damage (physical, magic, ranged), or to a specific school of magic(fire, ice, lighting). Could be different ones,but let's keep it to this. Now the boss is learning his fire attacks have no use so he switches to lighting after a while. This is all fine and dandy, but ineffective. Players will (or should) be able to notice the switch and anticipate their gear on it. Should their be an "infinite" amount of schools the boss can switch to, an encounter would become too unpredictable and players will die because they will never be able to anticipate the course of action and the boss will find out the lowest form of resistance and keep on using that, making the encounter near to impossible. Resistance is a vital part of the battle, you can argue that even with the lowest of resistance, you should be able to survive, but having resistance in the first place would then be useless, as the player will know it and will take the lowest anyway.

So yeah, looking at different MMOs, the A.I. of bosses is mostly based on the general gameplay of the entire game (exceptions are there probably) and balancing out A.I. Changes is probably too difficult to do effectively. Complete randomness would be to unpredictable for players to anticipate on depending on how the game is played. Learning A.I. might become predictable again after a while as there is only so much you can do without it making to random, rendering the complicated A.I. useless over time.

All of this is of course depended on how you structure your game, the more versatile your game is, the more versatile you can make your boss encounters, but that is, in my opinion, still a design choice rather than the inability to program convincing A.I.
I think that this topic is more suitable for the game design forum.smile.png



1. Boss stops using abilities that are not effective. For example, if 80% of the players have a large resistance to ice abilities then change to a different ability. This may take a few tries to come to the conclusion that the ability is not being affective but once that decision is made the strategy should be changed.
2. When players run to a specific location to block line of sight why doesn't the boss position himself in the optimal location in the room to affect as many players as possible. Positioning is a big factor in current MMO raids. Why is it that the boss is so willing to move around if it puts him at a disadvantage. Having him fight at different locations in the room could easily increase the sense of a better AI.
3. If a player is low on health why not switch targets to kill the player who is low? Maybe this is too powerful or maybe it could only be used for players that are inside his vision.
4. Maybe even learning from previous battles how he was defeated and changing some of the encounter to counter the strategies of players. I'm not sure that all these AI changes need to take place in real time but the idea is that no two encounters are the same.

In short: you don't want perfect AI

In long: the goal of a game should be to make the game interesting and challenging to the player. That is, if the player almost died to defeat a boss is much more satisfying than kill the player instead to give him a learning session. If you make the boss too clever, it will just wip the raid for what ? For the ego of the developer ? The trick is to give the players the feeling that they are immersed in a hard fight and to be honest, classic AI is just a little, almost unimportant, part in such a play.

I call it classic, because in my opinion, the AI-director of L4D is heading in the right direction. It makes a repeating game experience more challenging and interesting while keeping a relative constant difficulty for the player.
Ugh... I gave an entire lecture on this at GDC Austin in 2009. Wish I had the time to go into it but I'm currently catching my flight from a full 4 days of Indiecade straight to a full week of GDC Online (ex-Austin). Suffice to say there are plenty of places where MMO AI can be changed -- and some companies are in the process of doing so (not necessarily released yet). However, there is a sort of mystique about some things. One of the major comments about my proposals in 2009 was "but that will break Tank-Healer-DPS!" To which I replied, "so?"

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"


Ugh... I gave an entire lecture on this at GDC Austin in 2009. Wish I had the time to go into it but I'm currently catching my flight from a full 4 days of Indiecade straight to a full week of GDC Online (ex-Austin). Suffice to say there are plenty of places where MMO AI can be changed -- and some companies are in the process of doing so (not necessarily released yet). However, there is a sort of mystique about some things. One of the major comments about my proposals in 2009 was "but that will break Tank-Healer-DPS!" To which I replied, "so?"


That sounds incredibly interesting. Please return here once you've rested from your trip smile.png
[edit] I think I found the slides from the talk Dave mentioned, for anyone also interested.

Ugh... I gave an entire lecture on this at GDC Austin in 2009. Wish I had the time to go into it but I'm currently catching my flight from a full 4 days of Indiecade straight to a full week of GDC Online (ex-Austin). Suffice to say there are plenty of places where MMO AI can be changed -- and some companies are in the process of doing so (not necessarily released yet). However, there is a sort of mystique about some things. One of the major comments about my proposals in 2009 was "but that will break Tank-Healer-DPS!" To which I replied, "so?"


I just went through the slides and I'd like to go through them a little more when i'm not at work. Your points about the currently problem accurately reflect the current market for MMOs. I'd be very excited to see some of this implemented in a new MMO I'm tired of just figuring out a script. Don't get me wrong its still fun, but it gets boring playing the same script after the first few times you do it. Encounters should remain a challenge even after the first time you figure out the script.

I think its perfectly reasonable to remove the Tank-Healer-DPS but personally i'm a pretty big fan of it. I think the healers and dps can remain unaffected. What ruins the whole AI is that the tanks have Taunts and other abilities that artificially add agro for nothing. Please, someone tell me why the boss should be attacking the tank, its not logically at all. The tanks should be trying to protect healers and create barriers and slow down bosses so people can run away. Their job is to protect healers and DPS but not necessarily by taking damage even though that could come into play a little.

An intercept ability is a good example, the boss attacks healer 1 and the tank realizes they're gunning for him so they attempt to intercept the damage by placing themselves between the boss and healers.

Like the above examples, spells in the current state of the game are based on targets, but why should a spell go through 2 people and hit someone behind? Can't a tank use his shield to reflect or absorb the damage if he is correctly positioned in front of the DPS or healer that the boss has targeted?

Something I think you focused on a lot Dave was formation and the bosses working as a team. This is a good idea as well, part of the problem with current raids is that we have 10-25 people vs 1. The boss if all alone needs to be extremely powerful to even stand a fighting chance. In essence this is what causes the tank roll, nobody can take these huge hits but the tank. Without the huge hits the boss would never be able to kill anyone. Lets say that we had a fight 10 players vs 10 npc where the NPCs were working together just like the players. WoW tried this in WotLK I thought it worked out pretty well thought it could have been improved since the NPCs were not working together and the taunts still worked (at least temporarily).

Anyways I think that these responses answer my original question, its not a matter of computers not being able to perform this kind of AI real time in a game, its a matter of a game design that doesn't allow for this kind of AI in its current state.


I think its perfectly reasonable to remove the Tank-Healer-DPS but personally i'm a pretty big fan of it. I think the healers and dps can remain unaffected. What ruins the whole AI is that the tanks have Taunts and other abilities that artificially add agro for nothing. Please, someone tell me why the boss should be attacking the tank, its not logically at all. The tanks should be trying to protect healers and create barriers and slow down bosses so people can run away. Their job is to protect healers and DPS but not necessarily by taking damage even though that could come into play a little.

An intercept ability is a good example, the boss attacks healer 1 and the tank realizes they're gunning for him so they attempt to intercept the damage by placing themselves between the boss and healers.

Like the above examples, spells in the current state of the game are based on targets, but why should a spell go through 2 people and hit someone behind? Can't a tank use his shield to reflect or absorb the damage if he is correctly positioned in front of the DPS or healer that the boss has targeted?

Something I think you focused on a lot Dave was formation and the bosses working as a team. This is a good idea as well, part of the problem with current raids is that we have 10-25 people vs 1. The boss if all alone needs to be extremely powerful to even stand a fighting chance. In essence this is what causes the tank roll, nobody can take these huge hits but the tank. Without the huge hits the boss would never be able to kill anyone. Lets say that we had a fight 10 players vs 10 npc where the NPCs were working together just like the players. WoW tried this in WotLK I thought it worked out pretty well thought it could have been improved since the NPCs were not working together and the taunts still worked (at least temporarily).

Anyways I think that these responses answer my original question, its not a matter of computers not being able to perform this kind of AI real time in a game, its a matter of a game design that doesn't allow for this kind of AI in its current state.


Most of the current ways things are done in MMOs are to overcome obstacles involving latency. Your ideas on positioning (intercepting attackers, physically blocking attacks, etc...) are of course good ideas, but they tend to fall apart in a simulation where oft-times large latency is present, which is pretty much every MMO. Everyone who has played with huge ping times is familiar with rubber-banding and other occurrences, and these issues are only aggravated by the requirement of precise positioning. A raid wiping because they failed the script is one thing, but a raid wiping due to latency issues on the tank's part is a whole different ball of wax, one that annoys the piss out of the players when it happens. With tight timing and positional requirements plus latency, this type of wiping would likely become the rule rather than the occasional occurrence.

[quote name='bwight' timestamp='1349798317' post='4988392']
I think its perfectly reasonable to remove the Tank-Healer-DPS but personally i'm a pretty big fan of it. I think the healers and dps can remain unaffected. What ruins the whole AI is that the tanks have Taunts and other abilities that artificially add agro for nothing. Please, someone tell me why the boss should be attacking the tank, its not logically at all. The tanks should be trying to protect healers and create barriers and slow down bosses so people can run away. Their job is to protect healers and DPS but not necessarily by taking damage even though that could come into play a little.

An intercept ability is a good example, the boss attacks healer 1 and the tank realizes they're gunning for him so they attempt to intercept the damage by placing themselves between the boss and healers.

Like the above examples, spells in the current state of the game are based on targets, but why should a spell go through 2 people and hit someone behind? Can't a tank use his shield to reflect or absorb the damage if he is correctly positioned in front of the DPS or healer that the boss has targeted?

Something I think you focused on a lot Dave was formation and the bosses working as a team. This is a good idea as well, part of the problem with current raids is that we have 10-25 people vs 1. The boss if all alone needs to be extremely powerful to even stand a fighting chance. In essence this is what causes the tank roll, nobody can take these huge hits but the tank. Without the huge hits the boss would never be able to kill anyone. Lets say that we had a fight 10 players vs 10 npc where the NPCs were working together just like the players. WoW tried this in WotLK I thought it worked out pretty well thought it could have been improved since the NPCs were not working together and the taunts still worked (at least temporarily).

Anyways I think that these responses answer my original question, its not a matter of computers not being able to perform this kind of AI real time in a game, its a matter of a game design that doesn't allow for this kind of AI in its current state.


Most of the current ways things are done in MMOs are to overcome obstacles involving latency. Your ideas on positioning (intercepting attackers, physically blocking attacks, etc...) are of course good ideas, but they tend to fall apart in a simulation where oft-times large latency is present, which is pretty much every MMO. Everyone who has played with huge ping times is familiar with rubber-banding and other occurrences, and these issues are only aggravated by the requirement of precise positioning. A raid wiping because they failed the script is one thing, but a raid wiping due to latency issues on the tank's part is a whole different ball of wax, one that annoys the piss out of the players when it happens. With tight timing and positional requirements plus latency, this type of wiping would likely become the rule rather than the occasional occurrence.
[/quote]

Even with low latency(Which is achievable with nation or region restricted servers for example) that kind of gameplay would be problematic at the MMO scale due to the increased bandwidth requirements (Less complex gameplay lets you squeeze more players in, (even if you can afford more bandwidth on the servers you will restrict your playerbase if the clientside bandwidth requirements get too high). (You can have tight positioning in a MMO if you want but you have to sacrifice something to get it)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

Most of the current ways things are done in MMOs are to overcome obstacles involving latency. Your ideas on positioning (intercepting attackers, physically blocking attacks, etc...) are of course good ideas, but they tend to fall apart in a simulation where oft-times large latency is present, which is pretty much every MMO. Everyone who has played with huge ping times is familiar with rubber-banding and other occurrences, and these issues are only aggravated by the requirement of precise positioning. A raid wiping because they failed the script is one thing, but a raid wiping due to latency issues on the tank's part is a whole different ball of wax, one that annoys the piss out of the players when it happens. With tight timing and positional requirements plus latency, this type of wiping would likely become the rule rather than the occasional occurrence.


You make a good point, running to a positioning to block wouldn't really be feasible because of latency. However, you could have spells that put a static object on the ground that players can stand behind. There wouldn't be any problems with latency there, or instead of running in the traditional sense couldn't you cast a spell where you want to jump? As long as the location is pre-determined doesn't that fix the latency issues? If the reaction time is less than the latency the player should successfully block the spell.
Players largely dont really want greatly smarter (especiallly unpredictable) opponents , but making them more entertaining and capable of spectatular believable mistakes/misses (and more varied interactions with the terrain/players) still could be justified (something to do once the glitzy graphics hit their eventual limits)

Developing and Debugging efforts increase geometrically with AI complexity and simple costs to the game companies is often the ruling factor for any decision.

Anyone have guesses of what the increase in complexity are for some of the AI improvements have been talked of here ??

Logic reuse might help, but bosses tend to be specialized, requiring more unique logic (and certainly balancing).

Maybe with time, such things with 'key-hole' solutions (one boss at a time) can be demonstrated to make it less risky for the game companies to decide to make that kind of improvement in a more general way.
--------------------------------------------[size="1"]Ratings are Opinion, not Fact

This topic is closed to new replies.

Advertisement