What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

the Turing test

Status
Not open for further replies.

odarn

New Member
Joined
Jun 20, 2013
Messages
378
Reaction score
2
Turing was a pioneer in computer programming and artificial intelligence. He asked the following question: could it be possible to program a computer to answer questions in such a way that it would fool humans during at least 5 minutes? That is could the human users believe that they are dealing with another human and not a machine? There has been many successful attempts at creating such a program, but of course very limited in scope. People who would like more details can google on Turing and AI.
What botters are dealing with is a very complex example of a Turing test. The problem is not only the scope (Azeroth is a big world, and there are many humans around, not counting the system ai and the gm's), but also the duration. 5 minutes just don't cut it anymore. So the question remains: how to make a bot behave and react as a human?
 
So the question remains: how to make a bot behave and react as a human?

Nice question.
Bigger question: what's the difference between humans and computers?

Mmm, let's think about it...

Maybe humans make mistakes and correct them in a couple of seconds... And they are not as fast as a computer... And they learn from past experience... And they are creative.

Basically, a bot should be aware of its existence and evolve.

Damn!

EDIT: Correction, a bot should ACT like it's aware of its existence and should simulate evolution.
 
One very successful approach to this problem -Cyc- is not rule-oriented, as most are, but knowledge-based. Computers are per definition rule oriented, so each behavior which is such will feel and look like a bot. Humans are at the same time simpler and more complex. The number of rules humans seem to follow is staggering. Cyc is one of the oldest projects, back in the 80', and is still far from completion. Its main philosophy is that computers should rely on what is called human common sense. A sense that is not put easily in a few logical patterns. Maybe that is something worth taking into account when writing profiles: you must abandon a holy grail in computer programming: the re-usability of code. Every piece of code that is reusable is suspect. A human decides on the spot what to do, and there are very few rules that can be applied blindly. How that can be used in writing profiles is something i have no clear-cut answer for.

edit: a very challenging implementation to the Turing test would be a bot that submits a ticket and has a conversation with a gm without being recognized as such! It would certainly not last longer than 5 minutes. Of course, once it is known, Blizzard will take countermeasures...
 
Maybe the following lines will get more reactions. But remember, a rule by itself is always a dead giveaway. Its only because humans are capable of applying many rules to the same situation that their behavior seems natural to other humans. And of course, the 4 rules mentioned are certainly far from enough to create a natural bejhavior. But maybe with enough input from the community we can get nearer to our goal. And also do not forget that rules can be contradictory and inconsistent with each other!

bot survival rules:

1) never run in a straight line if there are mobs ahead. grind your way thru if necessary, avoid when you can
2) never walk by a quest item or quest mob that is within your reach to get another one further away.
3) only avoid if the way is clear. (Humans do not run blindly in the arms of other mobs just to avoid the one they are facing. Dying in the first fight is more natural)
4) stop trying to get over an obstacle after the first or second try
 
Maybe the following lines will get more reactions. But remember, a rule by itself is always a dead giveaway. Its only because humans are capable of applying many rules to the same situation that their behavior seems natural to other humans. And of course, the 4 rules mentioned are certainly far from enough to create a natural bejhavior. But maybe with enough input from the community we can get nearer to our goal. And also do not forget that rules can be contradictory and inconsistent with each other!

bot survival rules:

1) never run in a straight line if there are mobs ahead. grind your way thru if necessary, avoid when you can
2) never walk by a quest item or quest mob that is within your reach to get another one further away.
3) only avoid if the way is clear. (Humans do not run blindly in the arms of other mobs just to avoid the one they are facing. Dying in the first fight is more natural)
4) stop trying to get over an obstacle after the first or second try


and like I experienced last night, my bot continued repeatedly to mine an ore node that wasn't able to be looted for some reason.. perhaps a tripwire placed there to catch bots??
 
5) jump where the leader jumps. Don't take the long route.
6) Don't follow a fleeing mob if you are melee.
7) don't walk like Rainman (turn in straight angles).
8) You have to kill every mob for the final boss to appear in Wailing Caverns. (This a typical knowledge rule)

edit:
9) don't walk around in stealth mode in town.
10) don't use food and drinks or visit vendors in the start zones.
11) don't keep staring at a wall if you cannot go any further. Logout as quickly as you can.
12) never go back and forth like you have lost your mind.
13) don't (always) take the most efficient or shortest path.
 
