That's weird. Gorges take forever to make hives in my games, but they frequently wander near me or my buildings and get shot up pretty frequently too as they're totally fearless, so that probably has some bearing on it.
No matter what map I tired, napo, lost or tanith, the gorge would go around in circles. IN the starting hive. Over and over and over again. <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->
Put cheats on, spawned a hive, waited 30 mins, never saw fades at all.
Am I doing something wrong? <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
Ok. FoxFlame: the strength of the build urge in the gorge can be controlled via the scale_factor variable in the strategy/builder section of the config file. Try playing with that and see if your gorge becomes suitably timid.
On the hive build desire: right now that won't do a lot. By the time that's relevant, it's already made up its mind to build a hive or not. It'll most likely become more important in a later version.
Freak83: Normally, the WildTangent server(s) are running WhichBot, but I believe they're down right now for maintenance. Those are the only servers I know of that run it in public. Maybe more people will start running it now it's in beta, but who knows - a lot of server hosts don't like to run bots because they're cpu intensive.
LB: Man, were you a professional puppy-slaughterer in a past life to get karma this bad? <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo--> Here's my best shot at explaining what you're seeing. Now, when the game first starts, the gorge will often go round in circles for a little while. He's pacing thoughtfully, considering his best route to resource node locations. However, he should fairly soon come to a conclusion and head out to resource nodes. On getting there, he'll usually stop for a bit to wait for res. If he doesn't have enough soon, he'll wander round a little more (otherwise his little pudgy feet get cold, and he doesn't like that), but he will plunk down a couple of RTs and then head back to build some DCs in his hive. On fades never appearing: if the skulks never die, they don't bother upgrading. So if you're just running a game with them and them alone, they'll eat the marine base and then run around happily.
So, the gorge is supposed to run in circles, the exact same circle, for 45 mins, no matter what map? <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->
I'd even kick the gorge, another bot would go gorge and do the exact same thing.
And the other bots had 20 +/- deaths each. 30 Turrets do alot of damage, especally when the bots ignore them <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
<!--QuoteBegin--Lightning Blue+Jun 14 2003, 01:35 AM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Lightning Blue @ Jun 14 2003, 01:35 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> So, the gorge is supposed to run in circles, the exact same circle, for 45 mins, no matter what map? <!--emo&???--><img src='http://www.natural-selection.org/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->
I'd even kick the gorge, another bot would go gorge and do the exact same thing.
And the other bots had 20 +/- deaths each. 30 Turrets do alot of damage, especally when the bots ignore them <!--emo&:p--><img src='http://www.natural-selection.org/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo--> <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Just out of curiosity, did you install the new waypoint files? Check your Half-Life/ns/addons/whichbot/data directory to see if the .wpt files are there. It should look something like this:
Whoa! Mutt, you have a waypoint file for Hera? No fair, I want that! <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
LB, it sounds like something is seriously messed up with the install somewhere. I noticed something strange when I first unzipped and installed my whichbot/metamod pack: the files unzipped, but the file sizes were all 0 bytes for whatever reason. However, the only reason I noticed that is because the server told me when it tried to load metamod.dll, so that's probably now LB's problem.
Clam, I'll play with that setting, thanks.
As for servers, I keep mine up pretty regularly if you wanna play against the bots. It's at <b>foxflame.is-a-geek.com</b>, but doesn't appear to be all that stable yet, or something. After I get everything up and working, I'll probably kill the HL dir and reinstall from scratch. I'm getting reports of bad lag, but it can't be CPU server lag, since I don't lag as well and I'm connecting from another PC.
I do play occasionally and pubbers join. Some stick around to kill the bots. It's like NS Coop instead of NS "PWNED BY ALIENS and some nub screaming his head off about how he's so leet afterwards in the ready room". Like it's hard to win as aliens on pub.
AsranielJoin Date: 2002-06-03Member: 724Members, Playtest Lead, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow, Subnautica Playtester, Retired Community Developer
hey, thats a realy nice bot :-) specialy that i see that you have waypoints for MY map :-) makes me happy :-) realy happy :-) *g* and its even a waypoint for the newest version of my map :-) (at least they were able to open the door at the marine spawn, and i think this is done per waypoint)
<!--QuoteBegin--Asraniel+Jun 14 2003, 11:23 AM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Asraniel @ Jun 14 2003, 11:23 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> hey, thats a realy nice bot :-) specialy that i see that you have waypoints for MY map :-) makes me happy :-) realy happy :-) *g* and its even a waypoint for the newest version of my map :-) (at least they were able to open the door at the marine spawn, and i think this is done per waypoint) <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Thanks <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo--> A friend at work (Joe) likes the map alot and whipped up a waypoint file for it for the bots. It's a fun and easy map to learn.
As you surmised, the bot does open doors with the help of a carefully placed waypoint: a) Goto to waypoint, b) Find button, c) Get really close to button d) Press button, e) Hope the door opens. Unfortunately, we haven't quite worked out if the door is actually open or not so if the bot happens to miss the button, it'll take it a few secs to try again.
Wow, sounds like a great bot. I'm downloading it as I type this, but I have a question. I read about how to make waypoints and waypointpaths on the website but where do they go? If I have a relatively simple custom map and I wanted the bots to be able to get around on it where should I lay paths from/to?
Well, I figured I'd try to figure out how to lay paths by whaching what the bots do in game, but when I try to add a bot I get : "Unable to create bot, createFakeClient failed". I followed the installation instructs exactly, any idea what the problem is?
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Wow, sounds like a great bot. I'm downloading it as I type this, but I have a question. I read about how to make waypoints and waypointpaths on the website but where do they go? If I have a relatively simple custom map and I wanted the bots to be able to get around on it where should I lay paths from/to? <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
The completed waypoint file should live in the Half-Life/ns/addons/whichbot/data directory. We ought to put together a little waypointing faq but in general:
- For doors that require a button push to operate, place a waypoint really close to the button so that the bot can find the button. Don't forget to place a similar waypoint on the other side of the door if the buttons are symmetrical. - Ladders: Set a waypoint at the bottom and at the top of each ladder. - Vents: Like ladders, set a waypoint at the bottom of the wall that leads up to the vent if the vent is above ground level and a waypoint at the entrance of the vent itself.
In addition, you can load up an existing waypoint file and turn on the debug beams and see how existing maps were waypointed for some clues.
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Well, I figured I'd try to figure out how to lay paths by whaching what the bots do in game, but when I try to add a bot I get : "Unable to create bot, createFakeClient failed". I followed the installation instructs exactly, any idea what the problem is? <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Strange. I haven't seen this before. Which version of the bot are you using (metamod or standard)? I have read that earlier versions of HL had a bug in the pfnCreateFakeClient() call which can cause this failure. The 1.1.1.0 patch of HL includes this fix.
Thanks for the info. What I was actually wondering was how the paths should be set up - i.e. A path from each hive to res nodes/marine start - circular or web-like setup. I'll look at tanith and see how it was done to answer my question.
I'm using the metamod version - I didn't see an option for standard. I have version 1.1.1.0 of HL and 1.04 NS and version 0.4 of whichbot.
Well, I was going to look at how it's setup in tanith, but I loaded up tanith, entered "wb wpdebug" in console, and as soon as I close the console NS crashes.
Fantastic work. Thankyou so much. My clan use this bot on their server for internal pracs. Its really helpful, get one guy to go gorge and it leaves the team to battle the skulks and the fades as they wish.
No, we're happy for people to mirror the bot. Just make sure you sign up on Sourceforge to be notified of new file releases, so when new versions come out you can update your mirror.
On the createfakeclient error: I have only seen that error when I accidentally started a game and it wasn't in multiplayer mode. How are you starting the game?
On "wb wpdebug" problems - the debugger only works currently when you're on the alien team, so if you start it when you're in the ready room, the other team or as an observer, it will sometimes crash. We haven't tracked that problem down yet, but it wasn't critical enough to stop us shipping v0.4.
On mirroring: I forgot to mention that if you mirror the bot files, please include a link to the main website at <a href='http://whichbot.com' target='_blank'>whichbot.com</a>. Thanks!
I'm not sure. I generally run my maps by opening the console and entering "map <mapname>". I'm kinda new to NS mapping and I've never hosted a server before, do I have to start a server to test out the bots?
Ah, thanks, that was the problem. You should mention that you have to be on aliens for the debug to work. I looked at the waypoint layout on tanith. it's just sort of a web - lots of connects almost random around the map. They just have to have LOS right? What about where you have places to climb up walls as ladders? what if a bot goes fade and follows that waypoint path? which brings up another question - where the paths split how does the bot 'choose' which way to go? what if one way is a dead end (i.e. a welded vent enterance)?
Sorry if I'm asking too many questions, I just want to make waypoints for my maps so the bots will work good.
I probably shouldn't be answering this, and I'm sure Clam will do a far better job when he gets back, but I believe he said earlier that the bots are smart enough to figure out when they can't get from waypoint A to waypoint B and to take C instead. There's a timeout variable or something and when it's taking longer to get from A to B than it did from A to C, they give up and go to C instead. It sounds a lot like routing packets through networks....packets with big teeth.
Hm. On a small game that I played on the WildTangent server earlier today, it seemed that turret farming was far too effective a tactic. It almost felt like playing on 1.00.... inch forewards, lock the room. Inch forewards, lock the room. The skulks couldn't crack the farms, and I didn't see the gorge build much of anything besides resource towers...
On the otherhand, I have never, ever, ever seen a skulk so effective at killing jetpackers. If you're out of range, you're whittled down by perfect accuracy parasites. If you're on the ceiling or on a wall, you are dead. It will get you and bite you. I'm impressed at their skill in that area.
Interestingly enough, on tanith, where I played, I sat in the vent at Satelite Communications hive with 250 LMG rounds. I was parasited, and there was a skulk in the room. I was waiting for him to come get me, but he never came. I unloaded 50 rounds into the hive. He didn't come. I unloaded ALL my ammo into the hive. After I put my very last bullet into it, THEN he came to eat me, and eat me well. The skulks don't count how much ammo I have left, do they? I wonder what caused that behavior...
The bots are fairly easy to take out when there's only 2 of them. When you get 3-4 skulks and a gorge, turret farming isn't an option anymore, you'll never get enough turrets built. A combination of mines and turrets work well, but is still maintenance and res intensive. Your carefully placed mines nuke the first skulk, and the one just behind it leaps through the exact same space (now devoid of mines) and proceeds to convert living healthy marines into Purina skulk chow. The satcom Vent O Doom is hard for the bots to counter, as the skulks can't see you, but you can see the hive. It was likely random chance that a skulk decided to use that out-bound route from satcom.
@FoxFlame/Shadowics
I've got the draft waypointing guide in pdf format (as soon as clam gets back, I'll try and get it posted on whichbot.com) in the meantime PM me if you want a copy of it, it's about 150k at the moment, and includes all the commands, as well as best practices for cornering, and doors. The main idea for waypointing is you want the skulks to be able to go everwhere the marines can build in as few waypoints as possible. The bots will not reliably double-back over a path, so you need to give them turn-around spots now and again so if the threat changes they can flip a u-turn.
Great waterhouse. Thanks in advance. MY hotmail wouldn't like 150k so I'll wait until you can get it posted. I got the basic idea of waypointing and how to use the commands.... as few waypoints as possible.... looks like I had the wrong idea there. I definatly have to read your guide.
In the mean time - I played a game against a single bot on tanith. It was quite entertaining. Some things I noticed : The bot seems to get hung up in vents and on rails sometimes. The bot placed alot of importance on being gorge, though this may have been because there was only one - one time I was attack the hive when he respawned, but instead of attacking me he ran away around the corner, when gorge, then came back to try and spit me to death. Another time I watched him with MT coming towards me and waited on the other side of the door (in cargo) for him to open it, I gave him a face full of shotgun, and then he vanished.. gasp! redempion! The random hive defense worked quite well, though I never saw it build any other chambers beside OCs and DCs. It even attacked me with babblers when it got 3 hives up.
Very impressive <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
Well, I'm more impressed now by the work you must have put in to get them to work in Tanith. I just tried several times to put waypoints into a map of mine, but the bots would just run around in circles and kill each other. They couldn't even seem to grasp the concept of turning a corner, even if it was just a corner of waypoints in the middle of a room. They just sort-of turn around and end up going around in circles. I'm not sure what I was doing wrong, I made sure I didn't have any overlaping paths. Looks like I'll need that guide before I can start doing anything with the bots. Hope I can get it to work eventually though.
Tanith isn't the best map for looking at to determine good waypointing. I am working on a new waypoint file for Tanith that has less paths (so hopefully more optimal movement). If you want to look at a fairly good waypoint map I would suggest ns_napo (download at<a href='http://www.mayberrygames.com/ns.html' target='_blank'>Mayberry Stars & Stripes</a>) right now.
<b>Shadowics</b>, do you have your map that I can download and check it out for waypointing?
<!--QuoteBegin--Shadowics+Jun 16 2003, 09:53 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Shadowics @ Jun 16 2003, 09:53 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Well, I'm more impressed now by the work you must have put in to get them to work in Tanith. I just tried several times to put waypoints into a map of mine, but the bots would just run around in circles and kill each other. They couldn't even seem to grasp the concept of turning a corner, even if it was just a corner of waypoints in the middle of a room. They just sort-of turn around and end up going around in circles. I'm not sure what I was doing wrong, I made sure I didn't have any overlaping paths. Looks like I'll need that guide before I can start doing anything with the bots. Hope I can get it to work eventually though. <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Well, the bot's don't kill each other <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo--> but they do commit suicide if they get stuck for some reason.
When you mentioned that they go around in circles, how tight are the circles? Are they circling around a single waypoint or between a set of waypoints? Are there walls or obstructions nearby? Any more info would be great.
To help you waypoint, it might be good to know how the bot movement basically works. Clamatius can probably do a better job explaining this part (since he wrote most of it <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->), but the bot movement logic basically breaks down into two discrete components:
a) Reward/time based waypoint navigation b) Inter-waypoint reactive movement (simple terrain navigation)
The purpose of the waypoint navigation is to get the bot into a general area where he may do some good. The way the waypoints are selected is via a weighted reward/time decision graph. So when the bot initializes, all of the nodes in the graph (basically waypoints) are initialized to zero. Then the bot:
0) Enters "lost" mode and looks for the closest possible waypoint when the bot spawns. 1) Select closest waypoint and move towards it. 2) Once the bot arrives at the closest waypont, it then enters the reward seeking mode and selects the next waypoint based on the reward/time system
Here is where it gets really interesting. The reward system is seeded by the strategies that are configured for the bot (depending on the bot's primary function: ie: gorge, wolfpack leader, scout, rescue, etc). Let's use the scout as it's a straightforward example. If the bot is running around as a scout, its reward map is seeded by two categories of entities:
0) Static map entities (resource nozzles and hive locations) 1) Dynamic entities that are seen when the scout runs around (marine buildables like comm chairs, resource towers, armories, etc)
The reward for each waypoint in the graph is calculated in a trickling fashion. An easy way to think about this is to imagine two people (waypoints) shouting equally loud while standing at different distances away from you. The logic you're given is to go towards the louder sound. Assuming both people are "weighted" the same (ie: no preference between the two), the person closest to you will be louder and you'll head in that direction. This is how the reward graph works at the most basic level. There are many other variables that influence whether you'll head toward a particular waypoint, such as weights, travel cost, etc, that may influence you to head towards the more distant target (ie: if you have to climb a rope to get to the closer target, it may not be as attractive of a target).
So, as the bot is running around the map, its waypoint navigation system is continually returning waypoints based on the reward graph. The other component to the bot's movement is how it's going to move between waypoints (the inter-waypoint reactive movement component that I mentioned earlier). The logic here basically breaks down to:
0) Head towards target waypoint. 1) If the bot's sensors detect any collisions, calculate what pitch and yaw angles and speed are required for the bot to clear the obstacle (depending on the type of evolution) 2) Wash, rinse, and repeat until the bot arrives at the target waypoint.
So, in short, the bot's movement logic is designed to be flexible and generic enough so that waypointing maps should be a fairly straightforward process. The important thing is to ensure you've created a path between waypoints so the bot can get from waypoint to waypoint. Hope this helps.
I saw in Tanith how some paths doubled over but it was enough to get the basic idea of mapping. (Paths aren't suppose to double over other paths right? <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo--> ) I've been trying the bots in part of a still unfinished map, I'll draw a picture to explain what I'm seeing. Speaking of tanith I was on wildtangent's server earlier. Playing against the bots with other people was quite a bit of fun <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
mutt, wow, thanks for the info, sounds like you put an awful lot of work into it. The bots do kill each other! I had tournament mode on so I could stack the team with bots against just me and they started running around in circles biting each other! The circles are fairly tight, mmm, like doing laps around a hive. Once one was doing figure 8s. Yes there are walls in the way, sometimes I see one doing circles into the wall away from the waypoints as if it was trying to run straight to me. However, after I went and attacked one of them while he was circling around, he respawned and came straight back after me, but the others kept circling, none of them ever went gorge.
Here's my bad and oversimplified picture of what's going on, it probably won't help any but eh... The green is the hive, except the rectangular greens which are walls. The blue is the marine. Red dots and blue lines represent waypoints just line in debug. the empty circles represent where they tend to circle, though once they get to the last one they'll usually turn towards me and come after me.
I've got it!! I figured out what the problem was!!
I was making a demo map to show what the problem I was having was - a small peice of the map I was testing on before - and I compiled it fullbright so I could see better. Well, I remade to waypoints like I had them and ran a bot. The same thing was happening as before, it began running around it circles. So I killed it and watched it real closely next time. Here's what was happening: The skulk-bot would spawn, zig-zag a little until it hit the hive waypoint, then start going down the path towards the next waypoint. As it was going down the path it would start to drift off the path one way or the other, then it would correct it's self back onto the path but it would overcorrect a little so it was going off course in the opposite direction. So it would zig-zag back and forth worse and worse until it was turning so much it threw it's self off the path completely. Then it would just run around in circles. So I went aliens again and redid the waypoints, placing one every 300 units or so and only having very short paths. Success! with alot of waypoints to follow the skulkbots worked almost flawlessly. I say almost for 2 reasons - there were two things I noticed. 1) there was another casualty: [wb]Who killed [wb]TheFatOne. They <u>do</u> attack each other, but if you don't have it on tournament mode you wouldn't notice. 2) I was aliens to begin with to lay the waypoints - then I spawned [wb]TheFatOne - then I went marines. While I was on marines TheFatOne 'remembered' me and didn't attack me at all, even after I knifed it to death. While still on marines I spawned another bot, [wb]Who, who immeadiately jumped out and charged me, but TheFatOne still wouldn't attack me.
I'm off to redo all the waypoints with short paths. Should be fun once I get done <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
Ok (*deep breath*), here's a bunch of answers on varying topics.
The bots do not attack each other deliberately, but if you have friendly fire on they will sometimes attack each other by accident, since they don't account for friendly fire. If you have 8 eating a command chair, usually 1 or 2 will die before the chair is destroyed.
Waypointing is tricky. It takes a fair amount of time to get a really good waypoint graph. I did spend a while looking into alternatives to waypoint graphs, such as navigation meshes and so on, but the standard terrain mapping techniques used in games wouldn't work that well for skulks since they can climb walls. Having said that, it's possible that I'll look into an augmented waypoint/mesh hybrid model at some point. Right now I don't have the excessive amount of spare time that would be required. To be honest, there's enough finicky stuff in the waypoint system that I don't really expect people who can't ask me a lot of questions to be able to do it at the moment. However, once Waterhouse's Waypointing Guide is finished, maybe that'll change.
The pathfinding algorithm that Mutt described is called "Pathematics", developed by <a href='http://www.base-sixteen.com' target='_blank'>Alex Champandard</a>. I heard a lecture on it at GDC this year and it sounded applicable, so I implemented it and it turned out pretty well.
If there's only 1 bot, it will gorge pretty much the whole time till it gets 2 hives up. It doesn't build movement or sensory chambers at the moment. The gorge AI is rudimentary at best - once 1.1 comes out, I hope to be spending a lot more time on that, spare time permitting.
Crunchy is correct in that Tanith is not the best map to look at for waypointing examples. His waypoint maps (lost and napo) are the ones I'd recommend looking at.
On fighting against the bots in general: note that the bots are generally much more effective in numbers of 4-5+ vs. 1-2. At that point, the main pack has enough punch to be able to take out mined turret factories more easily and the HiveMind can allocate a bot or 2 to scout the map. If the main pack is having to scout, it gives the marines a lot more time to build up defenses between attacks.
Comments
--Fox
No matter what map I tired, napo, lost or tanith, the gorge would go around in circles. IN the starting hive. Over and over and over again. <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->
Put cheats on, spawned a hive, waited 30 mins, never saw fades at all.
Am I doing something wrong? <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
On the hive build desire: right now that won't do a lot. By the time that's relevant, it's already made up its mind to build a hive or not. It'll most likely become more important in a later version.
Freak83: Normally, the WildTangent server(s) are running WhichBot, but I believe they're down right now for maintenance. Those are the only servers I know of that run it in public. Maybe more people will start running it now it's in beta, but who knows - a lot of server hosts don't like to run bots because they're cpu intensive.
LB: Man, were you a professional puppy-slaughterer in a past life to get karma this bad? <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo--> Here's my best shot at explaining what you're seeing. Now, when the game first starts, the gorge will often go round in circles for a little while. He's pacing thoughtfully, considering his best route to resource node locations. However, he should fairly soon come to a conclusion and head out to resource nodes. On getting there, he'll usually stop for a bit to wait for res. If he doesn't have enough soon, he'll wander round a little more (otherwise his little pudgy feet get cold, and he doesn't like that), but he will plunk down a couple of RTs and then head back to build some DCs in his hive. On fades never appearing: if the skulks never die, they don't bother upgrading. So if you're just running a game with them and them alone, they'll eat the marine base and then run around happily.
I'd even kick the gorge, another bot would go gorge and do the exact same thing.
And the other bots had 20 +/- deaths each. 30 Turrets do alot of damage, especally when the bots ignore them <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
I'd even kick the gorge, another bot would go gorge and do the exact same thing.
And the other bots had 20 +/- deaths each. 30 Turrets do alot of damage, especally when the bots ignore them <!--emo&:p--><img src='http://www.natural-selection.org/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo--> <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Just out of curiosity, did you install the new waypoint files? Check your Half-Life/ns/addons/whichbot/data directory to see if the .wpt files are there. It should look something like this:
06/09/2003 08:37 PM <DIR> .
06/09/2003 08:37 PM <DIR> ..
06/09/2003 08:37 PM <DIR> CVS
06/09/2003 08:37 PM 6,672 ns_eclipse.wpt
05/14/2003 05:25 PM 8,898 ns_hera.wpt
05/13/2003 06:33 PM 5,958 ns_lost.wpt
05/14/2003 05:25 PM 6,392 ns_napo.wpt
06/08/2003 10:21 AM 7,798 ns_tanith.wpt
Double check the file dates/sizes if you can as the waypoint files went through some revs since last release (0.3)
This was hosted on my Windows client in a LAN game.
LB, it sounds like something is seriously messed up with the install somewhere.
I noticed something strange when I first unzipped and installed my whichbot/metamod pack: the files unzipped, but the file sizes were all 0 bytes for whatever reason. However, the only reason I noticed that is because the server told me when it tried to load metamod.dll, so that's probably now LB's problem.
Clam, I'll play with that setting, thanks.
As for servers, I keep mine up pretty regularly if you wanna play against the bots. It's at <b>foxflame.is-a-geek.com</b>, but doesn't appear to be all that stable yet, or something. After I get everything up and working, I'll probably kill the HL dir and reinstall from scratch. I'm getting reports of bad lag, but it can't be CPU server lag, since I don't lag as well and I'm connecting from another PC.
I do play occasionally and pubbers join. Some stick around to kill the bots. It's like NS Coop instead of NS "PWNED BY ALIENS and some nub screaming his head off about how he's so leet afterwards in the ready room". Like it's hard to win as aliens on pub.
--Fox
specialy that i see that you have waypoints for MY map :-) makes me happy :-) realy happy :-) *g* and its even a waypoint for the newest version of my map :-) (at least they were able to open the door at the marine spawn, and i think this is done per waypoint)
<!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
Heh, unfortunately, the wp file for Hera is not complete/tested fully yet. If you'd like to try it out anyways, I could upload it.
specialy that i see that you have waypoints for MY map :-) makes me happy :-) realy happy :-) *g* and its even a waypoint for the newest version of my map :-) (at least they were able to open the door at the marine spawn, and i think this is done per waypoint) <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Thanks <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo--> A friend at work (Joe) likes the map alot and whipped up a waypoint file for it for the bots. It's a fun and easy map to learn.
As you surmised, the bot does open doors with the help of a carefully placed waypoint: a) Goto to waypoint, b) Find button, c) Get really close to button d) Press button, e) Hope the door opens. Unfortunately, we haven't quite worked out if the door is actually open or not so if the bot happens to miss the button, it'll take it a few secs to try again.
Well, I figured I'd try to figure out how to lay paths by whaching what the bots do in game, but when I try to add a bot I get : "Unable to create bot, createFakeClient failed". I followed the installation instructs exactly, any idea what the problem is?
Wow, sounds like a great bot. I'm downloading it as I type this, but I have a question. I read about how to make waypoints and waypointpaths on the website but where do they go? If I have a relatively simple custom map and I wanted the bots to be able to get around on it where should I lay paths from/to?
<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
The completed waypoint file should live in the Half-Life/ns/addons/whichbot/data directory. We ought to put together a little waypointing faq but in general:
- For doors that require a button push to operate, place a waypoint really close to the button so that the bot can find the button. Don't forget to place a similar waypoint on the other side of the door if the buttons are symmetrical.
- Ladders: Set a waypoint at the bottom and at the top of each ladder.
- Vents: Like ladders, set a waypoint at the bottom of the wall that leads up to the vent if the vent is above ground level and a waypoint at the entrance of the vent itself.
In addition, you can load up an existing waypoint file and turn on the debug beams and see how existing maps were waypointed for some clues.
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
Well, I figured I'd try to figure out how to lay paths by whaching what the bots do in game, but when I try to add a bot I get : "Unable to create bot, createFakeClient failed". I followed the installation instructs exactly, any idea what the problem is?
<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Strange. I haven't seen this before. Which version of the bot are you using (metamod or standard)? I have read that earlier versions of HL had a bug in the pfnCreateFakeClient() call which can cause this failure. The 1.1.1.0 patch of HL includes this fix.
I'm using the metamod version - I didn't see an option for standard. I have version 1.1.1.0 of HL and 1.04 NS and version 0.4 of whichbot.
Well, I was going to look at how it's setup in tanith, but I loaded up tanith, entered "wb wpdebug" in console, and as soon as I close the console NS crashes.
Anyway, do you mind if we mirror whichbot?
our website is; <a href='http://il.serverops.com' target='_blank'>Illuminati Clan</a>
Thankyou
Spacemonkey
Glad you're having fun playing with the bot!
If I start a LAN game it works fine.
On "wb wpdebug" problems - the debugger only works currently when you're on the alien team, so if you start it when you're in the ready room, the other team or as an observer, it will sometimes crash. We haven't tracked that problem down yet, but it wasn't critical enough to stop us shipping v0.4.
On mirroring: I forgot to mention that if you mirror the bot files, please include a link to the main website at <a href='http://whichbot.com' target='_blank'>whichbot.com</a>. Thanks!
Name: WildTangent NS1.04 [WBot .4]
IP: 64.125.97.250
Port: 27015
Maxplayers: 24 (public slots)
PM me if you have any problems with it. (note that we're not using Clamatius' JP Nerf plugin at this time)
Ah, thanks, that was the problem. You should mention that you have to be on aliens for the debug to work. I looked at the waypoint layout on tanith. it's just sort of a web - lots of connects almost random around the map. They just have to have LOS right? What about where you have places to climb up walls as ladders? what if a bot goes fade and follows that waypoint path? which brings up another question - where the paths split how does the bot 'choose' which way to go? what if one way is a dead end (i.e. a welded vent enterance)?
Sorry if I'm asking too many questions, I just want to make waypoints for my maps so the bots will work good.
--Fox
On the otherhand, I have never, ever, ever seen a skulk so effective at killing jetpackers. If you're out of range, you're whittled down by perfect accuracy parasites. If you're on the ceiling or on a wall, you are dead. It will get you and bite you. I'm impressed at their skill in that area.
Interestingly enough, on tanith, where I played, I sat in the vent at Satelite Communications hive with 250 LMG rounds. I was parasited, and there was a skulk in the room. I was waiting for him to come get me, but he never came. I unloaded 50 rounds into the hive. He didn't come. I unloaded ALL my ammo into the hive. After I put my very last bullet into it, THEN he came to eat me, and eat me well. The skulks don't count how much ammo I have left, do they? I wonder what caused that behavior...
The bots are fairly easy to take out when there's only 2 of them. When you get 3-4 skulks and a gorge, turret farming isn't an option anymore, you'll never get enough turrets built. A combination of mines and turrets work well, but is still maintenance and res intensive. Your carefully placed mines nuke the first skulk, and the one just behind it leaps through the exact same space (now devoid of mines) and proceeds to convert living healthy marines into Purina skulk chow. The satcom Vent O Doom is hard for the bots to counter, as the skulks can't see you, but you can see the hive. It was likely random chance that a skulk decided to use that out-bound route from satcom.
@FoxFlame/Shadowics
I've got the draft waypointing guide in pdf format (as soon as clam gets back, I'll try and get it posted on whichbot.com) in the meantime PM me if you want a copy of it, it's about 150k at the moment, and includes all the commands, as well as best practices for cornering, and doors. The main idea for waypointing is you want the skulks to be able to go everwhere the marines can build in as few waypoints as possible. The bots will not reliably double-back over a path, so you need to give them turn-around spots now and again so if the threat changes they can flip a u-turn.
In the mean time - I played a game against a single bot on tanith. It was quite entertaining. Some things I noticed : The bot seems to get hung up in vents and on rails sometimes. The bot placed alot of importance on being gorge, though this may have been because there was only one - one time I was attack the hive when he respawned, but instead of attacking me he ran away around the corner, when gorge, then came back to try and spit me to death. Another time I watched him with MT coming towards me and waited on the other side of the door (in cargo) for him to open it, I gave him a face full of shotgun, and then he vanished.. gasp! redempion! The random hive defense worked quite well, though I never saw it build any other chambers beside OCs and DCs. It even attacked me with babblers when it got 3 hives up.
Very impressive <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
Tanith isn't the best map for looking at to determine good waypointing. I am working on a new waypoint file for Tanith that has less paths (so hopefully more optimal movement). If you want to look at a fairly good waypoint map I would suggest ns_napo (download at<a href='http://www.mayberrygames.com/ns.html' target='_blank'>Mayberry Stars & Stripes</a>) right now.
<b>Shadowics</b>, do you have your map that I can download and check it out for waypointing?
I will also work on completing ns_hera....
Well, the bot's don't kill each other <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo--> but they do commit suicide if they get stuck for some reason.
When you mentioned that they go around in circles, how tight are the circles? Are they circling around a single waypoint or between a set of waypoints? Are there walls or obstructions nearby? Any more info would be great.
To help you waypoint, it might be good to know how the bot movement basically works. Clamatius can probably do a better job explaining this part (since he wrote most of it <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->), but the bot movement logic basically breaks down into two discrete components:
a) Reward/time based waypoint navigation
b) Inter-waypoint reactive movement (simple terrain navigation)
The purpose of the waypoint navigation is to get the bot into a general area where he may do some good. The way the waypoints are selected is via a weighted reward/time decision graph. So when the bot initializes, all of the nodes in the graph (basically waypoints) are initialized to zero. Then the bot:
0) Enters "lost" mode and looks for the closest possible waypoint when the bot spawns.
1) Select closest waypoint and move towards it.
2) Once the bot arrives at the closest waypont, it then enters the reward seeking mode and selects the next waypoint based on the reward/time system
Here is where it gets really interesting. The reward system is seeded by the strategies that are configured for the bot (depending on the bot's primary function: ie: gorge, wolfpack leader, scout, rescue, etc). Let's use the scout as it's a straightforward example. If the bot is running around as a scout, its reward map is seeded by two categories of entities:
0) Static map entities (resource nozzles and hive locations)
1) Dynamic entities that are seen when the scout runs around (marine buildables like comm chairs, resource towers, armories, etc)
The reward for each waypoint in the graph is calculated in a trickling fashion. An easy way to think about this is to imagine two people (waypoints) shouting equally loud while standing at different distances away from you. The logic you're given is to go towards the louder sound. Assuming both people are "weighted" the same (ie: no preference between the two), the person closest to you will be louder and you'll head in that direction. This is how the reward graph works at the most basic level. There are many other variables that influence whether you'll head toward a particular waypoint, such as weights, travel cost, etc, that may influence you to head towards the more distant target (ie: if you have to climb a rope to get to the closer target, it may not be as attractive of a target).
So, as the bot is running around the map, its waypoint navigation system is continually returning waypoints based on the reward graph. The other component to the bot's movement is how it's going to move between waypoints (the inter-waypoint reactive movement component that I mentioned earlier). The logic here basically breaks down to:
0) Head towards target waypoint.
1) If the bot's sensors detect any collisions, calculate what pitch and yaw angles and speed are required for the bot to clear the obstacle (depending on the type of evolution)
2) Wash, rinse, and repeat until the bot arrives at the target waypoint.
So, in short, the bot's movement logic is designed to be flexible and generic enough so that waypointing maps should be a fairly straightforward process. The important thing is to ensure you've created a path between waypoints so the bot can get from waypoint to waypoint. Hope this helps.
-mutt
mutt, wow, thanks for the info, sounds like you put an awful lot of work into it. The bots do kill each other! I had tournament mode on so I could stack the team with bots against just me and they started running around in circles biting each other! The circles are fairly tight, mmm, like doing laps around a hive. Once one was doing figure 8s. Yes there are walls in the way, sometimes I see one doing circles into the wall away from the waypoints as if it was trying to run straight to me. However, after I went and attacked one of them while he was circling around, he respawned and came straight back after me, but the others kept circling, none of them ever went gorge.
Here's my bad and oversimplified picture of what's going on, it probably won't help any but eh...
The green is the hive, except the rectangular greens which are walls. The blue is the marine. Red dots and blue lines represent waypoints just line in debug. the empty circles represent where they tend to circle, though once they get to the last one they'll usually turn towards me and come after me.
I was making a demo map to show what the problem I was having was - a small peice of the map I was testing on before - and I compiled it fullbright so I could see better. Well, I remade to waypoints like I had them and ran a bot. The same thing was happening as before, it began running around it circles. So I killed it and watched it real closely next time. Here's what was happening: The skulk-bot would spawn, zig-zag a little until it hit the hive waypoint, then start going down the path towards the next waypoint. As it was going down the path it would start to drift off the path one way or the other, then it would correct it's self back onto the path but it would overcorrect a little so it was going off course in the opposite direction. So it would zig-zag back and forth worse and worse until it was turning so much it threw it's self off the path completely. Then it would just run around in circles. So I went aliens again and redid the waypoints, placing one every 300 units or so and only having very short paths. Success! with alot of waypoints to follow the skulkbots worked almost flawlessly.
I say almost for 2 reasons - there were two things I noticed. 1) there was another casualty: [wb]Who killed [wb]TheFatOne. They <u>do</u> attack each other, but if you don't have it on tournament mode you wouldn't notice. 2) I was aliens to begin with to lay the waypoints - then I spawned [wb]TheFatOne - then I went marines. While I was on marines TheFatOne 'remembered' me and didn't attack me at all, even after I knifed it to death. While still on marines I spawned another bot, [wb]Who, who immeadiately jumped out and charged me, but TheFatOne still wouldn't attack me.
I'm off to redo all the waypoints with short paths. Should be fun once I get done <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
The bots do not attack each other deliberately, but if you have friendly fire on they will sometimes attack each other by accident, since they don't account for friendly fire. If you have 8 eating a command chair, usually 1 or 2 will die before the chair is destroyed.
Waypointing is tricky. It takes a fair amount of time to get a really good waypoint graph. I did spend a while looking into alternatives to waypoint graphs, such as navigation meshes and so on, but the standard terrain mapping techniques used in games wouldn't work that well for skulks since they can climb walls. Having said that, it's possible that I'll look into an augmented waypoint/mesh hybrid model at some point. Right now I don't have the excessive amount of spare time that would be required. To be honest, there's enough finicky stuff in the waypoint system that I don't really expect people who can't ask me a lot of questions to be able to do it at the moment. However, once Waterhouse's Waypointing Guide is finished, maybe that'll change.
The pathfinding algorithm that Mutt described is called "Pathematics", developed by <a href='http://www.base-sixteen.com' target='_blank'>Alex Champandard</a>. I heard a lecture on it at GDC this year and it sounded applicable, so I implemented it and it turned out pretty well.
If there's only 1 bot, it will gorge pretty much the whole time till it gets 2 hives up. It doesn't build movement or sensory chambers at the moment. The gorge AI is rudimentary at best - once 1.1 comes out, I hope to be spending a lot more time on that, spare time permitting.
Crunchy is correct in that Tanith is not the best map to look at for waypointing examples. His waypoint maps (lost and napo) are the ones I'd recommend looking at.
On fighting against the bots in general: note that the bots are generally much more effective in numbers of 4-5+ vs. 1-2. At that point, the main pack has enough punch to be able to take out mined turret factories more easily and the HiveMind can allocate a bot or 2 to scout the map. If the main pack is having to scout, it gives the marines a lot more time to build up defenses between attacks.