Tobold's Blog
Thursday, December 01, 2011
How good do you want your companion to be?

Green Armadillo is pondering NPC companion/pet stupidity as a feature. I think this is a rather difficult problem: On the one hand there are obvious advantages of being able to play SWTOR flashpoints and other instances through with just one real friend and two companions. On the other hand you don't want somebody leveling up a healer, showing up for a raid or instance with his guild, and being told that they'd rather bring a companion, because the companion heals better.

Some people are immensely proud of their leet skillz in playing MMORPGs, so what I will say now might be a bit controversial: There is no role in a group which theoretically could not be performed better by an artificial intelligence controlled companion/pet NPC than by a real player. Basically both the core function of a class and the "moves" of a particular encounter follow relatively simple basic rules. The difficulty for a human being is setting priorities when the action is fast, making decisions in split seconds. Not being slowed down by ping and reaction time, and not easily confused by a multitude of simultaneously incoming information, an artificial intelligence certainly could play this better than we can.

Thus even without "cheating" (like being invulnerable to AoE), a healer companion could be programmed to not stand in the fire, and heal the group, and do this better than a real player. Now some people would much prefer to play with their real friends than with an AI companion. But 7 years of WoW guilds and raiding are proof that players are often willing to rather take the best performing character with them on a raid than the most likable. Thus if companions played better than players, many guilds would automatically staff half of their raids with companions.

Thus the artificial stupidity of your companion actually *is* a feature, and not due to laziness or technical constraints from the developers. Companions could be programmed to perform better, but given that real players have a wide range of different skill levels, the point where the companion becomes better than your least performing friends isn't all that hard to reach. And that is a slippery slope, because if you make the companion better than the least well performing player, then why not make him better than the average player too? Or better than the best player? That has serious social and motivational consequences. The illusion of the value of "playing well" is easily shattered if you see a bot outperforming you.

So how good do you want your companion to be?
You are addressing the very problem of botting. Why do people bot in the game? Because bots play good enough. If you would bot all day and wouldn't get a single XP or honor, just repair money, no one would bot.

The reason why bots exist is that they play reasonably well. The reason why game developers hate bots is exactly this: the bots prove clearly that the game is trivial and make real players disgruntled by being beaten by bots.
This is the dilemma that Anet went through with hero/henchmen companions. They did everything they could think of to get people to play together in Guild Wars - restricting heroes in a party, giving henchmen poor builds, designing missions where someone had to be in two places at once, areas where heroes are not allowed etc. But none of that worked, people still preferred all companion parties and finally Anet have caved in and allow parties of 8 heroes - now that their focus has shifted to the sequel. Companions are just more predictable, they don't have life commitments, they don't try to rush (=fail in guild wars), they don't aggro everything in sight and they aren't ass hats. I would often fail to do content with guildies and then subsequently do it easily with heroes and henchmen.

ANet seem to have decided that the problems involved with companions are insoluble since they removed the originally intended companion a year or so ago; and it seems to me that a lot of the subsequent design is intended to bridge the gap - you don't, for the most part, have to group with other players in GW2, you don't often need to talk to them. It's also the reason why dungeons & PvP are 5 man only. That gives the more casual player some chance of getting a group together. However, IMOP its a bit of a compromise - i.e. for the 5 man content you have to play with only 4 other ass hats rather than 7, 11 or whatever; maybe that's better but it still hits people who really just want to solo sometimes or play with a friend.
I think a good compromise would be to make npc henchmen moderately less powerful than an equal level player but to make them perfect at any "pass/fail" activities. So for example an npc healer heals at a lesser rate than a human player but will not die by stepping in the fire.

In that way you are not restricted form doing any content with an npc henchman but you will have an easier time of it with a good human.
One of the biggest fears of the Everquest community a few years back when the elder game was about to introduce Mercenaries was exactly this: that mercenaries would be better than most players and would be preferred for groups. The same fears have been expressed on the EQ2 forums in advance of the upcoming introduction of mercenaries there.

When mercenaries did arrive in EQ1, they fitted in smoothly and meshed well with existing grouping behavior. Fears were allayed. The EQ2 team have that experience to build on and I'm sure that the relative lower competence of mercenaries when compared to players is deed intentional and not the result of a rush job (for once).

