Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[SUGGESTION] Simple tweaks to improve bot AI

#1
We all know bot AI isn't great. Some mappers openly refuse to add waypoints, because bots aren't adequate enemies.

Anyway, IMO some simple tweaks could alleviate the situation to some extent:

-Improve bots' accuracy. Even godlike ones miss quite often and are pretty easy to dodge.
-Improve bots' ability to bunnyhop. They don't even attempt to bunnyhop most of the time, and even when they do, they are not hard to outrun. Gradually as skill level is increased, abilities to swiftly take corners and laserjump would be introduced.
-Give higher skill bots ability to dodge jump out of the way, even if dodging mutator is disabled.
-Give bots ability to spot you faster. On higher levels it would mean as soon as you're in the way, bots would spot you, on godlike they could know all the time where you are. IMO bots do not need to be fair, as they still have the disadvantage of essentially having to travel along predictable ways.

Other ideas?
Reply

#2
I made a thread about bots here. The last few posts are quite interesting - one guy suggests porting old Quake bot codes into Xonotic.
Reply

#3
I like the frog bot idea.

But if that can't be done, then I suggest:

Less bravery with the shotgun. I think bots should run for the best weapons, especially at higher difficulty before engaging the enemy, unless they are being shot.

Increase movement speed for bots. Can that be done? A bot bunny hopping is not as fast as a player that knows all the trick jumps, strafing, ect..

Getting stuck in some areas makes playing bots useless on some maps.

Laser jumping would be great, especially if the bot used it mid battle in larger rooms. I'd imagine that would be hard to implement though.
Reply

#4
I don't think it is as simple as you think it is. Non-hitscan weapons are quite complex in xonotic and there are many variables to handle if you want to create a skilled AI. Just think of guided rockets, bouncing grenades and those weird tiny crylink "balls". The bot would not only have to predict the human's movements but also make use of the environment a lot to be a serious opponent.
You could check the bot_ai_* cvars to increase their raw skill though.
Reply

#5
asy7um, is porting code like frog bot possible?
Reply

#6
I doubt that one could copy code 1-to-1, if you meant that.
Reply

#7
(05-01-2012, 12:13 PM)asy7um Wrote: You could check the bot_ai_* cvars to increase their raw skill though.
I did that. I increased their bunny hopping and decreased the shotgun priority. It seemed to help a bit. I found that if you increase their bunny hopping too much, they get stuck a lot.
Reply

#8
I've fiddled and got this:

bot_ai_aimskill_firetolerance_distdegrees = 0
bot_ai_aimskill_firetolerance_maxdegrees = 0
bot_ai_aimskill_firetolerance_mindegrees = 0
bot_ai_aimskill_offset = 0
bot_enemydetectioninterval = 0.5

Seems better to me.
Reply

#9
bots getting stuck in areas could be the mappers fault...

I believe that first we need to make the bots understand water ... then what you sugested
Reply

#10
Personally, I wanted to make a clear distinction between two things in bot AI:

1)Navigation
2)Combat.

I am only aiming at the latter.

I mean sure, former needs a lot of work (eg. for the water and other stuff, like getting locked in tight corridors when many bots pass at once), but I think latter can be improved with less effort. I am focusing at what happens when you meet the bot, and what could be done, so you don't emerge victorious so often/with so little effort, esp. on Godlike settings.
Reply

#11
(05-07-2012, 08:16 PM)hutty Wrote: bots getting stuck in areas could be the mappers fault...
^this

If mappers would actually include waypoints the bots´ behaviour wouldn´t be that stupid. Also a "bot-friendly" map helps a lot. Using clip-brushes and donotenter-brushes are useful...
Reply

#12
Quote:If mappers would actually include waypoints the bots´ behaviour wouldn´t be that stupid.

Cortez... You listening bro? Big Grin
Reply

#13
(05-01-2012, 08:12 AM)rafallus Wrote: -Improve bots' accuracy. Even godlike ones miss quite often and are pretty easy to dodge.
Tough this would be easy with simpler code, Xonotic bots have simulated lag, keyboard latency simulations and whatnot.

Quote:-Improve bots' ability to bunnyhop. They don't even attempt to bunnyhop most of the time, and even when they do, they are not hard to outrun. Gradually as skill level is increased, abilities to swiftly take corners and laserjump would be introduced.
Far from simple. I wont bore you with the why, just know that this is not easy.

Quote:-Give higher skill bots ability to dodge jump out of the way, even if dodging mutator is disabled.
No. Bots and players should have the same rules as far as possible.

