Slashdot Mirror


Quake Bots Rock The Prefrontal Cortex

0x4B writes "Some researchers from Vanderbilt University have used id Software's Quake III Arena to test a model of the human prefrontal cortex. The model was injected into the control systems of a Quake Bot, allowing it to flexibly adapt to changing enemy characteristics. The bot was required to identify the vulnerability of its enemies to different types of weaponry through repeated combat trials. Not only are the bots busy shooting each other relentlessly, but you can catch the action by joining the battle as an observer. Source code and Quake virtual machines are available for download."

30 comments

  1. Caught by JohnFluxx · · Score: 4, Funny

    Sounds like they were caught playing quake during work hours, and had to make up an elaborate story :)

    nah just kidding.. But from the /. blurb, it's not that cool if all they can learn is what weapon is best.

    1. Re:Caught by Hogwash+McFly · · Score: 5, Insightful

      With my experience with bots from various FPS games on several platforms is that the bots autoswitch to the most powerful weapon and stick with it until they die and/or run out of ammo.

      The result? A close quarter battle where the bot is trying to snipe you from four feet away when he has a shotgun in his inventory. Or a map with copious amounts of one weapon becoming a single weapon map (Rocketfest, Sniperfest etc.)

      If a bot can select an appropriate weapon based on a multiple factors than it serves to add to more realistic bot gameplay. Have I just popped in to a dead end? Then the bot should bounce grenades into my little enclosure. Am I clearly running for the flag? Then the bot should line the corridor with bio sludge to hinder my efforts. Am I flying through the air from a rocket jump? Then the bot should try and place a rocket at my landing spot as well as/instead of trying to continually fire rails at me.

      --
      Mother, do you think they'll like this sig?
    2. Re:Caught by HTPC+Junky · · Score: 2, Funny

      I think this is a great step towards Agent Smith. Normal game AI is just scripted and predictable (boring). If this makes it harder to tell a person from a bot, then bring it on. I would love to see Half Life 2 with 32 internet players, and another 32 learning bots in the mix. I wonder how long before the bots consistency beat the real people!

    3. Re:Caught by Hogwash+McFly · · Score: 4, Interesting

      Imagine if, in the near future, as well as a testing period, FPS developing houses have a 'learning period'. In this time there would be extensive testing of all maps/modes/mutators with just bot games. Over, say a one week period, the bots are left to their own devices, fragging 24/7, developing their algorithms on a daily basis as to become more and more adapted until at the end you, hopefully, have a very intelligent bot.

      All you need are a little 'human' boundaries - +/- percentage of aiming error, +/- path deviation distance etc. defined at the start and you're set.

      --
      Mother, do you think they'll like this sig?
    4. Re:Caught by Soul-Burn666 · · Score: 1

      Not only that, they were caught using Aimbots!

      --
      ^_^
    5. Re:Caught by ddd2k · · Score: 1

      Actually quake bots are programmed to have weapon different preferences in their individual characteristics. the nightmare version of xaero has 99.9999999% accuracy with the railgun and hits u anytime anywhere any distance.

    6. Re:Caught by Devir · · Score: 2, Informative

      that would be genetic algorithms. The menioned bots use what I believe is Neural network modeling specifically the frontal lobes of the brain. If genetic, neural and fuzzy algorithms could be merged into one bot you'd have one hell of a killing machine. of course you'd need some super computer to run them. Unless you only used the genetic algorithms for in house creation.

    7. Re:Caught by tamer*f · · Score: 1

      I would agree that a bot with only the ability to determine the best fighting weapon is not entirely impressive. Our main goal was to enhance the model we were working with so that it could function in a rich environment like QIII. What's cool is that the bot using this model was able to not only learn a strategy for weapon selection through practice, but then discard its strategy and quickly adapt when we changed the rules on it.

      For instance, the experiment starts and our learning bot figures out that its railgun can harm opponents with the red quad damage shader (what we refer to as the red shield). Great, it starts whooping ass and it's happy. (This kind of thing can be achieved with a simple backprop NN amongst other things). Then we switch the rules on it, making its railgun only effective against players with a certain character model or something like that. Our learning bot starts to suck, since it's still paying attention to shield color, now a useless detail. What's cool is that it will scrap this idea and start experimenting until it figures out that the character model is what it should be paying attention to. And it does this fairly quickly.

      So essentially, it's this short term changing of strategy that some scientists believe the human PFC is responsible for that makes for a cool bot, not really our little weapon switching scenario. There are many uses for this talent that I think could really make a great automated player in FPS games.

      -Tamer

  2. bots don't piss about or be irrational by DrSkwid · · Score: 4, Funny

    they day the bot switches to grapple and follows PCs round laughing at their hopelessness all the while grappling them to death I'll know their finished.

    Or shooting someone with shotgun cos they'll fall backwards into the lava.

    Or camp under the stairs when their bored

    etc.etc.etc.

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  3. Output... by wowbagger · · Score: 2, Funny

    The output from this mod, after it has been running a while:

    I frag, therefor I am.

    How long until Valve adds this to HL2?

    Perhaps this is what is holding up Duke Nukem Forever?

    1. Re:Output... by Anonymous Coward · · Score: 0

      From what I've seen, some of this type of learning (or at least the ability to mimic this type of behavior) IS in halflife 2. Check out the 20 minute tech demo that was posted a few weeks ago.

  4. slow learners? by den_erpel · · Score: 2, Informative

    I just tried it for about 5 minutes (seems to me that this should be long enough for beasic learning), but the bots (with Quad colours) just seem to run around and do not react at all, no mather how many slugs I shoot at them.

    I tried it with various settings of difficulty :( Am I mssing some README?

    --
    Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
    1. Re:slow learners? by den_erpel · · Score: 1

      It is getting better, I just discovered an magic weapon, think shotgun and machine gun mixed :) combined with god mode :P

      the shots are on
      , 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
      Check out the waited shotgun shells :)

      --
      Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
    2. Re:slow learners? by JBv · · Score: 2, Informative

      Just a suggestion to make tthe pics clearer:

      \seta r_vertexlight 1
      \seta r_drawgun "0"
      \seta com_blood "0"
      \seta cg_brassTime "0"
      \seta cg_drawCrosshair "5"
      \seta cg_crosshairsize "24"
      \seta cg_marks "0"
      \seta cg_gibs "0"
      \seta cg_blood "0"

  5. Not Close Enough by Acts+of+Attrition · · Score: 5, Funny

    An interesting development, but if they really want to replace human players they still need algorithms for name-calling, complaining and cheating.

    1. Re:Not Close Enough by Hogwash+McFly · · Score: 1

      I know that was intended humourously, but have you ever played Counter Strike with POD Bot? Damn that gets annoying, with all of the random name calling and complaining it's just way too OTT. I mean, I know that I'm not playing with real players so why try and fool me into thinking that a real person just told me 'great shot Hogwash!' when I'm just camping behind a crate?

      --
      Mother, do you think they'll like this sig?
    2. Re:Not Close Enough by Alpha_Nerd · · Score: 1

      They do!!

      I was playing with some random CS bot a few years ago... And all of the sudden it started playing 10x better and started saying things I had never seen it say before. For a few minutes I thought maybe it had evolved lol.

  6. AI programming by one9nine · · Score: 1

    Can anyone comment on what types of AI algorithms they use to do something like this (neural networks, markov, etc.) or know of any good resources on the net?

    1. Re:AI programming by tamer*f · · Score: 2, Informative

      The model of PFC that we used is a simple backpropagation artificial neural network with some modifications. Recurrent connections to layers with special activation weights enable the working memory and cognitive control functionality of the model. It would be a little much to clearly describe it here, but if you are interested you can check out http://psych.colorado.edu/~oreilly/pubs-abstr.html #01_id_ed -the original paper describing the model. I've made an effort to describe it in simpler terms on the site we are commenting on. There are plenty of neural net resources and sites on the internet. If you are interested in Game AI I suggest checking out the book "Game AI Programming Wisdom" edited by Steve Rabin. Even if it's too technical or you're too busy to use the techniques yourself it's interesting to see what's going on behind the scenes in your favorite games. Also, the source to our mod is available and includes some very simple and useful NN utilites written by my Professor. I believe I listed the names of those files at the bottom of the downloads page. Please read the GNU public license first. Hope this helps. -T

  7. This could make for some cool cheats by Anonymous Coward · · Score: 0

    I am so ready for a thinkbot.

  8. That reminds me of the time... by Smid · · Score: 1

    When we left our clan Unreal Tournament server going for a week with godlike bots with no timelimit and forgot about them...

    Came in for a visit, and it was loque, tamara and another versus poor old Desloch by himself. 769 caps to 212.

    Evened the teams a bit and Deslochs team had picked up another 400 caps a day later. What a fighter, eh?

  9. An ending to the story by PD · · Score: 1

    "And that was how I spent my childhood", said the T1000.

  10. help! by Polo · · Score: 1


    We must create an Arnold bot to defend ourselves!!!

  11. RE: I didn't read the article, but I ran the mod by monkeyserver.com · · Score: 2, Insightful

    Ya, RTFM, the point of this isn't to make them good at kicking your butt. This bot is supposed to be pitted against two special dummy bots, name one and two. Then it can react to the bots chaning their sheild. blah blah blah, it's actually a very cool use of nueral nets, but you wouldn't know that unless you read it :)

    --
    http://monkeyserver.com --- weeeeee
  12. Re: I didn't read the article, but I ran the mod by den_erpel · · Score: 1

    Yeah, I figured that one out already after reading the sites.

    I was a bit more enthousiastic, but now I think it's basically a first try, lacking an implementation, not really /. material if you ask me.

    Sigh, again one of those decent ideas, but once again ideas do not implemented by themselves.

    Move along, nothing to see.

    --
    Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
  13. How to run the mod by tamer*f · · Score: 3, Informative

    It seems like it is a little unclear to some people how to correctly run our mod (largely due to me leaving out significant details on the download page). It is intended as an experiment involving one learning bot utilizing the PFC model and two special dummy bots. You need to make sure you run the game using the map I made so that the bots have constant interaction. Using the command line listed on the download page, start the game, and then switch yourself over to be an observer. Run the following console command: /idscenario

    Now you have some very colorful dummy bots with unoriginal names running around doing nothing. But it gets better....

    Use the console command /addannbot just like you would /addbot to put a learning bot in the mix. For best results, use a bot that doesnt suck. Now switch over to the learning bot's first person view to see the status of its Neural network and PFC layers changing as a result of its perception. Igor, its aliiive.

    Now, there is no damage or death in the mod because we didnt want this to complicate the experiment. What you should see is a blue icon appear above an enemy that is hit. A deflected shot will bounce off like it hit the invulnerability sphere. When the bot hits, you will notice the little white box at the top of the network status overlay (upper right corner of the screen) go solid. This signals that the bot got a reward.

    Directly under that are two yellow boxes, these represent how much the bot wants to choose each weapon (full is highest). Once the bot learns something you will notice these switching dramatically in response to the characteristics of its enemy. The bottom row of red boxes shows the characteristics of the current enemy (shield color, gun color, position, ID).

    Now with all this information the bot tries to figure out what about its opponent is important in deciding how to kill it. The top row of yellow boxes at the left of the screen encodes what dimension the bot is considering, shield color, gun color, location, or ID(name). When the bot picks the right dimension, it can reliably slam its opponent with the right beam color. When it chooses the wrong dimension, it performs miserably until it gives up and explores something else.

    Our experiment is set up such that the first correct dimension is shield color. After the bot figures it out the experiment will autoswitch to the ID dimension. When this happens you will see a message appear at the top of the screen in red. When its behaving well, the bot will catch on quickly.

    Thanks for checking out the mod, and sorry about being late with this info. If you've got questions a lot is explained in the code walkthrough on the site, otherwise just ask me here. cheers,

    -Tamer

  14. Re: I didn't read the article, but I ran the mod by tamer*f · · Score: 1

    Hi dan,

    I was wondering what gave you that impression about our mod. Did you run it correctly? Please refer to my post about seting up the experiment. I realize now that I should have put clearer instructions up on my site.

    -Tamer

  15. Re: I didn't read the article, but I ran the mod by den_erpel · · Score: 1

    Well basically I read the article with interest but messed up in one particular point: I used /addbot instead of /addannbot. k. I only noticed this after reading the article again this morning.

    so /idscenario /addannbot

    seems to do the job nicely :)

    I am not that much interested in the gaming applications, rather than the experimental setup in itself. Basically a hobby from past research.

    Being more verbose in the output would really be interesting.

    Do you plan to put serveral ANN bots opposing each other? As I can see now, several ANN bots converge on shooting one and two (with some exceptions). I guess it would be interesting to see how 'characters' would be forming in bots when there is e.g. negative feedback.
    (e.g. avoid punishment at all cost vs. punishment does not make up for potential gain).

    --
    Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
  16. reward by tamer*f · · Score: 1

    One of the things that made our task hard was the unpredictability of the Quake world. In other words, when the ANN bot misses a shot completely it is unable to get any useful info from it, potentially confusing it. The situation where it shoots the right gun at its enemy and hits the other bot sometimes arose as well. This made locking on to the right dimension difficult for the model because of this unreliable reward schedule. If we gave too much reward for a hit then the ANN bot could get stuck on something random and never give it up. If we didnt give enough reward it would never be convinced that it was doing well. Also not knowing when the ANNbot will score its next hit made things tricky.

    We havent given much thought to applying the model to a different task yet. We simply wanted to see if the model could overcome the complexity of the QIIIa world. Since i recently graduated I'm no longer working on research projects as much as trying desperately to get a job.

    Speaking of positive and negative feedback, one of my earlier forays into NN's in QUake IIIa was a simple mod where I controlled where the bots aimed different weapons with TD learning (a technique where a NN gets trained through rewards based on the action the agent took). Not having the right rewards produced some interesting bots: When I only gave positive reward for hitting an enemy the bots learned to spin in circles either to the left or right because this behavior guaranteed they would at least get a shot in on someone once a rotation since there were so many bots on the map. To fix that behavior I had to give small negative reward for turning away from an opponent and larger positive reward for killing the enemy. This encouraged the bots to finish the job instead of spinning around whipping rockets at enemies across the room.

    Another thing that was wierd is I would start like 10 of these bots training, all equals with the same untrained network, and after a few hours some of them were completely hopeless and others were brilliant. It seems that their experieces during training were responsible for the difference. Some bots learned themselves into corners, eventually expecting their own failure and essentially giving up. Others would get better and better the longer I trained them. It's difficult to try to think of what these experiences were that caused some bots to get depressed and others to succeed.

    -t

    1. Re:reward by den_erpel · · Score: 1

      Nice, it this 'mod' also available, because I find this one actually more interesting than the one you posted.

      I think I would be able to spend quite some time to see these bots evolving :)

      --
      Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."