5) jump where the leader jumps. Don't take the long route.
6) Don't follow a fleeing mob if you are melee.
7) don't walk like Rainman (turn in straight angles).
8) You have to kill every mob for the final boss to appear in Wailing Caverns. (This a typical knowledge rule)

edit:
9) don't walk around in stealth mode in town.
10) don't use food and drinks or visit vendors in the start zones.
11) don't keep staring at a wall if you cannot go any further. Logout as quickly as you can.
12) never go back and forth like you have lost your mind.
13) don't (always) take the most efficient or shortest path.
I don't get number 9 - why not? With the right spec, you move faster while stealthed.
 
I don't get number 9 - why not? With the right spec, you move faster while stealthed.
It seems very conspicuous to me. But of course i may be wrong. Those rules are no absolutes. My final goal would be a very flexible set of rules from which one could choose according to circumstances. It would form a knowledge base for BH to be used by profile writers. The next step, for which i have and will have in the foreseeable future no credentials, would be to translate those rules in xml or cs files. [I was quite proficient in Assembler some 25 years ago, but have done little to nothing in programming since then]. And please, feel free to add to the list.

edit: i see a lot of stand-alone profiles which rely on the base bots that HB offers. But i could not find any profile that implemented the lego philosophy. Every routine or sub-routine is fully contained in the profile. I really do not understand why there is still no library of routines which then could be called with the proper arguments. For instance, the rule

1) never run in a straight line if there are mobs ahead. grind your way thru if necessary, avoid when you can

could be called with the end destination, the mobs to avoid, etc. It could be then used by any profile writer.
 
14) user input has always priority.[there is nothing so frustrating then helping your toon over an obstacle and then see him retrace his steps back into the same trap!]
 
15) Avoid obstacles in a natural way. Is it a stair/step/threshold? A tree? A wall? A hole? Going a few steps back, then to the side, then forward again looks very "botty". Keep a dynamic database of those glitches, usable by every toon. [no use putting it on the internet, it would be sabotaged immediately by blizz].
 
14) user input has always priority.
Seems to me very easy to implement. After all, the new situation, created by the user, is not any different from the one in which the user stops HB, plays a while and then restarts HB.
 
15) keep track of the flightmasters you have visited to update the list [1 visit is enough]
16) do not leave the quest area because your bags are full. Finish the quests first. [it seems rather dumb, especially if it has taken the toon a long time to fight his way thru to the where he had to be]. Stop looting so far or destroy lesser value items [what i certainly would do!].
17) Don't start at a new zone before turning in all the quests you have completed.
 
18) Never delete completed quests. [A sin perpetuated by kicks and cava]
 
18) Never delete completed quests. [A sin perpetuated by kicks and cava]
Same thing as 17.

15) keep track of the flightmasters you have visited to update the list [1 visit is enough]
16) do not leave the quest area because your bags are full. Finish the quests first. [it seems rather dumb, especially if it has taken the toon a long time to fight his way thru to the where he had to be]. Stop looting so far or destroy lesser value items [what i certainly would do!].
17) Don't start at a new zone before turning in all the quests you have completed.

16) The bot would need a built in way of deleting grey items in the middle of an objective group. Sure plugins can do this, but profiles are read in a linear fashion. Meaning it doesn't know what a quest area is, so we'd have to define areas using special profile tags which would take lots of work and additions to make this happen for a minor efficiency gain. When in reality just get bigger bags because profiles should force vendor visits often.

17) This is also a similar issue. Efficiency wise a real player would immediately stop what they were doing once you obtained the level for a new zone, turn in all completed quests, and abandon the rest. Me and Brodie are also adding quest abandonment commands because losing the XP from turned in quests is less of an issue than full quest logs (bot breaker). We'd have to create massive conditions to accommodate while keeping in mind any quest it may have, or we would need to create a custom behavior that would put everything down, and turn in all completed quests. Therefore compromise is made and we try to place these checkpoints at the end of quest TurnIn cycles, but we won't go out of the way for a single quest, especially if the quest turnin is complex or obscure. My complex hypothetical behavior would be as so...


  • Scan for quest TurnIn NPC's within the TurnInRadius
  • Turn in any quest completed based on closeness to TurnIn NPC.
  • ForceTurnIn quests would be completed first, and always attempted.
  • IgnoreQuests would not be turned in, for example zone transfer quests.
  • If I can't find a path to a TurnIn NPC, (if it's an object it can't), needs to fly, outside of the radius, ..etc it's ignored.
  • The abandonment script would be run in the followed LoadProfile and would wipe the log like normal.

