Thursday, December 1, 2011

Companions and bots

Tobold talked a little bit about the companions from the new Star Wars MMO.  He believes that it would be relatively easy to create a bot that could be a better player than any player and let these bots sub in for player roles.  The idea is that although companies could easily create bots that could smash encounters in MMOs they do not because it would make players feel bad that the bots were so much better than them.  Hogwash I say.

Certainly bots have advantages over humans.  They can process data like "I am in a fire" and arrive at the conclusion "Gotta move" within .01 seconds.  They can maintain a rotation of casting spells with 100% of normal efficiency while moving and they are never distracted by their kid crying, a hiccup in connectivity or being hungry.  The problem with bots of course is that they are dumb as hell in ways that are mission critical.  When the boss is casting a gigantic attack the bot is going to die because it doesn't know that 50% of the map is a death zone.  When the group strategy is to clump up on command the bot doesn't understand that - or it takes a single tick of fire damage and wanders in the wrong direction.

The point is that if you program a simple bot to cast spells efficiently and not stand in a simple fire it can beat a terrible player quite handily.  However, if you want that same bot to react effectively to complex or innovative encounters the bot must be programmed with all the strategies ahead of time.  This would be utterly disastrous as it would mean that all the players could simply follow the bot and do exactly what it does - this has to be successful or the bot isn't functional!  There is no possible way to write a bot that can react to interesting situations in useful ways unless you think that the bot can die and then learn to play better next time.  Unfortunately this is simply not possible with the current state of technology - if you think a computer can look at an encounter and devise effective strategy alterations to deal with it then I challenge you to take the World of Logs code from any WOW raid wipe and devise a program that can analyze it and tell you effectively what went wrong with the group's strategy.  You will fail.

The reason bots are bad at playing MMOs is that in order to be effective against anything but the most simple and repetitive challenges they need to have knowledge of the encounter ahead of time.  Screwing up any part of that encounter programming would make the bot useless though and even if you were successful it would really kick immersion in the nuts; players would wonder why their bots were psychic ninjas and anticipated every boss ability on the first try.