It's obvious that NPCs could always perform better than players in dealing with complex scripted situations. They could be part of the script, after all. The whole thing could effectively be rendered as a tableau for players to watch. Or players could be given minor parts to play to keep them involved, in which case the scenarios could only fail if the player made an error.

Might be pretty popular.

Yes, "theoretically". A lot of stuff is "theoretically" easy, but when you get down to it, you end up needing so many tables for your DFA that it becomes a nightmare to populate them, with some unforeseen case always popping up.

So I'll believe this when I see one bot being able to do it: for the moment when you read about bots, they all are farming bots, and powerlevling/gearing up services use real people.
Not having companions available at all is identical to having companions with zero skill/stats. So, there are already abundant situations where these vacuous companions are better than some players. For example, at the end of WoW's last expansion, an empty raid slot was better than a poor raider or one prone to lag for fighting the Lich King.

It seems that the better you make companions, the more you push the game towards small-group (as in, few real people per group) or solo play.

How good should they be? It's a matter of taste; I'm sure plenty of people enjoyed Final Fantasy XII, and it gave you very good bots to play with. So did Tales of Symphonia, and I consider that to be one of the best RPGs I've ever played. Both offer the option of replacing (some of) the AIs with real players.
It's fascinating you've posted on this subject, because it seems to be in the air.

There was a book just published by a professor at MIT on the fact that machines are moving up the employment food chain, as evidenced by poor job recovery in the US after this recession.

He points out that in the last 5 years machines (i.e. computer software) have become capable of driving in traffic (Google), beating human beings on Jeopardy, designing computer chips, understanding law documents and so on.

Many jobs that up until recently appeared to require human instinct or reactions can actually be better done by machines.

As you imply, MMO's address this problem with "affirmative action" for human beings (or perhaps it's "reverse discrimination" against bots?). Obviously not something that would be applied in the real world.

Here are some links for the interested:

NY Times.

TV Discussion

Most personal computers are also much better at chess than their owners. Still people are proud if they are good at chess. In my opinion rightfully so - to a degree.
That's a pretty scary thought you introduced here, Tobold - one that certainly warrants much more thought. I've taken the liberty to include this in my own article for today as it fits the topic perfectly.

I don't think it's a big step from 'fun companions' to high performance NPC bots for MMOs; the signs are already there and have been for a while; playing with others has become a nuisance for many players, a needed inconvenience, a flawed deal - why not much rather have bots do it? and if the bot even beats the real player, what would keep the competetive player from choosing anything but NPCs to group with?

I guess we can start talking about 'massively multiplayer isolation' at that point. /shudder
As Helistar points out, "theoretically" is a big word. There are some things that AIs can do poorly compared to humans, and if the game is centred around these, they won't be as good. On the other hand, there are some things they can do better. And of course the designer doesn't need to have them obey the same rules as humans anyway. Pets in WoW don't suffer the same damage from AOE spells as player characters.
It's definitely not the case that AIs can be a satisfactory substitute for human players in all games and all situations.
I'm fairly certain that companions will not be allowed in raids. In beta this weekend, we only went to our companions after the other players dropped. We never even considered just going in with companions, though that thinking might be more prevelent as the game ages.

That too is a theoretical statement. But practically I would say that current MMORPGs, up to and including raiding, do not demand skills that an AI would do poorly compared to humans. It would require some programming effort but "If (stand in fire) THEN (move)" isn't really all that difficult for an AI.
Here's a simple explanation why bots would be much better thanhumans when it comes to raiding.

During a raid you perform your duties while getting feedback from the system. Sometimes its fire other times its an AOE that you have to move from. Humans fail because they miss the signal or warning.

A computer program by definition would never miss this signal as it would be part of a logic loop construct. And it would react and prioritize that signal over other actions like trying to get that last hit in thinking you could run away in time.

So the bot basically never misses the inputs and reacts accordingly without emotion (top dps charts). thats why bots could easily replace humans at raids.
I like the idea suggested of purposely programming them to be no better than the average player. Doing this could be tough however.

