Bot pathing

Post all mapping and skinning related content here!
User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Sun May 05, 2013 2:29 am

Return to Bot, maybe is a bit off topic but ... let me link this with pathing.

You have a map with paths and full bot support. Somewhere near a path you might have a WoodenBox containing ... a Weapon. You know... a bot has a big nose and sometimes can smell this weapon from WoodenBox and randomly will shoot this box to gain content. Now, because of this "awsome" engine - content can miss (depends on map as well) and cya, accesed null class content, thank you.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Fri May 24, 2013 3:22 pm

Outside of MonsterHunt subject... speaking about CTF game.

CTF game core originaly done by Epic adapted well at Bot (that nasty cybernetic hunter called stupid by other stupids) is very intended to deliver even a few unpredictable results depending on map and PATHING style.

What is about after my understanding ? A.I. (including me :P) are intended to follow the shortest way possible to the target (acces granted by engine), to enhance navigation making A.I. able to appear from "multiple tunels" we have something done to randomize a bit this behavior. We talk about 2 things:
1) placement of PlayerStarts - spreaded well in base not all in the same place as recommended in MH (or the mostly used in MH);
2) AlternatePath - not works in MH and I did not implement it for level 2 since I think we have 0 maps using it in MH, I repeat USING IT.

AlternatePath contains a parameter SelectionWeight and other like bReturnOnly. Let me see, SelectionWeight is a value computed in NavigationPoints array near some random will make a bot to select one of those points as an aditional point to be reached before to get enemy flag. In fact, first will attempt to reach at this place before to capture enemy flag. Using a various placement of 3 such AlternatePaths with different values for SelectionWeight Bot will travel random through these, appearing from different directions to avoid a human camping in a single spot very known for ambush Bot developing a lame game. I used 3 values 0.3 - small, 0.5 - medium, 0.9 - bigger without to use bReturnOnly.

User avatar
EvilGrins
Posts: 2654
Joined: Thu Jun 30, 2011 8:50 pm
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Palo Alto, CA
Contact:

Re: Bot pathing

Post by EvilGrins » Fri May 24, 2013 7:09 pm

I'd imagine that bot pathing for bots would be a bit more intricate for CTF, but probably not as complicated as what would be involved for AS (Assault) given all the specific step-by-step objectives you need to accomplish to win the game for your team, as well as the other team which is trying to stop you.

Sometimes, when I'm a bit played out, I just watch games of bots vs bots. It's fascinating watching what they do, to me anyway, without a live player to guide them.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Sat May 25, 2013 2:07 am

Yeah, this is indeed awsome looking at other team without any human leader managing assault. I like that "bunch attack" they simply tends to attack in group - is another code added in game core. Also what is good in Assault and can be used even in MH is BlockedPath. If a mapper is familiar with using that NavigationPoint, in MH works for sure (ONLY HAVING AN ALTERNATE WAY AVAILABLE), else run in place is the best MH A.I. content.

User avatar
EvilGrins
Posts: 2654
Joined: Thu Jun 30, 2011 8:50 pm
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Palo Alto, CA
Contact:

Re: Bot pathing

Post by EvilGrins » Sat May 25, 2013 7:39 pm

It's not entirely a bunch attack. The bots on their own do support a certain heirarchy, based on the first spawned to either team is marked as leader.

This mostly applies to CTF but you see elements of it in all team games.

By order of spawning:
1 - leader
2 - defender (defends base)
3 - backup (defengs the leader)
4 - freelances

Thing I often find interesting is if any bot is in trouble, the freelancer goes to help it. Using whatever is in the voicepack, plus the bot's assigned name, to say "Hang on, I'm coming".

Even in MonsterHunt this basic setup is the same, although 3 takes on the role of 2 and there may be more than a single 1 on the team depending how many bots/players are in the game. When I play MH with 5 bots, 2 automatically get assigned to watch my back without my ordering them to... and some other bot on the team gets a backup too...

...but technically this isn't bot pathing so much as a bot order of succession.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Sun May 26, 2013 5:00 am