Quote:-Give bots ability to spot you faster. On higher levels it would mean as soon as you're in the way, bots would spot you, on godlike they could know all the time where you are. IMO bots do not need to be fair, as they still have the disadvantage of essentially having to travel along predictable ways.
Who is "you" in "godlike they could know all the time where you are"? Are you suggesting every bot should track and evaluate every other player & bot every frame? if so, will do be providing the supercomputer's needed to tun the servers? Wink And again, bots should play by the same rules as humans, as far as possible. That's the whole idea of bots, else you have monsters, not bots.
Reply

#14
(05-08-2012, 10:25 AM)rocknroll237 Wrote: Cortez... You listening bro? Big Grin
Nope
[Image: trollface.jpg?1296494117]
<Samual> I am the most unprofessional developer ever
<bluez> halogene, you make awesome music, but you have no clue about ctf.
<Halogene> I didn't know mappers include some mysterious waypoints so members of the BOT clan can navigate a map?
<divVerent> if you don't pay for a premium account, your movement speed is limited to 100qu/s
Reply

#15
(05-08-2012, 11:14 AM)tZork Wrote: No. Bots and players should have the same rules as far as possible.
In an ideal scenario, yes bots and humans would have the same rules AND play by the same rules. Unfortunately, this just isn't the case. The laser alone changes the rules since bots don't use it for movement.

In order for bots and humans to have the same rules, people would have to:

*Refrain from using the laser for movement.

*Not strafe jump

*Travel in predictable paths(although even that wouldn't make things more fair since the bots don't recognize movement patters).

And you said yourself that it not be easy to make the bots move faster and use the laser for movement.

Personally, I think if giving the bots dodging will make them harder to kill, then I am completely ok with that. Unless someone is up to the task of reworking the bot Ai to make them play more like people Undecided
Reply

#16
Ability and rules are two different things. Adding even more wiredness to the bot code is, imo, not they way to go. Its tricky enough to deal with already. Whats needed is someone to take on the code in question and bring it to a state where they have acceptable ability.
Reply

#17
Bots must not have different abilities from a human player. That's a bad idea from all implementations I've seen. Making a bot 'harder to kill' does not equal making it cleverer. You might as well just make bots start at 200 health if that is all you want...

And bots and players DO have the rules currently. OK, bots might not attempt to laser jump but neither do many new players. Doesn't change the rules, it's just how things are. Bots might accidentally rocket or mortar jump from time to time and the game doesn't stop them from doing this, hence the rules are the same for players or bots.

If you look at the UT series, the bots have always been fairly good at both double jumping and using the translocator so there is no reason why such advanced movement should be considered impossible. It may not be possible in Xonotic right now but that doesn't mean we should abandon any future attempt at it and instead just give them superhuman powers.

And with UT, you try playing a map with no bot waypoints and see how stupid they seem, this is again because they depend upon waypoints.

Anything open source remains work in progress. The bots might not be too clever but they will improve. Adding superhuman powers to them is just a shortsighted effort from this perspective as work to improve their intelligence would be more worthwhile, despite being much harder in the short term.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#18
Obviously, it would be ideal to have more realistic AI. If someone wants the take that on, that would be great.

(05-09-2012, 12:57 PM)edh Wrote: And bots and players DO have the rules currently. OK, bots might not attempt to laser jump but neither do many new players. Doesn't change the rules, it's just how things are. Bots might accidentally rocket or mortar jump from time to time and the game doesn't stop them from doing this, hence the rules are the same for players or bots.

I'm not a new player, and I laser jump. I wouldn't try to base anything on how a new player interacts with a bot because once they learn advanced movement, they now have a significant advantage on the bots.

The bottom line is that players and bots are not on equal footing with the current code. Some people are just making suggestions that might make the bots harder that don't involve reworking the code.
Reply

#19
Bots and players will NEVER be equal. You can give bots all tricks in the world, but they still will have to follow somewhat predictable patterns. But the thing is, that currently you can outplay bots with little difficulty even on Godlike.

So let's take a look on, why is it not the case in other games using bots. I can use Q3 + spinoffs and UT2k4 as reference:

In Q3 nightmare bots:
-aren't incredibly agile and do not bunnyhop much if at all
-have little map control
-are very accurate, can consistently rail you from across the map
-react very quickly.

To defeat them, you need to control the map, denying them from armors and rail in particular. If they do, you need some excellent aim with rail yourself.

In UT2k4 OTOH higher skill bots are as agile as engine allows them to be, dodging furiously, if you use non-hitscan weapons. But the big thing is - they are excellent at map control. If you play 1-on-1, it will become clear that to become victorious, you need to time shields and double damage correctly. If you miss them, bots take them instead. Also, since neither shields or health dropped if past 100, you were screwed if you lost map control.