That isn't to say that there is no place at all for bots in MMO play.  Finding groups for things can be challenging and having a bot that tries to get out of fire and follows the player around casting healing spells can be great.  Having a tanking bot that just attacks any nearby monster and fights to the death has its place.  These mechanics could make filling 5 man groups or doing quests easier and give people options when their friends are offline but they don't want to play with randoms (or can't find randoms who want to play with them!).  The idea that somehow these bots will be better at playing than the best humans is laughable though.  We can see this in Starcraft 2, where the computer playing as best it can is a suitable challenge for beginners but extremely quickly becomes easy to defeat and is a complete joke to experts even though that game is so dependent on click speed and multitasking.  These bots will only be useful for trivial tasks however as once an encounter really requires strategy or practice the bots will be useless.


  1. I think you're wrong here. I think a bot could definitely be written to parse a log and figure out what went wrong with a group's strategy.

    Your arguments could all be applied to why cars could never be able to drive themselves. And yet they're becoming a reality.

    Of course Google is throwing a lot of money and brains at that problem and players don't care enough about MMORPGs to do the same for a 'raid-bot' but that doesn't mean it's impossible. It's also not what Tobold is talking about. He's not talking about other people writing the bots but the developers of the game writing the bots. And they wouldn't have to learn on the fly... If it's a scripted encounter then the same guy scripting the encounter could script the bot. He'd know half the zone is death because he's the one who set half the zone up that way and the bot could trivially respond to that situation.

    You say that players would just follow these bots around and it would wreck encounters and kick immersion in the nuts... How is that any different from running DBM? Most raiders never think about how to deal with an encounter as it is. They just do what their screen tells them to do! Mimicking a bot could actually be better than the current state of raiding! Right now people don't notice they're standing in fire. They notice that their screen is flashing red and there's a big message saying MOVE OUT OF THE FIRE in the middle of it.

    The bots are psychic ninjas? How is that any different than watching videos and reading strats for bosses before engaging them? How is that any different than having one person do so and then explain the fight on Vent?

  2. There are definitely encounter designs possible where the bot works fine. If the boss has simple "I kill everyone in this zone" attacks and the only thing you need to do is avoid them then bots could be set up by either players or developers and work. However, what happens when you need to assign healers to particular tasks and one of them is a bot? Is it going to do what you want it to? Will it respond in the way you want it to when something goes awry with the plan? Hell, you can't even make a plan without knowing how the bots respond to each particular issue beforehand.

    So it depends on the MMO style. If you want easy raids with encounters as difficult as say Molten Core was then yes, the developer could write bots that could be functional. If you want really challenging encounters and you want the players to have the freedom to tackle them with innovative strategies then I don't think bots are remotely feasible. Keep in mind that the bots would have to be programmed to understand every class mechanic and which can be used to defeat each particular fight element - (I have to remove the hunter's debuff because he is kiting. If our mage was still alive he would kite instead) A bot isn't going to be able to handle that stuff.

    You are probably right about immersion though. People would just use the bots as guides to beating the encounter. (In fact bots would probably become mandatory, raids full of players would be much worse off!)

    I would actually argue that driving a car is easier than raiding at an extremely high level, and by a substantial margin. Of course driving a car is much harder than trivial farm raiding that a lot of people do. If you were writing a log parser how would you find out that the hunter who was kiting the mobs cut the corner too tight? You can tell that the mobs ate the healer, but there is no information there telling you *why* that happened. Again, if the encounter is as simple as 'get out of the fire, heal the unavoidable damage, kill the adds fast enough' then a log parser can identify the point of failure but serious fights are way more complex than that.

  3. I just think to how much time and effort was spent explaining fights over and over to some of our more special recruits. I'm very confident that I could write a healing bot to do a better job than quite a number of our healers in TBC, for example.

    I don't think bots in general need to know about every class mechanic just like how most of our actual players would be completely oblivious to other class's mechanics. How do I know the hunter is kiting? My bot has access to threat meters. I'd argue a bot is better at knowing who is kiting than the actual players! Even when I was the one doing the kiting on Magmaw I didn't know if I had aggro on them or not! I just threw down my AEs and ran off hoping I had aggro on them. I am certain I could write a bot that would do my job better than I did, just as I am certain that I did that job better than most people did. A bot would absolutely be able to handle healing a new kiter on the fly, and much better than most humans who are raiding!

    Tobold's whole point was that if you actually provided bots that were this good that players would choose them over other humans. I certainly would! I'd probably still be playing WoW if we could have brought a couple of decent DPS bots to raids!

    You obviously can't narrow it down that it was an explicit kite path issue from just the log but you could certainly derive that the problem was the mobs caught up to the kiter. But this is no different than what I would regularly do with the combat logs... Narrow down what the likely problem is and then tell people what went wrong and get them to fix it.

    This is no different than as it currently stands. Most raids have no innovation in them at all. (And by this I mean most groups of raiders and not most fights.) People rarely come up with their own ideas. They find someone else's idea and try it out until it works for them.

    I think you're really overestimating how hard it is to raid at an extremely high level. Pretty much across the board when I think about wiping over and over on fights while waiting for some people to be capable of following the instructions given. Fights would always progress as follows... (Except fights with gear checks, of course, where you might know the fight but be incapable of going it without more resist gear.)

    - wipe a bit while learning what the new fight mechanics are
    - wipe a bit while learning how to do the new tricks of the fight
    - wipe a bit while learning how to do the new tricks of the fight AND your normal job
    - wipe a lot while waiting for everyone to figure out the last step

    Bots would completely wipe out the last two steps. And if the bots were written by the company making the encounters they wouldn't need the first two either!

    Do you remember when one of the raid add-ons was capable of drawing on the screen and Blizzard eventually had to change its API in order to break it? They had to do so because it was essentially a bot telling the players what to do and where to go! Remember how they had to change the API to remove the ability for mods to update buttons in combat? They had to do that because the mod was working out who needed to get healed and players didn't have to think about who to heal anymore. IE: healing was botted! The mod was even called healbot!

    We may not be at the point where you could have bots that learned fights from scratch but I am 100% certain you could write bots which could replace the vast majority of players on learned fights. And learned fights are what the vast majority of players do!

  4. I know I'm late to the party, but I want to say something about the drawing on the screen mods. They sometimes did tell plays exactly where to stand, but it depended on the encounter. Another thing they did that was super helpful to people was draw a circle around them on the ground showing the radius of splash effects so no one got hit by chain lightning.

    Seeing yourself in a bunch of overlapping circles and then moving so that you aren't overlapping anymore is a problem that humans are still a lot better at solving than computers. There will be many similar problems in encounter design. Also remember that they only have so much processor time and memory to devote to bot AI.

    Ultimately playing with bots would completely eliminate the possibility of innovation. Not just because people would follow bots around, but even people who were trying to think of things would have to play by the prescribed strategy for fear of confusing the bot and making it do something foolish. There would be entirely new mechanics to master, like kite-the-healbot duty, dragging it to where we want it to go by becoming injured and then staying just out of its healing range - at least to beat the hardest encounters.

    In raid encounters, generally computer allies are no different than computer enemies. They are just mechanics to overcome. No doubt they can make it easier rather than harder, but an easier way to make it easier is to give the boss less health.