Yeah, I saw that kind of self support. There is indeed other thing working in Bot code.
When one of them is in trouble and calls help, if exist another one closer will respond at call. Enemy of first Bot is automatically enemy for the second guy triggering it to fight. This is not really pathing subject, is the mostly a part of Team-work code. This one can be developed even in game controller (any type).

In other MH game-type I removed that annoying (I've got you covered) it just bugged me sometimes. This COVERer hunter has the right to be freelancer and to leave me alone BY DEFAULT. Usually human hunters aren't so interested to develop "bunch attack" as I noticed last time in MH servers so I copied behavior to Bot.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Mon Jun 03, 2013 1:23 am

So let's recall a few conclusions for Bot Pathing (A.I. almost any).

Making pawn to act well is based on a few paths. Paths are lines between PathNodes and/or Inventories. Pawn will follow those lines as long as is not forced to fly or to do some stunts. Bots aren't so interested to jump from a high roof (only if threat is insane or other bad things). If you need to see Bot jumping from building you have to use LiftExit-PainPath-LiftExit. Last LiftExit will be manually placed higher to not see Bot trying to return. Nearby the last LiftExit we are continuing with a pathnode or something.

Monster is basically instructed to kill enemy and to hunt it down. A monster with a common size (Skaarj, Mercenary, Krall) can develop even an attack. When monster has fear based on enemy strength rating will look for a HomeBase. Under HomeBase area will fight until death. If HomeBase is far we need paths (the mostly blue)
Continuing...

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Mon Jun 03, 2013 1:15 pm

If bot can handle movers (only a few mappers not really so much) for monsters we might have a problem. Maybe we have to open another thread for monster tweaks.

Our Bot can also manage low jumps and high jumps when in their race they collected some Jump-Boots. Need settings at JumpSpot bAlwaysAccel=True. To make Bot to use bImpactJump we need to have a nearby ImpactHammer or else nothing special will happen.

Bot sometimes is not glad about paths at exiting from water. In a tutorial someone told about the same combination with LiftExit-LiftCenter-LiftExit and Bot looks more convinced. I did not try yet this trick. Sometimes a Teleport works for sure (proved).

Trivia: Bot can summon a Lift from top to get down without jumping to retrigger it as humans (hey, is unfair).

Do not mess up in MH with bOneWayPath - is not part of A.I. game-code so there are chances for path to be rejected. Bot can see if a teleport has no way back and won't try to return there. If you have doubts put exiting teleporter a bit higher - for sure Bot will deny that way.

BlockedPath - is helpfull in attack if you have a closed way that need to be opened later, but we have to respect a condition: always need to be available another way (not that AlternatePath) AlternatePath is other NavigationPoint meant for CTF games. Is used for randomizing attack Bot being instructed to walk through multiple paths.

The point that need to be triggered by Bot through proximity needs to be placed as a pathnode - Not higher, Not lower. Bot will collide that almost with chest. Messing up placement will result in finding path = false. Will say maybe: Is not true, how about assault with high targets. Of course is true - that one is a TT_Shoot target. How can reach Bot there ? Using the nearest pathnode TAG - you read well - is about normal collision with a point meant to be fire-position specified in that FortStandard properties. If you check in detail will see this thing. Bot will stop runing there aiming target and firing.

For learning these cool tricks check out default maps. Using known maps with known issues and good things you will learn How to do and How to not do.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Tue Jul 30, 2013 2:24 pm

And now, I wanna debate a small problem related to an old CTF map (I did not check if was seriously debated or not) prety not really functional.

Assuming original name CTF-Glacier][.unr or CTF-Glacier.unr having probably predictable lamer issues or whatever bad things, map was succesfully ruined to no longer works in a version "CTF-Glacier][-CE105.unr" (Clan Edition - LOL edition bla, bla, etc.) I'll present you here a small technology in how to not do.

First of all new last map modified has a bunch of nodes (paths) even useless not only usefull forcing engine without a special purpose. The only good thing seems to be different values for AlternatePath-s. Equation... Why bots roamed only crawling as in a DM without so much interest about FLAGS (being a CTF map). Checking map with my Bot feature I noticed a crapton of paths but nothing for Flags :shock: .

I checked a bit areas nearby Flags as I supposed.
Hint: Take a look here:
MaybeWrong.JPG
What do you thing about this "Clan" Edition ? Why Bots weren't so interested about flags verbosing issues ?
I'm waiting answers... If you don't have any, I'll show you their "fixes".
You do not have the required permissions to view the files attached to this post.

User avatar
EvilGrins
Posts: 2654
Joined: Thu Jun 30, 2011 8:50 pm
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Palo Alto, CA
Contact:

Re: Bot pathing

Post by EvilGrins » Tue Jul 30, 2013 4:59 pm

This may be nothing, but is the flag posted in the ground or on the wall.

As an item, techically it should be it own movement node, for pathing, but if it's not in the ground I dunno how that would work.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Wed Jul 31, 2013 12:13 am

In a way, good answer EG. Yeah, looking at lasts path-lines to flag, they go higher, even that middle of flag linking its node is very nearby wall. In first version (assuming) of map, Flag was placed a bit far from wall, not higher, and also is totaly useless an AlternatePath exactly near flag (????). Is just a desperated one. First point for a good CTF map is to keep its size decent (as defaults), Second is to have only necessary nodes covering as much as possible map correctly. Bot will want a path to flag, if exist such a path will attempt a travel to flag VIA AlternatePath IF IS ONE ASSIGNED not as primary target. If path to flag is broken Bot will totaly ignore AlternatePath - DONE - it won't check a path to AlternatePath if main path to flag not exist from any kind - LOL CE105 and maybe WC208. Here were added a crapton of AlternatePath-s out of logic and bunches of nodes. When paths are in a decent limit you will be surprised to see how can travel a bot.

Exist issues ? Yes..., why a perfect work ? This time is coming from Engine.
Playing with Bots in high skill if you might heavily take an advantage in a way you can keep this advantage, once having a higher score you can win a match. How ? Very simple. Somewhere in map (if was "awsome" decorated) you can find a spot out of any AlternatePath to your Flag, use ImpactHammer to jump random in a High Spot, you can stay there 2 months with Enemy-Flag. They cannot score because Flag is not AT HOME, you will do nothing - time passing - you win. Good Job ! That's why I prefer Monster games - these issues aren't very important.

A dude said (a noob maybe): Do not use paths in MH maps, will make things harder, monster finding players and killing them. I say: Get Lost, freak ! :x Play Solitaire then.
1) You need first to learn well why paths are good for monster combat;
2) ANYtime in maps I can find a spot out of paths and HIGHER placed where monsters cannot "see" me, :twisted: I can wait there a bit "to forget me";
3) Big Monsters cannot follow paths from small places or a nasty geometry. What's the problem ? Bot is a much better roamer than a Monster;
4) A JumpSpot bad placed might bug a monster there being a kind of 0 threat;
5) Lift Issues - Mappers couldn't the mostly manage Lift pathing for Bots - for monsters where problems are more nasty I have doubts to see a serious threat;
6) Exists some settings restricting monster to not use certain paths. If a single node is dumb set, BYE USING PATH - previous example is just a stupid one;
7) Others ?

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Tue Jan 07, 2014 1:48 am

