Addable Functions: Natural Selection |
Addable Functions: Natural Selection |
spellman23 |
Jun 3 2007, 09:31 AM
Post
#1
|
Member Group: Members Posts: 14 Joined: 23-May 07 Member No.: 1,133 |
There are some serious eccentricities that we've been encountering.
1) Bots rely solely on line of sight. This is ridiculous since then other players can simply dip in and out of their view and the bots won't be able to react. Or even more interesting is they are absorbed killing a structure and don't do anything about something shooting it from behind. What's more amusing is scoring a hit, then going behind the bot makes them think it's all clear and they just keep walking. There needs to be a kind of memory system to at least look around for more targets, and perhaps investigate why something suddenly left their view (around a corner...) and do something about targets even if they can't see them directly. Perhaps even adding a sound sensitivity would help enormously with this. 2) They don't really pay attention to their surroundings. Manually telling them to weld, get ammo from the armory, build stuff, and even pick up weapons is a nuisance. They should be able to react to objects in their environment, not just commands and enemies. Sure NS is one of the more dynamic environments, but for it to be a serious NS bot, it needs to at least fundamentally react (oh look, I see an unbuilt structure, maybe I should build it if there's no enemies). 3) Needs a Commander AI. |
LordSkitch |
Jun 3 2007, 09:24 PM
Post
#2
|
I cuddle with my bots. Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 |
1) they actually dont. they do listen. you might notice out of nowhere theyll start tracking enemies through walls, that's cause they hear an enemy and target it, but unless they have LoS they wont start firing. you might try increasing..
config max_update_vision_revs 75000 config update_vision_time 0.0001 that will allow them to take note of 75000 entities every .0001 seconds, it should make them "see more", and see it more quickly... or make them more responsive... or whatever. NOTE! im not 100% sure how update_vision_time works. that could be it has .0001 seconds to try and get 75000 entities, or it tries to get 75000 entities every .0001 seconds. if it's the first it may only get 50 entities before it has to start over and get more, if its the second, it'll get 75000 entities asafp. 2) those settings might fix them not seeing everything around them, im not entirely sure how that works. if they do see or hear an enemy coming while theyre building, they usually do immediately stop and prepare to fight though 3) talk to flayra/the NS devs. there is no functionality built into NS to have an AI commander, and without that, you've got to rely on memory hacking and faking commands sent to the server. all messy things to do that result in crashing. and if youre memory hacking, with every single version of NS those memory locations change, so you'd have to re-find and change the bot so it would work, and as such it would ONLY work with that one specific version of NS. also, you might want to try a bot profile such as: name="[RC] The Goddess Sarah" favmod=1 favteam=1 favmap="ns_bast" skill=100 spray="8ball1" gorge_percent=0 lerk_percent=50 fade_percent=35 onos_percent=45 numgames=0 hal_pretrain_file="common_hal.trn" hal_aux_file="common_hal.aux" hal_ban_file="common_hal.ban" hal_swap_file="common_hal.swp" aim_skill=1.0 aim_time=0.0 aim_speed=18.0 specifically the last 3 lines CODE aim_skill=1.0 aim_skill = <value> <value> * 100 = % of aiming ability. 1.0 = 100% aim_time=0.0 aim_time = <value> <value> in seconds to reaim. 0.0 = every server frame aim_speed=18.0 aim_speed = <value> <value> * 10 = max turning angle. 18.0 = 180 degrees that might help your bots act better. |
spellman23 |
Jun 4 2007, 07:31 PM
Post
#3
|
Member Group: Members Posts: 14 Joined: 23-May 07 Member No.: 1,133 |
1) my mistake. I was referring not to sound as more to memory. Their lack of remembering an alien had just sniped them from a vent is very exploitable. Trying to chase down the alien or waiting for them to try and snipe again is a simple fix, but this applies in general. For example, they seem to rely on sound too much since when silenced, you could bite them, get behind them, and then they just keep walking. Giving them 180 rotation is not the answer, btw.
2) the building only when safe is not the problem. It's doing things like looking around, seeing a dropped weapon, and picking it up. Or they might have a welder, so maybe they'll check periodically if people or buildings they pass need welding. I'm guessing the problem is excess entity count, since these all have to be seen and compiled, but perhaps it's not. Something to look into, or perhaps we were just too impatient for them to do said things and others. 3) Maybe not a comm AI, I've seen work trying to haggle that thing out. Since we can't get that, I'm curious if the bots use the map and think strategically. i.e., that building is under attack on my map, perhaps I should go save it or let's go cap nodes for the comm. Not to mention their tactics for, say, taking down an offensive chamber are horrible. But that's perhaps too situational... |
Cheeseh |
Jun 4 2007, 09:55 PM
Post
#4
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
1. the belief system in rcbot is bollocks at the mo' to be honest they only remember their last enemy which is very silly, they should maintain a beliefe system of all danger areas. I would implement it sometime but the code is so damn messy.
2. that stuff was never implemented all they do is follow an order and find a path towards it, once they reach it they look for other things which may be picking up a wepaon or pressing a button or nothing, it depends on how close the bot is to the object at a waypoint and if it is in their FOV. 3. again I'd love to code a lot of stuff into that area but you know what I'm like I like to take the braindead AI approach and just stick a GA in and let them take about 5000 attempts until they find the best way to kill something but thats only good if you run a server and the bots obtain lots of experience like in skitchys server But even then its not the best. Tbh, I havent really touched the NS code for about two years! I was thinking of rewriting the bot again etc but then there is HL2 and perhgaps NS source etc... and I have a working base I can work on but then again Valve are really annoying and dont put enough bot support in their source SDK :/ Well the source of theb ot has been up for that long too and it shouldnt deter anyone wanting to play with it. |
spellman23 |
Jun 5 2007, 06:47 AM
Post
#5
|
Member Group: Members Posts: 14 Joined: 23-May 07 Member No.: 1,133 |
So, they do learn over time?
Does this mean I should start a server and force bots to kill one another for a while, guiding their plans with some comming? |
LordSkitch |
Jun 5 2007, 12:41 PM
Post
#6
|
I cuddle with my bots. Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 |
they've got whats called genetic algorithms to figure out what keeps them alive the longest. im not entirely sure how accurate it is, but when i delete their GA brains, they do seem to be a bit more random with their actions, and eventually re-hone into being more deadly.
it's not uncommon for me to go in my server only to hear people yelling at me that my "BOTS ARE TOO VICIOUS!" as they have jetpacks and level 3 shotguns but still manage to get killed by bot skulks repeatedly. that is partially cause they don't learn that the bots eventually learn to bounce around directly under you and bite your feet. |
spellman23 |
Jun 5 2007, 09:42 PM
Post
#7
|
Member Group: Members Posts: 14 Joined: 23-May 07 Member No.: 1,133 |
Is there someway we can get a basic brain for them to jump start their learning?
|
LordSkitch |
Jun 6 2007, 02:34 AM
Post
#8
|
I cuddle with my bots. Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 |
not really, just let em fight one another for a day or so and theyll get a good jump start
according to the "date created" doodad, mine have been learning since october, but somehow i think thats wrong, seein as how ive deleted em back in january... |
Cheeseh |
Jun 6 2007, 05:10 PM
Post
#9
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
The learning works so much better in NS Combat mode as they also learn the best combat upgrades and also all the other bells and whistles
|
LordSkitch |
Jun 6 2007, 11:05 PM
Post
#10
|
I cuddle with my bots. Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 |
cause youre the man.
|
spellman23 |
Jun 7 2007, 07:48 PM
Post
#11
|
Member Group: Members Posts: 14 Joined: 23-May 07 Member No.: 1,133 |
So, make them learn combat tactics first. Like how to get around the other players....
Then, do training on classic so they learn strategy too? Also, what is the GA using to determine which characteristics to keep? Simply Kills? Score? Combo? Something more l33t? |
Cheeseh |
Jun 7 2007, 09:49 PM
Post
#12
|
Admin Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 |
only a simple calculation of kills-deaths and time survived before dieing.
|
spellman23 |
Jun 22 2007, 09:43 PM
Post
#13
|
Member Group: Members Posts: 14 Joined: 23-May 07 Member No.: 1,133 |
Does this GA work on Commanding? Or is RCBot unable to issue Comm commands and so I should use the AMX plugin.
|
LordSkitch |
Jun 23 2007, 06:49 AM
Post
#14
|
I cuddle with my bots. Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 |
QUOTE(me a few posts up) 3) talk to flayra/the NS devs. there is no functionality built into NS to have an AI commander, and without that, you've got to rely on memory hacking and faking commands sent to the server. all messy things to do that result in crashing. and if youre memory hacking, with every single version of NS those memory locations change, so you'd have to re-find and change the bot so it would work, and as such it would ONLY work with that one specific version of NS. the bots dont command at all. there's a plugin out there to do the old memory hacking thing.. at least i think thats how it works, but if it is, youre going to end up compromising your stability once again. |
Lo-Fi Version | Time is now: 8th November 2024 - 02:18 PM |