As it is now, to defeat Godlike bots in Xonotic, you need neither particularily brilliant aim or ability to time items and deny them from bots. IMO having the same rules for bots as for players takes a back seat to bots actually being competitive to any reasonable degree.

Personally, I think tweaking the crap out of bots so they have inhuman accuracy and ligtning reflexes (Q3 way) is far easier than improving entire navigation (UT2k4 way - even though it probably needs to be done at some point anyway).
Reply

#20
(05-09-2012, 01:28 PM)W4RP1G Wrote: I'm not a new player, and I laser jump. I wouldn't try to base anything on how a new player interacts with a bot because once they learn advanced movement, they now have a significant advantage on the bots.

I guess that's a secondary issue. If somebody manages to make bots laserjump, it can be turned off under a certain bot skill level.
Reply

#21
(05-09-2012, 02:21 PM)rafallus Wrote: Personally, I think tweaking the crap out of bots so they have inhuman accuracy and ligtning reflexes (Q3 way) is far easier than improving entire navigation (UT2k4 way - even though it probably needs to be done at some point anyway).
I haven't messed with bots.txt very much, but there are different parameters to give the bots characteristic play styles. Some bots have a lower ping, some have better AI, ect.. If someone were to make a "godlikebots.txt" that basically made the bots, well godlike, I'm sure some crafty coder could add a line somewhere for using godlikebots.txt at skill level 10. Or you could just set bot_config_file to it manually.
Reply

#22
A bot could be made as a mod with such settings but using the same AI. Just create another directory beside the data/ directory and copy the bots.txt file over then, then fiddle with the settings and see if you make something you feel is better. Then package this up as a zip file and you have a mod! Maybe someone would want to run it on a server.

Going further down the mod route, a whole bot AI could be written as a mod in server side QuakeC. This is how all of the original Quake mods were written.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#23
(05-09-2012, 04:34 PM)edh Wrote: A bot could be made as a mod with such settings but using the same AI. Just create another directory beside the data/ directory and copy the bots.txt file over then, then fiddle with the settings and see if you make something you feel is better. Then package this up as a zip file and you have a mod! Maybe someone would want to run it on a server.

Going further down the mod route, a whole bot AI could be written as a mod in server side QuakeC. This is how all of the original Quake mods were written.

This is how I'd do it, I'd create a godlikebots.txt, put it in their /data folder, then create a votable alias(in either server.cfg or cfg for alias)

alias godlikebots "skill 10; bot_config_file godlikebots.txt"
and then an alias for regular bots at each skill level, i.e.
alias botskill5 "skill 5; bot_config_file bots.txt"

then

addvote godlikebots
and
addvote botskill5
Reply

#24
Why not do that as a mod in a different directory instead? That way you don't risk breaking anything. Just have your godlikebots.txt in /godlikebots (for example) and also add in there an autoexec.cfg with the aliases and otherstuff.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#25
Huh. There's no risk of breaking stuff with a file called godlikebots.txt: there's no such file in the default Xonotic data dir. Also, autoexec.cfg is the name of a very specific file in the data directory that can be created by the user to get autoexecuted. It won't be autoexec if it's not in the data directory.

What's your point?
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  [SUGGESTION] Add pickup bot to official IRC channel? poVoq 2 2,041 06-12-2020, 02:13 PM
Last Post: poVoq
Question Bot behavior Snowmane 1 1,952 03-03-2018, 05:35 AM
Last Post: martin-t
  [SUGGESTION] Screw the brain dead bot campaign, this is what singleplayer REALLY should be Lee_Stricklin 7 6,829 05-09-2016, 01:52 PM
Last Post: Lee_Stricklin
  [SUGGESTION] Aim-training dummy bot (fast bunny jumping without fighting back) Ferk 2 5,434 11-01-2014, 04:08 PM
Last Post: GoregeousGuy
  [SUGGESTION] Suggestion: Need tribes like outdoor map; need bot learn to use jetpack or hook zwz 30 35,600 12-21-2013, 03:12 PM
Last Post: tZork
Information [SUGGESTION] Fix and update bot movement Dazerio 6 5,330 06-11-2013, 10:01 AM
Last Post: Mepper
  [SUGGESTION] Advanced Options tweaks that should maybe be default Lee_Stricklin 16 18,759 01-23-2013, 09:59 AM
Last Post: edh
  [SUGGESTION] Bot suggestions rocknroll237 39 35,799 10-01-2012, 05:59 AM
Last Post: Cyber Killer
  [SUGGESTION] My opinions on how to improve Xonotic K__ 15 12,654 06-04-2012, 09:47 AM
Last Post: hutty
  [SUGGESTION] A few simple tweaks rafallus 7 7,501 06-02-2012, 11:07 AM
Last Post: rafallus

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-