Assuming in 2014 we have some years since we've seen UT, probably we can read Wiki and we can use different tricks when things goes bad in certain place, I mean where it looks like a Bot won't pass. As I described summary, a combination with LiftExit-PainPath-LiftExit (probably works with LiftCenter too) can be succesfull to make A.I. convinced about a "normal thing" and to not deny that way. Look at CTF-Coret how is mapped area where Bot runs with flag jumping outta base (any). If somewhere in a forum was debated a CTF subject without Style Coret, well, I'm totally disagree. Coret is example in "how to" and also "how to not do" ever. "How to" shows pathing hints and reversal is a pointless PlayerStart placed originally in wall - THANKS EPIC - I've seen such dumbness at others too, learned from you I'm guessing.
If you used ever (speaking about SP and Coop) class Unrealshare.Jumper. Is a small trigger meant to make monster (not Bot) to jump over an obstruction. Recoding such thing into MyLevel will convince Bot to get over certain thing which bugged his travel.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Thu Feb 06, 2014 1:46 am

Now, speaking about normal things related to Bot Pathing failed even by Epic themselves here and there, checkout "original" stuff if is good or bad based on default rules or not.
Small extract here:
UT_AI.zip
If you can read, see what you did. I won't add any such map in any of my test(s) server having nodes in inventories, not BumpOpenTimed when is not a need or such supposed "functional things". And the good new is: these rules are incredible simple to be followed working like a charm - proved.
You do not have the required permissions to view the files attached to this post.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Mon Feb 09, 2015 2:48 pm

