.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   General Forum (http://forums.bots-united.com/forumdisplay.php?f=36)
-   -   Work In progress (WIP) #6 (http://forums.bots-united.com/showthread.php?t=227)

ElGranKemao 14-01-2004 22:46

Re: Work In progress (WIP) #6
 
Well, I've lifted my face from the books for a moment, I've seen the new screenshots and just wanted to congratulate Stefan: your arrows have improved a lot! :D

I hope that by February you'll release a version for non-metamod users. Until then... study, study, study.

See ya!

A$$A$$IN 15-01-2004 06:20

Re: Work In progress (WIP) #6
 
Well after playing on my server for a few more hours i've noted the following:

1. Bots seem to get confused by nodes that are close horizontally but separated vertically. After walking along a ledge in cs_winternights that goes around a corner, bots started getting stuck on the corner of the wall below the ledge. And the bots have a really terrible time navigating the stairs in cs_matrix, they constantly get stuck on the handrail in the landings.

2. The bots are smarter and meaner. Godlike skill is actually godlike now. I used to be able to waste hordes of "godlike" 1.0 bots without breaking a sweat, but not any more. If you ambush them from the same spot a few times in a row, then they will be gunning for you next round. It takes them a round or two longer than a human would, but they do catch on and adjust their tactics.

3. The bots don't go the same route every stinking round any more.

stefanhendriks 15-01-2004 17:23

Re: Work In progress (WIP) #6
 
in reply to your 'points of attention' ;)

1. Yes, i know this, and i can't exclude all faulty connections. But as you probably have read already, i am working on a node editor so you can fix these manually ;)
2. THats good to hear! ;)
3. Yep, thats also good to hear! :D

In reply to this:
Quote:

I hope that by February you'll release a version for non-metamod users. Until then... study, study, study.
Do not count on a non-metamod version. However, when there will be an official release you don't need to worry about metamod. I will make a package that will do all this 'difficult stuff' for you ;)

A$$A$$IN 15-01-2004 17:34

Re: Work In progress (WIP) #6
 
Two other things:

1. CT bots never try to rescue hostages. They will walk into them, and get annoyed that they are an obstruction to wherever they are trying to go, but the only time they attempt to "use" hostages is if you are leading hostages to the rescue zone, then the bots will come and steal the hostages from you and go wander randomly with them. It's just a little bit ANNOYING AS CRAP!!! Perhaps it is another aspect of the "team goals have a very low priority" problem.>:(

2. The fence by the sewer entrance in cs_militia is a bot trap now. The bots are magically drawn to it like flies to a manure pile and they all spend the rest of the round trying to walk through it. You need to add the fence entity to the list of things the bots don't try to walk through.

A$$A$$IN 15-01-2004 22:56

Re: Work In progress (WIP) #6
 
A couple of questions about the personality file:

The turnspeed parameter--do bigger numbers mean faster turning than smaller numbers?

Are the reaction time parameters in seconds (.1 = 1/10 of a second) or is some other time unit involved here?

I'm trying to tune the bot parameters a little so they're good without being ridiculous.

A$$A$$IN 16-01-2004 17:27

Re: Work In progress (WIP) #6
 
I've had a few crashes, it seems like when a new round starts while the nodes/experience is being updated (especially on a map the bots just started learning) the server is more likely to crash. I had one instance where I had to delete the node/experience file for cs_iraq because the server would instantly crash whenever I switched to it. Deleting the rbn and rbx files solved the problem.

A suggestion regarding guarding the dropped bomb/bomb site/hostages:
Instead of having the bot camp right on the bomb, have them ask "if I am standing on the bomb (or hostages or whatever), where am I most likely to get killed from?" Then have the bot make a list of say the top 10 or 20 nodes, pick the safest of those nodes and go camp there, and look at the bomb and the main danger areas for the node he is on. If multiple bots are guarding something, they should never all choose the same node. If a node is "occupied" by a teammate, pick the next one down the list and go there. That's basically what I do when guarding the bomb or hostages or whatever, and it shouldn't be too hard to code that.

