No announcement yet.

Bot Config: Human Like Bot?

  • Filter
  • Time
  • Show
Clear All
new posts

    Bot Config: Human Like Bot?

    A bot has:
    • Aggressiveness : 0~1
    • Accuracy : -2~2
    • Combat Style : 0~1
    • Strafing Ability : -2~2
    • Tactics : -2~2
    • Reaction Time : -2~2
    • Jumpiness : 0~1
    • Preferred Weapon :

    which values in your opinion will result the closest human like bot?
    esp for 1on1?
    is there any custom AI that understands the value of shields?

    btw, anyone know what this "Combat Style" is?

    Not really sure what you are trying to accomplish, but i know what Combat style does. It is another way to manipulate aggressiveness. When I change combat specs of a certain bot, I can change either Aggressiveness or CombatStyle, it does the same thing.


      You can't make a bot play like a human. If it were as simple as setting those settings, Epic would've already done it, themselves. The AI simply isn't capable of playing like a human. Best it can do, is mimic it.


        Not really. UT2004's bots are some of the worse I saw around, even when compared to bots of the Unreal before it. They are extremely aggressive, aim in way that are completely illogical, and have a lot of things that are just plain non-sense. No offense, but I really don't know what their writters thought when writting their AI.

        They are exactly the opposite of any humans. Changing settings affect them a bit, but you really won't make them any more fun, or human-like, to play against.


          i know...i just wanted the best possible solution when playing offline but with no friends around to play with...

          So, increased combat style means increased aggressiveness?

          there are SO many good moder/coder for UT. why didn't anyone make a nice AI?


            @ Jake-SF (& CvP): What exactly would make the bots more human like? Would they use different tactics? Change play styles (sniper versus charging assault) on the fly? The reason i ask is that I'm working on some custom (modded) AI code for my mod and I'm curious what additional things people see as needing to be fixed/improved in the AI behavior.

            @ CvP: Did you ever try Superbots by mysterial? IIRC he improved their translocator use and shieldgun use among other things.


              Let's see...

              The bots are too agressive. Yes, some humans are very aggressive. But not all, in fact, most stay at some distance from you and try to strafe while attacking you. The bots often never seem to stop until they are "in your face".

              The "cone" which they use for aiming is a very inaccurate way to mimic how human player aim. I don't know how game deal with this generally however, but lets just say that with players, its pretty much the other way around. Close up, its very difficult to hit a player directly, but the bots never miss a flak at close range. And from far away, its actually somewhat easier to aim, and when you miss, its not that off. But the bot's cone make them seems like terrible shot at long range.

              However, at very, very long range, in big ONS map, they actually seems to aim quite well with hitscan weapon, which is weird.

              So, their aim must be adjusted. When I see them using the link gun from far way, their shooting makes no sense. They just spam randomly around me. Which is quite odd. At close range, they should have a good chance to miss.

              They also have problem with choosing the right weapon. Using a rocket launcher a miles away is just something no player ever do.

              More specific things : At close range with a link gun, they always use secondary fire. Why? A lot of players prefer to use primary fire, which actually deals more damage if you get more shot in. Some prefer secondary fire, yes, but these are very good shot. All bots shouldn't use secondary fire at close range.

              As far as I remember also, they mainly use flak primary at close range. Most flak players are not too aggressive and use both primary and secondary at close range.

              Thats all these kind of behavior I hate. Unreal 1's bots actually stayed at a certain distance and never went "in your face" just for the sake of it, and I wondered why they changed that. That and the way they aim is their biggest problems. They also need more "random" behavior, so that they do not act always exactly the same. But thats something much harder to do.

              A few other stupid things about bots are their REFLEX at dodging. They should have an delay of 0.25 seconds before actually dodging something, instant dodging is impossible, and I don't see such a delay as something really hard to do. Highly skilled bots also automatically wall-dodge as fast as its possible. Most average players never wall-dodge out of nowhere in combat.

              Other small things is their invincibility to their own shield gun when they shield jump. Stupid. If they do it, they should lose health like everyone.

              They also still see you for a while even when you get behind a wall. This is also a stupid behavior. When you get out of their sight, they should either try to follow, take another path that leads to where they saw you go, or ignore and try to find other targets to kill/something else to do. And they shouldn't "see" you anymore. That completely kills the possibility of surprise attacks.

              They are also too easily aware of your presence. Ambush is impossible, they always see you when you are there and spot you no matter what. Height, covers, coming from behind. Nothing works. They know you are there.

              Another big flaw is that bots aim for Players first, Bots second. Big mistakes. Bots shouldn't be able to find a difference between players and bots, they should all be the same to them. When you go in a room with 6 bots fighting in DM, and they all stop and suddenly turn on you and fire, its ridiculously obvious.

              I could go on... I just took that all of my head without really thinking, so I may say a few things twice. But yeah, a lot of things make them too different from human. And if I'm whining about all that, its because many games (and yes, even older one) do not have a lot of these problems. Granted, most of these games are not even fun, but their bots are not that flawed.


                Thanks for listing those, some good points.

                I can fill you in on the reason behind a few of those issues (changing them unfortunately involves rewriting a lot of different code, but much of it is perfectly doable).

                1. Linkgun: bots will always use the secondary fire on pawn targets when they are within the range of the beam, that is literally all the code checks for when attacking a pawn player (attacking vehicles, destroyable objectives, and boosting the squad leader are different though).

                2. RocketLauncher: when bots are rating the weapon, there is no check for if the enemy is too far away. This would be tricky to fix since how do you choose to rate a bunch of projectile/short range weapons when the enemy is really far away (still a good point though).

                3. Bots in your face: This is both a weapon and bot personality problem. The weapon code can tell bots whether they should charge you or run away both when they are attacking you with a specific weapon or being attacked by you with a specific weapon.
                For example: the FlakCannon code always tells the bots to approach you with it (and run away if being attacked by it). The BestMode function tells the bots to use the secondary only when you are over 750 unreal units away (1 foot ~= approx 16 UUs) and below them, or if you are between 750 & 400 UUs away and at the same height they will use it maybe 65% of the time, however if their target is armed with a melee weapon, they will attack with primary.

                Of course the bot aggression plays the big role here. Take a look at the FightEnemy function in the bot source code to see how they decide whether to charge you or shoot from a distance. It is a tricky thing to properly balance so that the bots actually play randomly. I may try to fix this a bit, but its a fine line between human and non-human behavior here.

                4. Dodging: This should be fixable by doing as you said (implementing a small/configurable delay). Instead of immediately calling Dodge when the bot decides to do it (usually in MayDodgeToMoveTarget) could just set a flag to count 0.5 seconds (in tick) before actually calling PerformDodge(). I don't have dodging in my code, but I may see about changing this...

                5. Bot awareness: Bots learn about player's locations in a couple of ways:
                a. They hear you (anytime the makenoise function is called as when landing, being hurt, collecting a pickup, jumping, firing weapons etc. (and no running/walking does not alert them to your presence since makenoise is not called in those functions).
                b. They see you. Mysterial fixed the bots seeing you/shooting through fog issue. The bot Field of View can be adjusted though.
                c. They are alerted about your location through the SquadAI/TeamAI code. So when you have the flag, the CTF SquadAI code actually really does have the bot search for the nearest path node to where you would be hiding with the flag.

                What kind of change would you suggest for this instead? Or is it their reaction time when they are ambushed that should be altered?

                6. Hunt Human Players First: extremely good point. This has been brought up many times before. I actually fixed this in my mod by subclassing all of the SquadAI classes (for CTF, DM, BR etc.) and tweaked the AssessThreat and ModifyThreat functions so that they would no longer preferentially go after humans first (both functions had ensured that humans were higher priority targets).

                If you have any other suggestions please list them (except bot vehicle code in VCTF which is really a mess). If I ever have the time I may try to mess with the Bot Behavior in regular UT2K4 so its good to know what changes would need to be made.


                  Originally posted by meowcat View Post
                  @ Jake-SF (& CvP): What exactly would make the bots more human like? Would they use different tactics? Change play styles (sniper versus charging assault) on the fly? The reason i ask is that I'm working on some custom (modded) AI code for my mod and I'm curious what additional things people see as needing to be fixed/improved in the AI behavior.

                  @ CvP: Did you ever try Superbots by mysterial? IIRC he improved their translocator use and shieldgun use among other things.
                  i'd try that right away.
                  EDIT: it seems it is for UT2k3 and he wont port it for UT2k4. plus, his forums are locked so i can't request it.

                  i think Jake pointed out most of the things.

                  few other points:
                  • bots dont usually dodge-jump to cover distance in DM maps but they do that in CTF/ONS
                  • bots can turn around and shoot as accurately as they'd shoot in front
                  • stupid bots dont understand the power of shields and just runs to the nearest health pack whenever gets hurt.
                  • bots can actually dodge your attacks after you fire them (excluding long range). where human use "prediction dodging"
                  • bots long range rocket/flak/link primary are EXCEPTIONALLY accurate.

                  the aiming settings of bots is not ok, IMO.
                  if i set it med, bots can't hit me with rocket/shock.
                  if i set it to high, they can do that but they also do head shot every time.
                  what i am trying to say that Aim settings should vary depending weapon and distance.
                  and for almost all weapons, "in your face" should be very less accurate.

                  meowcat, after finishing the work for your mod, please port it for regular UT2k4.


                    To get human-like bots, you need to get rid of bot pathing. Get rid of that and you're on your way to getting bots that aren't predictable bad playing .... things.