Originally posted by MMO_Doubter Originally posted by alakram The AI in mmorpgs is processed in the server. The server is loaded with tons and tons of request per second. Anything ina mmorpg that needs to be done fast must be easy. Thats why the AI is so "stupid", it can't be any other way if you want so many people playing at a time.
Edit: If developers could implement a better AI I'm sure they will do it and print this feature in the box: "The best AI seen in any MMORPG". It's just lack of server capability.
Good post, but they could put in better AI, IF they were willing to sacrifice other things. There is no reason instanced areas couldn't offer much better AI right now. It isn`t a priority. Actually, there's several kinds of AI implementations which are process friendly. One is seed based AIs where you focus on iterations in the set of behaviors or trends of behaviors in the agents. As such, imagine the situation where a random set of mobs are attacked, most die, but a few live. Whatever traits in their composition made the few live will be implemented as part of another set of mobs in another generation. And you can make this more complex by mashing up one class/type of mob with that another (imagine a set of rogues that eventually fall into an evil cult, now you have rogues that can throw around infernal magic). And so on.
Because complex AI would not fit into the desire to dumb MMO's down so every moron out there can play them. With all the advances in comuputing over the last 20 years, AI has moves forward the least.
The graphics and sound in our MMO's is now astonishing, as is the size of game worlds. But the AI has hardly moved on so as not to put of those how have problems with mobs that move.
There's no real mystery here. AI is very "expensive" in server terms, meaning it's a resource hog on the server. As worlds get bigger, with more mobs, and more fancy features (server-side shadows that impact your ability to hide, for example... or lets say dynamic path-finding because players can drop obstructions), this starts to become a huge performance drag. AoE effects are also a huge drag on a system, and there are a lot of things like that players "expect" which limits how server resources can be allocated.
In game terms, AI is kind of a misnomer anyway. The job of the AI is to fool the player into thinking there is something intelligent going on behind the scenes, not to actually make something intelligent going on. The goal can be expressed in bang-for-buck, meaning you want minimal resource drain (simplest actual behavior) that gives the maximum appearance of intelligent behavior.
In simple terms there is a tug-of-war between "open endless world / lots of content" and "mobs with complicated behavior," meaning you have finite server cycles to split between the two (and everything else that's going on in the game from combat rolls to to tracking items). I don't know if gamers would be willing to trade less content for more interesting content, that's a pretty open-ended question.
Raid mobs, for example, can be huge resource drains because they have some pretty massive decision trees. This is where modern MMOs tend to concentrate their "AI budget." Would you, as a player, live with a game with no raids if every mob in the world felt alive? Again, there's no right or wrong answer here, just what MMO developers think will attract the biggest audience.
There's no real mystery here. AI is very "expensive" in server terms, meaning it's a resource hog on the server. As worlds get bigger, with more mobs, and more fancy features (server-side shadows that impact your ability to hide, for example... or lets say dynamic path-finding because players can drop obstructions), this starts to become a huge performance drag. AoE effects are also a huge drag on a system, and there are a lot of things like that players "expect" which limits how server resources can be allocated.
In game terms, AI is kind of a misnomer anyway. The job of the AI is to fool the player into thinking there is something intelligent going on behind the scenes, not to actually make something intelligent going on. The goal can be expressed in bang-for-buck, meaning you want minimal resource drain (simplest actual behavior) that gives the maximum appearance of intelligent behavior.
In simple terms there is a tug-of-war between "open endless world / lots of content" and "mobs with complicated behavior," meaning you have finite server cycles to split between the two (and everything else that's going on in the game from combat rolls to to tracking items). I don't know if gamers would be willing to trade less content for more interesting content, that's a pretty open-ended question.
Raid mobs, for example, can be huge resource drains because they have some pretty massive decision trees. This is where modern MMOs tend to concentrate their "AI budget." Would you, as a player, live with a game with no raids if every mob in the world felt alive? Again, there's no right or wrong answer here, just what MMO developers think will attract the biggest audience.
Very well explained. Its all a big balancing act. To those who talk about GW and its AI. Remember, its all tiny instances with a single group of players or less in very simplistic environments. They have the resources to dedicate more towards AI because there are less mobs and less players and less environments in the equation. Same with Chronicles of Spell Borne, not that I found the AI terribly complex. I could kite around multiple mobs my level like little pupies and kill them all hardly breaking a sweat. Run circles around them exploiting pathing and LOS. I found the game so easily exploitable, which was one of the many reasons it failed and had to go F2P.
AI is about fooling you into thinking the mobs are thinking. They're not=) Besides, if mobs were really smart, they'd all huddle together in one giant pack in each zone, preventing single players or groups from killing them. Yeah, that would be fun=) Then they'd just zerg the closest town, kill everyone so we can't buy new gear or use any of the NPCs because they'd all be dead. WE'd by the mobs!!!
and why is it no one seems to notice. This is a topic I've brought up before in a couple posts I've made but I think it deserves it's own thread. How is it you never hear any critic or gamer asking questions about the AI in an MMO when it's one of the first questions asked in any other type of game. Of course you might answer that it's not easy to cram a good AI into an MMO considering how difficult it is to create MMOs in the first place...but still. Just about every MMO it's the same thing, when you enter an enemy camp, you stand just outside their aggro range even though you're visible in plane site. You pick the straggler that divided from the group and you pull....he runs over and the two of you start taking whacks at each other for a couple seconds..he keels over and dies, you sit down to drink or rest up, and wait to do it again, and you do this throughout the entire game. Some times you accidently pull more than one and I'd have to run away or simply take them all on while using a healing potion. There have been times my PC has crashed during this moment, and when I'd log back on I'd notice my character had taken them all out by using auto attack. So why is it......?
Because you are thinking of mobs in a competely incorrect way. they aren't enemies to be vanquished, they are power-ups. They are made to give a small challenge but they are made for ou to beat so that you can go to the next one.
Like Skyrim? Need more content? Try my Skyrim mod "Godfred's Tomb."
you could add this within the aggo loop: if allies = 1
runToNearestAlly or if chanceToWin < 1%
getYourAssOutOfThere or if beingkited = 1
hideBehindNearestObect Small changes which would drastically increase the difficulty of the AI.
I don't understand how these changes are "small."
For example, you have chanceToWin which I assume is some method being called (as part of some default combat loop), that has to have exposed to it the mob itself and everybody on its aggro list. Therefor the scripting language must be designed to pass arbitrary references, which implies some degree of an inheritance model. This is actually pretty rare for an MMO scripting language, because they need to be as lightweight as possible. At the very least, chanceToWin has to constantly iterate through an arbitrarily long aggro list. This alone could get fairly expensive.
Next, we would have to figure out exactly how does one calculate the concept of "chance to win" mathematically, with a level of granularity that's less than 1%. I'd also like to know how we would debug this, and what the corner cases are. I suppose a larger question is whether the gameplay benefit justifies the server having to perform all these operations for every single mob in combat in the game world.
Beingkited is another one. How does a mob know that he is being kited? How do you distinguish between legitimate tactics of a range class, and a player exploiting terrain, at a scripting level? Normally you just have a code hook where if the mob can't figure out how to pathfind to the player he just evades or reset. Also, how is the mob aware of what is a "hide-behind-able-object" and what is not? Okay, lets say you have a flag on all objects that are valid for a mob to hide behind (believe me you don't want to have to calculate this at runtime) This means these objects cannot be part of terrain, and the server has to track them all.
None of the above actually addresses whether any of these are good ideas that would improve gameplay, and I'm not convinced they would. I think instead they would merely increase player frustration. Just things to think about.
MMOs have crappy NPC AI because good AI would kick the average players ass relentlessly.
Add to that, the first time a mob doesn't just stand aimlessly in a field and wait to get killed while his buddy 20-feet from him is getting annihilated, most players would cry foul.
-- Whammy - a 64x64 miniRPG - RPG Quiz - can you get all 25 right? - FPS Quiz - how well do you know your shooters?
you could add this within the aggo loop: if allies = 1
runToNearestAlly or if chanceToWin < 1%
getYourAssOutOfThere or if beingkited = 1
hideBehindNearestObect Small changes which would drastically increase the difficulty of the AI.
I don't understand how these changes are "small."
For example, you have chanceToWin which I assume is some method being called (as part of some default combat loop), that has to have exposed to it the mob itself and everybody on its aggro list. Therefor the scripting language must be designed to pass arbitrary references, which implies some degree of an inheritance model. This is actually pretty rare for an MMO scripting language, because they need to be as lightweight as possible. At the very least, chanceToWin has to constantly iterate through an arbitrarily long aggro list. This alone could get fairly expensive.
Next, we would have to figure out exactly how does one calculate the concept of "chance to win" mathematically, with a level of granularity that's less than 1%. I'd also like to know how we would debug this, and what the corner cases are. I suppose a larger question is whether the gameplay benefit justifies the server having to perform all these operations for every single mob in combat in the game world.
Beingkited is another one. How does a mob know that he is being kited? How do you distinguish between legitimate tactics of a range class, and a player exploiting terrain, at a scripting level? Normally you just have a code hook where if the mob can't figure out how to pathfind to the player he just evades or reset. Also, how is the mob aware of what is a "hide-behind-able-object" and what is not? Okay, lets say you have a flag on all objects that are valid for a mob to hide behind (believe me you don't want to have to calculate this at runtime) This means these objects cannot be part of terrain, and the server has to track them all.
None of the above actually addresses whether any of these are good ideas that would improve gameplay, and I'm not convinced they would. I think instead they would merely increase player frustration. Just things to think about.
Far too professional an explanation and would go over the heads of 99/100 armchair developers=)
I'm not a programmer, but I really don't see how better AI would load down the server as bad as some are claiming. I don't have to be a coding guru to understand that since a mob will aggro you if you get too close to it, then it must also be able to "see" any other similar mobs during battle.
Also when you attack mobs, some nearby mobs join in, well suppose you took that radius or whatever and increased it by 400% and had it say "HELP!" when the monster is low on HP. Increasing the add radius when his HP is less than a certain amount and having him yell for help, yea that would bring any server down HAHA =P
and why is it no one seems to notice. This is a topic I've brought up before in a couple posts I've made but I think it deserves it's own thread. How is it you never hear any critic or gamer asking questions about the AI in an MMO when it's one of the first questions asked in any other type of game. Of course you might answer that it's not easy to cram a good AI into an MMO considering how difficult it is to create MMOs in the first place...but still. Just about every MMO it's the same thing, when you enter an enemy camp, you stand just outside their aggro range even though you're visible in plane site. You pick the straggler that divided from the group and you pull....he runs over and the two of you start taking whacks at each other for a couple seconds..he keels over and dies, you sit down to drink or rest up, and wait to do it again, and you do this throughout the entire game. Some times you accidently pull more than one and I'd have to run away or simply take them all on while using a healing potion. There have been times my PC has crashed during this moment, and when I'd log back on I'd notice my character had taken them all out by using auto attack. So why is it......?
Well, there are different uses for AI. Aggro distance versus reality is pretty tricky. If you can see them, and they can see you, then you may as well be fighting hordes of mobs, or at least trying to until you inevitably take a dirt nap. That doesn't necessarily equate to fun for everyone but I see your point. While I don't necessarily see a problem with visual distance, I think runners should be locked down or else they'll BAF even more. As far as dropping a connection during combat and still living, I'd say that's a testament to the superior heroic abilities of your toon ( ' :
As far as other forms of AI, specifically coordinated combat -- I see mobs heal each other, some teleport away in "in and out type" of situations, rez mobs, switch targets depending on who's doing the most damage or doing the most healing. Sometimes it's a matter of grouping mobs with different abilities that synergize well. Depends on how much thought is put into the design and how it evolves. You see this in City of Heroes and Champions Online, at least. I haven't played anything else (for what seems like) in an eternity.
I dont think any MMO has had AI on par with some single player games.. In MMOs the " difficulty " of mobs is determined by how much HP , damage it does and if it has any abilities to be used and not its intelligence. Its not going to change.
It's all about believable NPCs/Monsters. It would be no problem to create a AI/software that could learn and
improve. After a few thousands of learning cycles it would become
quite good (see the computer game creatures). But I don't know if
players would like that. That brings me back to believable NPCs/Monsters. To come close to
believable NPCs/Monsters you'd have to emulate a system of senses:
Sight, Hearing (maybe even Smelling). Aggro range is just illogical. Not every NPC/monster should react the same.
One NPC might be a bully and thus attack fearlessly. Another NPC might
be more cowardly and thus be running away or mainly trying to ambush
others. Some NPCs might be loners. Others are found only with their peers.
That means randomly determining individual and social characteristics
of an NPC/Monster that are not related to class and racial abilities.
I see a big catch with that though. MMOs/MMORPGs are goal/quest driven.
Players would complain if they needed to return some boar intestines to
a Quest giver and the boars would only roam the land in packs of at least
10 individuals. There may be more scenarios that would "impede" playing.
Well depending on how much the AI learns, a learning AI can either be extremely simple or extremely expensive to implement. (and both meanings of expensive apply: both the monetary cost to develop it, and processing power cost to run it.) As the other guy said earlier, spending a lot of money to develop a fancypants AI that may or may not have quantifiable gains in fun is typically not something companies do lightly.
A game's AI quality is more about making the player perceive the AI is smart, than making the AI smart. Player perception is everything. A game could be running the most amazing combat algorithms in the world, but if they aren't visible to players in some way they're worthless.
and why is it no one seems to notice. This is a topic I've brought up before in a couple posts I've made but I think it deserves it's own thread. How is it you never hear any critic or gamer asking questions about the AI in an MMO when it's one of the first questions asked in any other type of game. Of course you might answer that it's not easy to cram a good AI into an MMO considering how difficult it is to create MMOs in the first place...but still. Just about every MMO it's the same thing, when you enter an enemy camp, you stand just outside their aggro range even though you're visible in plane site. You pick the straggler that divided from the group and you pull....he runs over and the two of you start taking whacks at each other for a couple seconds..he keels over and dies, you sit down to drink or rest up, and wait to do it again, and you do this throughout the entire game. Some times you accidently pull more than one and I'd have to run away or simply take them all on while using a healing potion. There have been times my PC has crashed during this moment, and when I'd log back on I'd notice my character had taken them all out by using auto attack. So why is it......?
I agree with the second poster as mmo's are not designed to be difficult but mostly as a "time sink", I did think of this the other day though mostly as in just devs giving a greater variety as in some mobs that maybe don't like each other so when you encounter them you see say a warg fighting a auroch for example. That is the only real problem I've had with games ai is that two totally different yet hostile mobs can be right next to each other and not care and both turn on me when I come around. Now as far as crashing during a fight and logging back on to see you actually won against multiple targets doing auto attack? I don't like to call bs on anyone but I've played mmo's for a very long time and couldn't see how you could encounter this problem without always fighting mobs that are clearly weaker in ability than you are, most games that I've played atleast at equal level you will barely beat a solo mob using auto attack the entire battle you certainly aren't going to beat multiple targets if your not online, as a matter of fact I challenge you to even name a game that if you crashed right before killing one mob the computer will begin to auto attack the next target. I haven't played a single one you have to atleast initiate an attack so you've lost me here, maybe you just said it to emphasize your point but if so it really only serves the reverse your question about a games ai is a valid one without trying to devalue the current state of most games.
And I'd also add as a console and mmo player the reason it is not as big an issue in mmo's is mmo's as an industry has a much better standard of AI in game than lot's of console games. I can go on forever about the console games that failed because enemies didn't even fight back due to some glitch or another and in mmo's you are very rarely going to encounter that atleast without the devs fixing it sooner than later.
but yeah, to call this game Fantastic is like calling Twilight the Godfather of vampire movies....
you could add this within the aggo loop: if allies = 1
runToNearestAlly or if chanceToWin < 1%
getYourAssOutOfThere or if beingkited = 1
hideBehindNearestObect Small changes which would drastically increase the difficulty of the AI.
I don't understand how these changes are "small."
For example, you have chanceToWin which I assume is some method being called (as part of some default combat loop), that has to have exposed to it the mob itself and everybody on its aggro list. Therefor the scripting language must be designed to pass arbitrary references, which implies some degree of an inheritance model. This is actually pretty rare for an MMO scripting language, because they need to be as lightweight as possible. At the very least, chanceToWin has to constantly iterate through an arbitrarily long aggro list. This alone could get fairly expensive.
Next, we would have to figure out exactly how does one calculate the concept of "chance to win" mathematically, with a level of granularity that's less than 1%. I'd also like to know how we would debug this, and what the corner cases are. I suppose a larger question is whether the gameplay benefit justifies the server having to perform all these operations for every single mob in combat in the game world.
Beingkited is another one. How does a mob know that he is being kited? How do you distinguish between legitimate tactics of a range class, and a player exploiting terrain, at a scripting level? Normally you just have a code hook where if the mob can't figure out how to pathfind to the player he just evades or reset. Also, how is the mob aware of what is a "hide-behind-able-object" and what is not? Okay, lets say you have a flag on all objects that are valid for a mob to hide behind (believe me you don't want to have to calculate this at runtime) This means these objects cannot be part of terrain, and the server has to track them all.
None of the above actually addresses whether any of these are good ideas that would improve gameplay, and I'm not convinced they would. I think instead they would merely increase player frustration. Just things to think about.
Far too professional an explanation and would go over the heads of 99/100 armchair developers=)
Its all about understanding some of the inherent difficulties posed by a dynamic situation. Once one starts examining just what is involved(and keeping limited resources in mind) it becomes obvious what *some* of the pit falls are. Once you start having to *define' what kiting, cover(LOS) and group interactions are, you are chewing up quite a bit of resources. Now multiply that by tens(if not hundreds) of thousands of other such situations, and it gets resource intensive FAST. The other obvious question is just how "smart" can the game afford to have the mobs be? If the average player has little chance of winning, they are not likely to stick around. That shatters the business model right there.
Mortal online promises to have great AI. Have to wait and see if this is true though.
It also promises to be a full loot gankfest But that does seem to appeal to a certain *limited* demographic, so that must be their intended audience(shrug).
Mortal online promises to have great AI. Have to wait and see if this is true though.
It also promises to be a full loot gankfest But that does seem to appeal to a certain *limited* demographic, so that must be their intended audience(shrug).
Not necessarily. It's a sandbox game that happens to have ffa pvp with full loot. Being a murderer will have severe penalties. You are right though, this game will not cater to the majority of gamers but it does cater to me, so I'm happy.
Comments
Actually, there's several kinds of AI implementations which are process friendly. One is seed based AIs where you focus on iterations in the set of behaviors or trends of behaviors in the agents. As such, imagine the situation where a random set of mobs are attacked, most die, but a few live. Whatever traits in their composition made the few live will be implemented as part of another set of mobs in another generation. And you can make this more complex by mashing up one class/type of mob with that another (imagine a set of rogues that eventually fall into an evil cult, now you have rogues that can throw around infernal magic). And so on.
Because complex AI would not fit into the desire to dumb MMO's down so every moron out there can play them. With all the advances in comuputing over the last 20 years, AI has moves forward the least.
The graphics and sound in our MMO's is now astonishing, as is the size of game worlds. But the AI has hardly moved on so as not to put of those how have problems with mobs that move.
I agree with the OP, but the AI isn't missing, it's just super easy, wasn't that what everyone wanted? Not me. =P
Generally current AI appears to be something like this:
roam
If aggro loop
if distance >x loop
intercept
if undead = 0 loop
if health <x
flee
attack (which may or may not include spells or abilities)
Basically it will move to you, and attack you until you or it dies or it flees. So the AI is already there it's just "terribly easymode".
you could add this within the aggo loop:
if allies = 1
runToNearestAlly
or
if chanceToWin < 1%
getYourAssOutOfThere
or
if beingkited = 1
hideBehindNearestObect
Small changes which would drastically increase the difficulty of the AI.
But people like mindless encounters right? Well they must, because that is what every MMO has with few exceptions.
AI isn't hard, nor would it cause too much lag. It's EASY because that is what everyone seems to want. =P
"Good? Bad? I'm the guy with the gun."
There's no real mystery here. AI is very "expensive" in server terms, meaning it's a resource hog on the server. As worlds get bigger, with more mobs, and more fancy features (server-side shadows that impact your ability to hide, for example... or lets say dynamic path-finding because players can drop obstructions), this starts to become a huge performance drag. AoE effects are also a huge drag on a system, and there are a lot of things like that players "expect" which limits how server resources can be allocated.
In game terms, AI is kind of a misnomer anyway. The job of the AI is to fool the player into thinking there is something intelligent going on behind the scenes, not to actually make something intelligent going on. The goal can be expressed in bang-for-buck, meaning you want minimal resource drain (simplest actual behavior) that gives the maximum appearance of intelligent behavior.
In simple terms there is a tug-of-war between "open endless world / lots of content" and "mobs with complicated behavior," meaning you have finite server cycles to split between the two (and everything else that's going on in the game from combat rolls to to tracking items). I don't know if gamers would be willing to trade less content for more interesting content, that's a pretty open-ended question.
Raid mobs, for example, can be huge resource drains because they have some pretty massive decision trees. This is where modern MMOs tend to concentrate their "AI budget." Would you, as a player, live with a game with no raids if every mob in the world felt alive? Again, there's no right or wrong answer here, just what MMO developers think will attract the biggest audience.
For me the point of an mmo is playing alongside players against other players, they are the mob and it's true some of them suck
Come to think of it, maybe the reason many, many players are against PvP in a game is the same reason they are against smart mobs?
-----
The person who is certain, and who claims divine warrant for his certainty, belongs now to the infancy of our species.
There's no real mystery here. AI is very "expensive" in server terms, meaning it's a resource hog on the server. As worlds get bigger, with more mobs, and more fancy features (server-side shadows that impact your ability to hide, for example... or lets say dynamic path-finding because players can drop obstructions), this starts to become a huge performance drag. AoE effects are also a huge drag on a system, and there are a lot of things like that players "expect" which limits how server resources can be allocated.
In game terms, AI is kind of a misnomer anyway. The job of the AI is to fool the player into thinking there is something intelligent going on behind the scenes, not to actually make something intelligent going on. The goal can be expressed in bang-for-buck, meaning you want minimal resource drain (simplest actual behavior) that gives the maximum appearance of intelligent behavior.
In simple terms there is a tug-of-war between "open endless world / lots of content" and "mobs with complicated behavior," meaning you have finite server cycles to split between the two (and everything else that's going on in the game from combat rolls to to tracking items). I don't know if gamers would be willing to trade less content for more interesting content, that's a pretty open-ended question.
Raid mobs, for example, can be huge resource drains because they have some pretty massive decision trees. This is where modern MMOs tend to concentrate their "AI budget." Would you, as a player, live with a game with no raids if every mob in the world felt alive? Again, there's no right or wrong answer here, just what MMO developers think will attract the biggest audience.
Very well explained. Its all a big balancing act. To those who talk about GW and its AI. Remember, its all tiny instances with a single group of players or less in very simplistic environments. They have the resources to dedicate more towards AI because there are less mobs and less players and less environments in the equation. Same with Chronicles of Spell Borne, not that I found the AI terribly complex. I could kite around multiple mobs my level like little pupies and kill them all hardly breaking a sweat. Run circles around them exploiting pathing and LOS. I found the game so easily exploitable, which was one of the many reasons it failed and had to go F2P.
AI is about fooling you into thinking the mobs are thinking. They're not=) Besides, if mobs were really smart, they'd all huddle together in one giant pack in each zone, preventing single players or groups from killing them. Yeah, that would be fun=) Then they'd just zerg the closest town, kill everyone so we can't buy new gear or use any of the NPCs because they'd all be dead. WE'd by the mobs!!!
Because you are thinking of mobs in a competely incorrect way. they aren't enemies to be vanquished, they are power-ups. They are made to give a small challenge but they are made for ou to beat so that you can go to the next one.
Godfred's Tomb Trailer: https://youtu.be/-nsXGddj_4w
Original Skyrim: https://www.nexusmods.com/skyrim/mods/109547
Serph toze kindly has started a walk-through. https://youtu.be/UIelCK-lldo
I don't understand how these changes are "small."
For example, you have chanceToWin which I assume is some method being called (as part of some default combat loop), that has to have exposed to it the mob itself and everybody on its aggro list. Therefor the scripting language must be designed to pass arbitrary references, which implies some degree of an inheritance model. This is actually pretty rare for an MMO scripting language, because they need to be as lightweight as possible. At the very least, chanceToWin has to constantly iterate through an arbitrarily long aggro list. This alone could get fairly expensive.
Next, we would have to figure out exactly how does one calculate the concept of "chance to win" mathematically, with a level of granularity that's less than 1%. I'd also like to know how we would debug this, and what the corner cases are. I suppose a larger question is whether the gameplay benefit justifies the server having to perform all these operations for every single mob in combat in the game world.
Beingkited is another one. How does a mob know that he is being kited? How do you distinguish between legitimate tactics of a range class, and a player exploiting terrain, at a scripting level? Normally you just have a code hook where if the mob can't figure out how to pathfind to the player he just evades or reset. Also, how is the mob aware of what is a "hide-behind-able-object" and what is not? Okay, lets say you have a flag on all objects that are valid for a mob to hide behind (believe me you don't want to have to calculate this at runtime) This means these objects cannot be part of terrain, and the server has to track them all.
None of the above actually addresses whether any of these are good ideas that would improve gameplay, and I'm not convinced they would. I think instead they would merely increase player frustration. Just things to think about.
MMOs have crappy NPC AI because good AI would kick the average players ass relentlessly.
Add to that, the first time a mob doesn't just stand aimlessly in a field and wait to get killed while his buddy 20-feet from him is getting annihilated, most players would cry foul.
- RPG Quiz - can you get all 25 right?
- FPS Quiz - how well do you know your shooters?
It's all about believable NPCs/Monsters.
As it is now every type of monster has "varying" behaviour that is
defined solely on class and racial skills.
It would be no problem to create a AI/software that could learn and
improve. After a few thousands of learning cycles it would become
quite good (see the computer game creatures). But I don't know if
players would like that.
That brings me back to believable NPCs/Monsters. To come close to
believable NPCs/Monsters you'd have to emulate a system of senses:
Sight, Hearing (maybe even Smelling). Aggro range is just illogical.
Not every NPC/monster should react the same.
One NPC might be a bully and thus attack fearlessly. Another NPC might
be more cowardly and thus be running away or mainly trying to ambush
others. Some NPCs might be loners. Others are found only with their peers.
That means randomly determining individual and social characteristics
of an NPC/Monster that are not related to class and racial abilities.
I see a big catch with that though. MMOs/MMORPGs are goal/quest driven.
Players would complain if they needed to return some boar intestines to
a Quest giver and the boars would only roam the land in packs of at least
10 individuals. There may be more scenarios that would "impede" playing.
p.s. Personally I'd like to see more believable NPCs/Monsters.
/thread tbh
I don't understand how these changes are "small."
For example, you have chanceToWin which I assume is some method being called (as part of some default combat loop), that has to have exposed to it the mob itself and everybody on its aggro list. Therefor the scripting language must be designed to pass arbitrary references, which implies some degree of an inheritance model. This is actually pretty rare for an MMO scripting language, because they need to be as lightweight as possible. At the very least, chanceToWin has to constantly iterate through an arbitrarily long aggro list. This alone could get fairly expensive.
Next, we would have to figure out exactly how does one calculate the concept of "chance to win" mathematically, with a level of granularity that's less than 1%. I'd also like to know how we would debug this, and what the corner cases are. I suppose a larger question is whether the gameplay benefit justifies the server having to perform all these operations for every single mob in combat in the game world.
Beingkited is another one. How does a mob know that he is being kited? How do you distinguish between legitimate tactics of a range class, and a player exploiting terrain, at a scripting level? Normally you just have a code hook where if the mob can't figure out how to pathfind to the player he just evades or reset. Also, how is the mob aware of what is a "hide-behind-able-object" and what is not? Okay, lets say you have a flag on all objects that are valid for a mob to hide behind (believe me you don't want to have to calculate this at runtime) This means these objects cannot be part of terrain, and the server has to track them all.
None of the above actually addresses whether any of these are good ideas that would improve gameplay, and I'm not convinced they would. I think instead they would merely increase player frustration. Just things to think about.
Far too professional an explanation and would go over the heads of 99/100 armchair developers=)
I'm not a programmer, but I really don't see how better AI would load down the server as bad as some are claiming. I don't have to be a coding guru to understand that since a mob will aggro you if you get too close to it, then it must also be able to "see" any other similar mobs during battle.
Also when you attack mobs, some nearby mobs join in, well suppose you took that radius or whatever and increased it by 400% and had it say "HELP!" when the monster is low on HP. Increasing the add radius when his HP is less than a certain amount and having him yell for help, yea that would bring any server down HAHA =P
"Good? Bad? I'm the guy with the gun."
Well, there are different uses for AI. Aggro distance versus reality is pretty tricky. If you can see them, and they can see you, then you may as well be fighting hordes of mobs, or at least trying to until you inevitably take a dirt nap. That doesn't necessarily equate to fun for everyone but I see your point. While I don't necessarily see a problem with visual distance, I think runners should be locked down or else they'll BAF even more. As far as dropping a connection during combat and still living, I'd say that's a testament to the superior heroic abilities of your toon ( ' :
As far as other forms of AI, specifically coordinated combat -- I see mobs heal each other, some teleport away in "in and out type" of situations, rez mobs, switch targets depending on who's doing the most damage or doing the most healing. Sometimes it's a matter of grouping mobs with different abilities that synergize well. Depends on how much thought is put into the design and how it evolves. You see this in City of Heroes and Champions Online, at least. I haven't played anything else (for what seems like) in an eternity.
I dont think any MMO has had AI on par with some single player games.. In MMOs the " difficulty " of mobs is determined by how much HP , damage it does and if it has any abilities to be used and not its intelligence. Its not going to change.
Some people don't use that system, like Arenanet.
And that's why mobs in Guild Wars act quite a lot smarter than mobs in WoW.
Changing the aggro radius to to a more realistic value representing the distance at which they see you wouldn't be much more CPU intensive than now.
Similarly, making them aware, at the same distance, of companions being attacked, through sight and sound.
Only these two changes would make MMOs much more realistic and not much more CPU intensive.
At night just reduce the sight distance and increas the sound distance. A perfect set up for soloers using silent weapons and stealth.
Why they don't developers use this? Beats me.
Well depending on how much the AI learns, a learning AI can either be extremely simple or extremely expensive to implement. (and both meanings of expensive apply: both the monetary cost to develop it, and processing power cost to run it.) As the other guy said earlier, spending a lot of money to develop a fancypants AI that may or may not have quantifiable gains in fun is typically not something companies do lightly.
A game's AI quality is more about making the player perceive the AI is smart, than making the AI smart. Player perception is everything. A game could be running the most amazing combat algorithms in the world, but if they aren't visible to players in some way they're worthless.
Jeff Orkin's GDC 2006 presentation Three States and a Plan (PDF viewer required) is particularly insightful for what makes AI good.
"What is truly revealing is his implication that believing something to be true is the same as it being true. [continue]" -John Oliver
http://www.guildwars2guru.com/forum/better-tanking-mechanics-for-gw2-t1197p8.html
here talking bout it to
That thread is more about tanking mechanics in guild wars and less about AI (although there is talk about scripted boss fights in there).
I agree with the second poster as mmo's are not designed to be difficult but mostly as a "time sink", I did think of this the other day though mostly as in just devs giving a greater variety as in some mobs that maybe don't like each other so when you encounter them you see say a warg fighting a auroch for example. That is the only real problem I've had with games ai is that two totally different yet hostile mobs can be right next to each other and not care and both turn on me when I come around. Now as far as crashing during a fight and logging back on to see you actually won against multiple targets doing auto attack? I don't like to call bs on anyone but I've played mmo's for a very long time and couldn't see how you could encounter this problem without always fighting mobs that are clearly weaker in ability than you are, most games that I've played atleast at equal level you will barely beat a solo mob using auto attack the entire battle you certainly aren't going to beat multiple targets if your not online, as a matter of fact I challenge you to even name a game that if you crashed right before killing one mob the computer will begin to auto attack the next target. I haven't played a single one you have to atleast initiate an attack so you've lost me here, maybe you just said it to emphasize your point but if so it really only serves the reverse your question about a games ai is a valid one without trying to devalue the current state of most games.
And I'd also add as a console and mmo player the reason it is not as big an issue in mmo's is mmo's as an industry has a much better standard of AI in game than lot's of console games. I can go on forever about the console games that failed because enemies didn't even fight back due to some glitch or another and in mmo's you are very rarely going to encounter that atleast without the devs fixing it sooner than later.
but yeah, to call this game Fantastic is like calling Twilight the Godfather of vampire movies....
I don't understand how these changes are "small."
For example, you have chanceToWin which I assume is some method being called (as part of some default combat loop), that has to have exposed to it the mob itself and everybody on its aggro list. Therefor the scripting language must be designed to pass arbitrary references, which implies some degree of an inheritance model. This is actually pretty rare for an MMO scripting language, because they need to be as lightweight as possible. At the very least, chanceToWin has to constantly iterate through an arbitrarily long aggro list. This alone could get fairly expensive.
Next, we would have to figure out exactly how does one calculate the concept of "chance to win" mathematically, with a level of granularity that's less than 1%. I'd also like to know how we would debug this, and what the corner cases are. I suppose a larger question is whether the gameplay benefit justifies the server having to perform all these operations for every single mob in combat in the game world.
Beingkited is another one. How does a mob know that he is being kited? How do you distinguish between legitimate tactics of a range class, and a player exploiting terrain, at a scripting level? Normally you just have a code hook where if the mob can't figure out how to pathfind to the player he just evades or reset. Also, how is the mob aware of what is a "hide-behind-able-object" and what is not? Okay, lets say you have a flag on all objects that are valid for a mob to hide behind (believe me you don't want to have to calculate this at runtime) This means these objects cannot be part of terrain, and the server has to track them all.
None of the above actually addresses whether any of these are good ideas that would improve gameplay, and I'm not convinced they would. I think instead they would merely increase player frustration. Just things to think about.
Far too professional an explanation and would go over the heads of 99/100 armchair developers=)
Its all about understanding some of the inherent difficulties posed by a dynamic situation. Once one starts examining just what is involved(and keeping limited resources in mind) it becomes obvious what *some* of the pit falls are. Once you start having to *define' what kiting, cover(LOS) and group interactions are, you are chewing up quite a bit of resources. Now multiply that by tens(if not hundreds) of thousands of other such situations, and it gets resource intensive FAST. The other obvious question is just how "smart" can the game afford to have the mobs be? If the average player has little chance of winning, they are not likely to stick around. That shatters the business model right there.
Mortal online promises to have great AI. Have to wait and see if this is true though.
It also promises to be a full loot gankfest But that does seem to appeal to a certain *limited* demographic, so that must be their intended audience(shrug).
It also promises to be a full loot gankfest But that does seem to appeal to a certain *limited* demographic, so that must be their intended audience(shrug).
Not necessarily. It's a sandbox game that happens to have ffa pvp with full loot. Being a murderer will have severe penalties. You are right though, this game will not cater to the majority of gamers but it does cater to me, so I'm happy.