Fiber_Optic 16-01-2004 20:01

Re: Work In progress (WIP) #6
 
I had somme crash too... I'm not sure maybe it comes from the last steam update...

A$$A$$IN 16-01-2004 20:34

Re: Work In progress (WIP) #6
 
Some more thoughts:

When making the list of potential camping nodes for guarding something, add a +/- 10% random factor to the safety calculation so that the bot won't always pick the same node to camp in.

When a bot is camping/guarding, it should look around at the likely danger nodes for where it is at. So if a bot at node A gets killed 50% of the time from node B, 25% of the time from node C and 25% of the time from node D, in a 5 second time period it should be looking at node B 50% of the time, node C 25% of the time, and node D 25% of the time.

Bots should communicate with other bots on their team. If a CT bot sees the dropped bomb, he should immediately go into guard mode (as described above) and after perhaps 2-3 seconds (to simulate a human giving out a radio call/typing) say_team "Bomb is down at my position." At that point, all the other CT bots should know where the bomb is down too, and go to where the bomb is and help guard it. This should be a very high priority. T bots should attempt to retrieve the bomb as a high priority goal.

A T bot with the bomb should NEVER walk through a bomb site without planting the bomb. Ever. At the beginning of the round, it should pick a bomb site and attempt to take the safest route to it, without taking a lot of detours or any doubling back and forth, unless attacked. At least half of the other T bots should escort the bomb carrier, and guard the bomb once it is planted until there is 10-15 seconds left on the bomb clock. Then they should leave the area by as many different routes as possible to slow down any incoming CTs. If a retreating T bot is attacked, other T bots should forget about retreating and assist the T under attack.

A VIP escort teamwork strategy for bots: Treat the VIP like a dropped bomb that moves. The VIP should walk (unless in a high danger area) and the CT escort bots should try to keep moving to form a perimeter, going to the danger nodes for the node the VIP is currently closest to. To keep the escort team together, they should always go the the danger node closest to their current position that another bot isn't already going to.
Example: VIP bot is currently at node A. He has 3 escorts. Nodes B, C, and D are the highest priority danger nodes for node A. Escort 1 goes to B, escort 2 goes to C, and escort 3 goes to node D. When the VIP gets to node A, he picks the next node on the route to the escape zone. when the VIP gets close to the new node, the escort bots move to the closest danger nodes for the VIP's new location. When an enemy is detected, 1 or 2 of the escorts closest to the enemy should stop tracking their movements based on the VIP location and track the enemy location instead, moving to the safest place to attack the enemy at his last known location. While the enemy is being engaged, the VIP should temporarily seek safety and run to the nearest safe location away from the known enemy, and the remaining escorts should follow him. When the enemy is killed or has not been seen for 10-15 seconds, the hunting escorts should go back to moving based on the VIP's location, and the VIP should go back to moving to the escape zone.

wrck 17-01-2004 02:00

Re: Work In progress (WIP) #6
 
for the vcts to get the hosties i think you just have to walk all over the rooms and behind the hosties too... well i notice in cs_italy the bots get stuck on the bridge.

minorgod 18-01-2004 08:31

Re: Work In progress (WIP) #6
 
When running the latest build, dead people just float and make knifing gestures. I love the new version though. It's really starting to look good.

stefanhendriks 18-01-2004 11:14

Re: Work In progress (WIP) #6
 