Another idea would be to make it so that it is not very cost-effective to use bots. Taking WOW as an example, you can make "renting" a bot super expensive for new content. This will limit the number of bots that can be reasonably put into play before you run out of cash. However, if you are a guild and only have 23/25 raid members available one night, you can throw in 2 bots to make up the shortfall without totally breaking the bank. Filling your raid with 10-15 bots would become so costly it would outweigh their benefits. Maybe even scale the price so that the price increases exponentially for every additional bot in your raid/party.
Another thought I wanted to add was that you could add a stats system to bots. This would create variations in their quality. For instance, a "bad" bot would have a large delay between the fire developing at his feet and him moving. This would simulate a player's reaction time. Or you could even add a "chance to miss" feature. Where a bot would get a bad "roll" and forget to perform a specific mechanic, or will perform it with a delay like a less skilled human might.

Additionally, this could be turned into an RPG style system, where a bots level up and their reaction time gets better, and their chance to miss on mechanics gets better with experience.

However, in terms of an MMO being a social activity, a bot could never truely acount for this since they are not very good conversationalists and generally have no personality!
Hey just think those that don't want to deal with others can have thier own raiding guild with no other real people.

Think it won't happen look at LFD and the consequences of that. People will take any idea completely over the cliff if you let them.
Re: Degrin and social bots

So... program them to say 'Gogogo' at the start of an instance and curse a lot at the healer and tank when anyone dies. Ta-dah! ;)
It seems like everyone is asking the wrong questions. Instead of asking whether we want smart bots or dumb bots, what about asking for MMO gameplay that doesn't revolve around raiding to begin with?

No doubt that we have computers better at Chess than humans can be, but who would actually care to watch two computers playing Chess against one another? It is the human element that interests us. If we are at the point where we would rather play with bots instead of other people, that simply tells you that the game designers have failed to incentivize actually playing with other people in an MMO. That is a pretty egregious design failure.

As Espoire mentions, when you get to the point in a game where a blank slot is more valuable than another human being, you have gone way, way too far.

Care to code one?
Choose a combat of your preference which involves "not standing in the fire" and give us some real code.
You'll see that it's not even remotely as easy as you think it is. Contrary to you, I actually tried to plan for a program able to do something similar (it was not WoW and I quickly abandoned the project, since the complexity was not worth the effort: I would have been bored of the game way before finishing my project).
Care to code one?

You're just being facetious. If you or me can't code AI, that is no proof at all. Somebody coded the AI for the SWTOR companions to move into range and select an appropriate attack or other ability. That same programmer could certainly provide the code that would that same companion take a step to the side if standing in fire.
Selecting a target, moving into range (forward) and firing is simple.

Just for the fun, try an algorithm like this:
- your character's position is 2D in a limited square area
- inside the square area there are N circles of constant radius R
- if your position is inside a circle, you must find the shortest way out of any circle (circles can be superposed), which also keeps you in range of M other points (M=1 for dps, M>2 for a healer)
- extra bonus: the number of circles increases with time, and you must make sure your algorithm doesn't get stuck in a corner.

This is not very different from the kind of movement required in a Putricide or Mimiron HM fight. And it's not trivial at all to code.


Ok, let's include all the rest of the world. Can you point me to the source code of a bot which can play a WoW raid? If it's so easy to do, it must definitely exist, no?

No, not everything that can exist actually does exist. One reason is that you are talking about WoW, and WoW doesn't even have companions. The other is that as I was trying to explain, making companions better than players would have serious social consequences.

And I'm pretty sure that the problem you pose is easily solved with a differential equation, and that far easier by a computer than by a player, who basically just makes a "best guess" in such a situation. Plus the player is hampered by his ping and reaction time, so the AI moves a split second before him.
I don't think Helistar was being facetious: The AI in previous Bioware games, such as Mass Effect, shows that the problems can't be trivial. Similarly, even in newer games such as Skyrim, companions are pretty inept.

It will probably be quite a long time before devs are able to get an AI to react tactically and strategically as well as an *experienced* human player can and that would probably require modelling our visual/audio processing abilities and spatial awareness to some extent.
Umm since we are talking about the developers coding the AI's they can even take shortcuts and code them per fight. NPC loads up a script as he zones into instance.... Bots are only hard for those who don't have all the behind the scenes stuff. Now if they were going to make a true AI that made decisions you'd be right. But they won't they'll go with the most efficient route.
It would be absurdly time consuming, if not outright impossible, to script companion AI for every possible situation in the game world...