<CustomBehavior File="ZoneFinisher" IgnoreQuests="XXXXX" ForceTurnIn="XXXXX" TurnInRadius="2000" >
 
I can understand the efficiency arguments which would justify abandoning completed quests. On the other hand, many people, if not all, are interested in a loremaster achievement, unless they already have it. Moreover, the automatic wiping of the log very often happens even before quests can be turned in, in case for instance HB is restarted for one reason or another. I have stopped using HBR for this reason, i kept losing completied quests because hbrelog randomly restarted HB.
I would personally opt for the automatic deletion of all non completed quests, and leave it up to the user to decide for the completed ones. Furthermore, i would add:

19) Put any setting that the user can change in a file that is not overwritten without express approval of the user.

That should be really self evident, but as far as i know, Kicks and Cava make decisions that can only be be undone by editing each (part of a) profile each time it is updated. Which is very tedious and prone to mistakes.
 
and i want my bot to curse more. every time i get stuck, i want my bot to say "YOU POS, GET OUT OF THE DANG WAY, FREEKING BLIZZ ALWAYS PUTTING ROCKS AND CRAP IN THE WAY'

I want random speech like 'what ilvl do you need to do OON?' 'Anyone know any good guilds?'

i know there are plugins for this, but make HB less like LEGOS and more like chewing gum. you unwrap it, and it works.
 
@Liferose
Because profiles are linear they will always produce bot-like behavior. One way of diminishing this effect goes against all efficiency arguments: having the bot run all rules every time it has to take a decision! This is what we do with our brains, chosing between thousands of rules which one to apply to a certain situation. The way brains are build makes a pre-selection easier. Every situation has elements which call other elements (associations) which then become relevant somehow. I realize that it would be impossible to emulate a brain in a profile, even a supercomputer would have a hard time analyzing a situation the way a brain does. But we have a world which, even if very complex, is still very simple compared to the real one. What profile writers (also) need are tags which describe types of situations and the rules that can be applied to them. I don't know if that would be possible, but it certainly would be a giant step in creating more natural behavior.
 
and i want my bot to curse more. every time i get stuck, i want my bot to say "YOU POS, GET OUT OF THE DANG WAY, FREEKING BLIZZ ALWAYS PUTTING ROCKS AND CRAP IN THE WAY'

I want random speech like 'what ilvl do you need to do OON?' 'Anyone know any good guilds?'

i know there are plugins for this, but make HB less like LEGOS and more like chewing gum. you unwrap it, and it works.

When RSA stopped being made I was looking for another spell announcing addon. SpeakinSpell will make jokes and talk about literally everything you do from mounting, talking to npc's, specific class abilities. It may draw attention, and most people will notice it's an addon, but regardless you can reprogram it to do lots of things.

@Liferose
Because profiles are linear they will always produce bot-like behavior. One way of diminishing this effect goes against all efficiency arguments: having the bot run all rules every time it has to take a decision! This is what we do with our brains, chosing between thousands of rules which one to apply to a certain situation. The way brains are build makes a pre-selection easier. Every situation has elements which call other elements (associations) which then become relevant somehow. I realize that it would be impossible to emulate a brain in a profile, even a supercomputer would have a hard time analyzing a situation the way a brain does. But we have a world which, even if very complex, is still very simple compared to the real one. What profile writers (also) need are tags which describe types of situations and the rules that can be applied to them. I don't know if that would be possible, but it certainly would be a giant step in creating more natural behavior.

It's a very interesting topic. Surely I love it when we get new profile toys and behaviors, while keeping pragmatical about "What can go wrong, will go wrong." I think one of the major deterrents in terms of profile issues at the moment is the Objective tag. While it may have some literal bugs, most players won't simply go after one objective at a time. We usually get away with this because we can tell behaviors to kill things around our desired XXXXX, but it's never really weavable. If a quest said to kill 20 spiders in this area, and interact with the baby ones to collect them. We put the interactwith first, and if the spiders are red it will kill them so the interaction isn't stopped abruptly. This doesn't work with multiple complex quests that needs behaviors or yellow mobs. Hopefully if a new CollectThings is created we could tell it to kill MobId="XXX" MobId2="XXXX". Or since InteractWith is absorbing other behaviors some kind of InteractByCombat="True" or something.
 
20) Never precede the npc in an escort quest. [my toon was busy with one, and i saw another player on the same quest also preceding his npc, and i thought to my self....what a wonderful world!]
 
Status
Not open for further replies.
Back
Top