Bumping here a bit.

Intro
I was looking over some old CTF stuff done for an old competition like was the last 512K with idea that I'll discover goodies into that old stuff.

Content
I discovered some let's say CTF maps. There are common issues with less logic which seems to burn up all design because they just leads in a pretty retarded A.I.:
- DEFENSEPOINT placed outside of certain paths and 0 visibility to Flag makes that BOT defender to be called stupid - The question is: WHICH one is really stupid ???
- Baby, there is one road between these normally 2 Flags - THE SHORTEST ONE - as long as I could see in 5 maps 0 AlternatePath actors, poor Bot will always follow the same predictable and known route with Enemy-Flag being killed more often than supposed. In this case 3 players gain advantage against other 2 players + 1 Bot because that Bot in medium skill is like a total void due to that "magic" intelligence added to map.

Definition:
AlternatePath - is an actor NavigationPoint having a few tiny things to be configured. This is mainly stuff for CTF being uncalled in other games. I did not see it too much in custom CTF but I saw it in MH where is almost useless, the mostly works as replacement for a PathNode.

Functionality:
Bot when (re)spawn has 80% chances to scan AlternatePath(s). There will participate a small algorithm in selecting an AlternatePath being marked as Enemy Team. Example: Red Bot will sort an AlternatePath for Team 1 in order to capture Blue Flag.
After getting Enemy Flag will track the way back having 50% chances to sort an AlternatePath marked Team 0 as long as it wants the way back to Red Base - new directive is coming from Enemy Flag itself (damned traitor).
Value SelectionWeight need tested because it should go into an usual random range so values might start with 0.5 - 0.8 - 1 - 1.2 - etc up to 4, 5 - or even more depending on map. These need tested for sure before testing if road to AlternatePath is valid.

Bugs (usual in UT):
- AlternatePath marked bReturnOnly has no effect. If action in purpose is done for some special stunt is better to code a custom intelligent Navigation Node (or to ask help);
- additional bTwoWay and bOneWayPath are totally confusing me (looks like 2 cows want to go through the same small door) but let's get over such stunts or you can input in Editor's console "set AlternatePath bTwoWay True" to not bug any travel direction. Else if this node has no "bDirectional" things, probably is a bit ignored but has also chances to not be sorted out being totally ignored.

For me things goes as follows: Drop some content in Editor, put small brains into Level and let the blood to spread walls.

User avatar
Nelsona
Posts: 998
Joined: Sun Mar 06, 2011 11:45 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
Location: Still at Keyboard
Contact:

Re: Bot pathing

Post by Nelsona » Wed Feb 11, 2015 1:39 pm

Another issue needs to be mentioned:

Almighty Flag
See ? Exactly this one was the problem, My Blue Bots captured Red Flag and died in Red Base fighting forever. Yo... my friend, get that Flag here right now! Useless, they did nothing.

Situation:
Flag is designed cute in a way, but it might fool you at placement. If Flag is completely visible is... TOO HIGH = "Unreachable" and "FindPathToward" returns NONE. So the Blue Flag was a vanished thing for my team - and for Red Team too.

Concluded:
Another nice designed map developing NULL Bot play - I fixed it and paths completed for all camping spots. I don't accept campers in not camping games.

Post Reply