If developers were able to make AIs behave like human players then mob AI be would a whole load better than it is. In fact there wouldn't really need to be a distinction between PvE and PvP gameplay.

AI is one thing that hasn't really got a lot better over the past few decades - the enemy AI in Sierra's Red Baron was at least as good as what can be seen in recent games and the pathing algorithms for companions in Skyrim are hardly an improvement over those in older games.

If AI was easy, games would be so much better...
No, not everything that can exist actually does exist.

You said that it's "easy". Not that it's "possible".

Reality check:
- WoW is the biggest MMO available, with a huge black market for gold and powerleveling services.
- there are companies selling "gear up" services, who use players to farm the raids and gear up toons for customers.
- an AI like this, even if not excellent, would be a big money maker.

I say that it's not easy by any stretch of imagination. This is why it doesn't exists: it's definitely possible, but just very very hard.
What are you talking about? I'm not talking about gold farmers programming a bot, I am talking about a game developer programming a bot. Very different story, from outside you'd have very limited means, and you would still have to rely on a signal with a ping. A server side bot would know there was fire before a player or client side bot would.

So how can you compare the skills of a player who must react to the information onscreen with the actions of a bot which has access to all server data (= is cheating)?
If the encounter designer adds a bot which plays the encounter "from the inside", then it doesn't even need to be an AI, it can be a part of the scripted boss encounter, no different from what already happens with many encounters with NPCs on the player side.

But, again, this is not what you wrote in your original article.
Did you actually read the original article? Companions (which are SWTOR AI controlled NPC bot and server side) are exactly what I am writing about in that post. Hint: The word appears for the first time in the second phrase, and is then repeated 8 more times. So how can you say my post isn't about them?
Yes I read what you wrote. This part in particular, where you compare the companions to the players:


If you're really talking about server-side NPCs which use "insider information", then this paragraph is meaningless.
It isn't "insider information". The companion gets exactly the same information as the player. Only because the player is miles away from the server, the player gets the information a split second later. And because the player is human, he needs another split second to decide on a reaction, then another split second to press a button, then it takes another split second for the signal to travel to the server.

Thus when the server sends out an identical signal to both a human player and a NPC AI companion, the NPC AI companion will have done the correct response faster, and with less chance to screw up, than the human player. Which is why, given the chance, human players would rather group with companions than with real other players. And the devs need to make companions artificially stupid, so that this doesn't happen.

Even the best raider is slow and stupid compared to an AI. You can't think faster than a computer. A gamer PC can do 100 billion floating point operations per second.

If this was true then Mob AI would be a whole lot better than it is. Game companies would love to create AI with the judgment and flexibility that competent human players have - that would enable a whole different type of gaming - Of course noone could deny that AIs are going to be better at things that require split second reactions, such as say interrupting in Guild Wars. But even here it's a complex decision to decide which skills to interrupt, because that is situation dependent.

In general AIs can be quite easily programmed to make *tactical* decisions, where it's possible to create a forward decision tree that doesn't grow exponentially large too quickly; but AIs are still very poor at any type of strategy:

Chess programs, for instance, essentially work by looking ahead at every branch of the possible forward move tree, although there are some algorithms that reduce the burden linearly (e.g. alpha beta pruning) - Even for something like Deep Blue, with billions of operations per second, the explosion of possibilities restricts the look ahead (usually less than than 10 full moves = 20 ply depending on the complexity of the position).

Humans, of course, don't work like chess computers, we make approximations based largely on pattern recognition & matching. That's not so accurate as brute force calculation (which is why you can't beat a chess computer), but it's much more scalable. That's the reason why humans are so much better than AIs at games where the exponential explosion of forward possibilities is much larger than chess (Gary Grigsby's War in the Pacific being a case in point). It's also why mobs in MMOs are scripted and have artificial mechanics to create the difficulty.
Post a Comment

Links to this post:

Create a Link

<< Home
Newer›  ‹Older

  Powered by Blogger   Free Page Rank Tool