About camping, here i have a snippet of code (can't reply more, gotta go now)

Code:

// Find a node which has almost no danger!
int cNodeMachine::node_camp(Vector vOrigin, int iTeam)

 // Use Meredians to search for nodes
 int iX, iY;
 VectorToMeredian(vOrigin, &iX, &iY);
 float fDanger=2.0;
 float fDistance=9999;
 int iVisibility=9999;
 int iBestNode=-1;
 
 // Theory:
 // Find a node, close, and less danger...
 // and with less visibility
 
 if (iX > -1 && iY > -1)
 {
 // Search in this meredian
 for (int i=0; i < NODES_MEREDIANS; i++)
  if (Meredians[iX][iY].iNodes[i] > -1)
  {                 
                        int iNode = Meredians[iX][iY].iNodes[i];
                        if (Nodes[iNode].iNodeBits & BIT_WATER)
                                continue; // next node, do not camp under water!
                        if (InfoNodes[iNode].fDanger[iTeam] < fDanger)                               
                                if (func_distance(vOrigin, Nodes[iNode].origin) < fDistance)
                                {
                                        // Calculate visibility
                                        int iVis=-1;
                                       
                                        for (int iVisNr=0; iVisNr < iNode; iVisNr++)
                                                        if (GetVisibilityFromTo(iNode,iVisNr))
                                                                iVis++;
                                        if (iVis < 0)
                                                iVis = 99999;
                                        if (iVis < iVisibility)
                                        {
                                                iBestNode = iNode;
                                                fDistance = func_distance(vOrigin, Nodes[iNode].origin);
                                                fDanger = InfoNodes[iNode].fDanger[iTeam];
                                                iVisibility = iVis;
                                        }
                                }
  }
 }
 return iBestNode;
}


Alibubble 18-01-2004 23:55

Re: Work In progress (WIP) #6
 
Help me. I downloaded the latest WIP. I foolwed the insructions. I start my listen server. Meta mod loads ok. I type meta list in the console. It says realbot has loaded. But how do i add bots. The h menu doesn't work.

Cephas 19-01-2004 01:40

Re: Work In progress (WIP) #6
 
The random camping is kinda odd, but the only major bug that i think of is that the bots need to be able to react when they are hit. Maybe have them spin around in a 360deg circle when they take damage or something. Just to give them some kind of reaction till something better is coded out.\

As for the menu, it needs to re programed from the mune file in the Cstrike directory. The WIP versions use a diff command(Realbot) from the origional AI 1.0. People posted an updated one in another thread that you can use.

KinXen 19-01-2004 09:20

Re: Work In progress (WIP) #6
 
Quote:

Originally Posted by Alibubble
Help me. I downloaded the latest WIP. I foolwed the insructions. I start my listen server. Meta mod loads ok. I type meta list in the console. It says realbot has loaded. But how do i add bots. The h menu doesn't work.

Check the progress thread everyonce in awile...

instead of using rb in commands, use realbot. So "realbot add" is a command that would work...

KinXen 19-01-2004 09:24

Re: Work In progress (WIP) #6
 
This is everything ive noticed with the bot so far.

Bots dont plant as much as they should... They plant rarly, but they often run right past the sites.

Also I have never seen a ct defuse the bomb yet...

On the map de_train, the bots often get stuck on the trains, and cant get around, or under...

A$$A$$IN 20-01-2004 07:44

Re: Work In progress (WIP) #6
 
I thought of a simple way to keep the bots from doing that damn annoying "trying to walk to a node 3 stories above them" bug. Do a height comparison between the bot's current position and the node it is trying to reach. If the destination node is greater than X units higher than the bot's current position (where X is the maximum jump height given the current value of sv_gravity) pick a different destination node. If the destination node is greater than Y units below the bot's current position, (where Y is the maximum non-damaging fall distance given the current value of sv_gravity) again, pick a different node. And don't allow nodes in mid-air.

Currently the bridge of cs_siege, the stairs of cs_matrix, and the overpass area of de_dust are terribly confusing to the bots. Also, bots are really stupid about getting unstuck. They sometimes do the same thing over and over again, and never try a different route. They are also very stupid about crouching to get to low-clearance places (like under the cars in de_train or into a vent) or jumping over low obstacles in their path.

stefanhendriks 20-01-2004 10:55

Re: Work In progress (WIP) #6
 
it is not that easy to declare 'nodes higher but me' faulty. This is because you also have steep slopes... so i do multiple checks to eliminate a lot of errors.

the bots somehow seem not to learn from the mistakes in these cases. I don't know if i fixed the 'check for floating node' bug in the build you guys have. I think i'll release a new version today or something, just to give you a more stable/fixed version to play with. I will add new features later.

A$$A$$IN 20-01-2004 17:22

Re: Work In progress (WIP) #6
 
Here's another thought:
Don't use visibility calculations to try to connect nodes, use the movements of human players. As humans are moving around, maintain a list of the nodes the human was at in the last 5 seconds. Before nodes can be considered candidates for connection, they have to both be in a human player's "nodes I visited in the last 5 seconds" list. If a player is at node #785 and moves to node #819, add 819 to node 785's list of "nodes I can move to from here". And make a note of whether or not the human jumped or crouched when moving from 785 to 819. If humans only ever move from 785 to 819 while crouched, that should be a good clue bots need to do likewise. That would eliminate the major problem with cs_militia where the CT bots spend most of the round trying to walk through the fence by the sewer tunnel entrance.

As to the steep slope thing, simply add enough nodes so that they are within the connection limit tolerance. That way, if I'm walking up a steep slope, legitimately connectable nodes would be added frequently enough so that they will be within the vertical connection checking limit. One other thing, it wouldn't be necessary to do eliminate nodes below current position if they are water nodes, since falling into water doesn't cause damage.

Oh, one other thing, when a bot decides to camp, make them do a "am I on a ladder" check like they do a "am I under water" check, so they won't camp on ladders. Camping on a ladder often blocks other players from being able to go where they need to go. You can't shoot accurately on a ladder, and your ability to take cover in a ladder is quite limited, so ladder camping is something no intelligent human player ever does. It would be greatly appreciated if the bots didn't do it either.

A$$A$$IN 21-01-2004 01:45

Re: Work In progress (WIP) #6
 
I'm starting to have a significant crashing problem that seems to be related to the size of the experience file. Once the file reaches its maximum size of 2244KB, the server will frequently crash while that map is playing. I have 12 maps now where the experience file has reached maximum size, and have to restart the server several times a day now. Email or PM me if you want me to send you copies of the node/experience files that seem to be part of the problem.

stefanhendriks 21-01-2004 20:31

Re: Work In progress (WIP) #6
 
i will take a look at these memory problems for experience files...

edit:
i have taken a look, and i think it has something to do with the size buffer being to much to write at once. I could not find information on what the max size may be. I have read you can write endless amount of data, and also read you could write chunks of 2 MB at max. So, i am not 100% sure.

What i added:
i added 1 line of code which could (most unlikely though) exceed the limit of nodes, therefor trying to write pieces of memory that is not allocated

Sollution: none yet.
Possible sollution/thought:
chop the piece of data in 2 to make sure it never writes to much data. Problem though -> I don't know how to do that, as i am not a real bytes/bits guru on this issue.

A$$A$$IN 21-01-2004 21:32

Re: Work In progress (WIP) #6
 
I have the rbx/rbn files for as_oilrig (one of the problem maps) posted in a ZIP file here.Hopefully it will help you find the problem.

T!m 22-01-2004 18:43

Re: Work In progress (WIP) #6
 
hmmmm, thats why my server crashing once in a while, the most of my files have reached the maximum size.

hope you can fix it soon :) .

guyinthewindow 22-01-2004 23:35

Re: Work In progress (WIP) #6
 
Nice bot work :) There is one problem i have... it happens in office (that ive tried) and italy (in the AI version). the bots on one team (office = t's and italy = ct's) the bots walk backwards.... like...

http://omegabox.dnsalias.com:8080/~darkx/cs_office.jpg
That.... (yeah btw its the beginng of the round) and this always happens, even if the ct bots come in my direction incase ur thinking that they saw the bots. 9_9


All times are GMT +2. The time now is 20:46.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.