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 » Thu Jan 24, 2013 1:32 am

Is better to stay away from setting up ranged style for monster which doesn't have implemented ranged attack code. Will just lock monster with crash risk, that's why I'm asking mappers to not touch things in editor if they don't know what they doing. To clarify this subject check pupae code.

Also I found somewhere a SVManta without ranged code spreading errors in console in a game-type which just freeze UT without anything in log - just a simple game lock-down.

For these reasons is hard to have a common deal with all monsters, they are different coded.
Also I tried to have a deal with those "Statues" but is somehow nasty, Bot can awake them earlier due to original technology used in MH. I have to rework this chapter too. But... Who knows what any other crap assumed monster will be "borned" in future to keep ruining MH ?

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 » Thu Jan 24, 2013 1:00 pm

I've got a manta, didn't make it myself, that has a ranged attack. It fires an explosive projectile from it's tail. Deadly little sucker too.

It's the manta111x from the monsterpakage asgard2.

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 Jan 24, 2013 1:53 pm

Yes, a few custom monsters are coded well indeed but... not all of them, some packages were just released and are still hosted by people with 0 coding experience assuming as being stuff, LOL. I looked at more classes, I concluded fast a single point for me... they don't deserve the mostly any waste of time.

Last time I checked Bot. A few things just bug me - I don't understand everything there. If I ask other people I'll bet I'll see 0 answers. Nobody seems to help this chapter, I was the only idiot fixing break attack in MH recoding another attached WayPoint (I still want a general improvement).

User avatar
Kelly
Posts: 131
Joined: Sat Dec 01, 2012 2:29 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Coos Bay, Oregon

Re: Bot pathing

Post by Kelly » Thu Jan 24, 2013 5:11 pm

SVManta is from the Survival mod. It shouldn't be used in MH maps.
When everyone you ever known is headed for a headstone
I don’t wanna give the end away but we’re gonna die one day

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 Jan 25, 2013 1:38 am

Yep, Ranged code missing, spreading only errors. And there isn't only this issue, I checked myself if I can do something about monster laziness, not so much. Their native most wanted state is just waiting. Exist exceptions but only mapper can improve things not really the mod played.

Attaching an inventory in hope to keep them moving is a bad ideea - from my side. Roamers are counted and stopped native - more than 4 roamers are stopped anyway. I won't ever suggest to act against native code. This always might break something unpredictable.
To set up a party with some freaky monsters you just need to call patrolling state correctly, also an instigator coming from player combined with a chain of alarmpoints - here are necessary paths. All action is coming from map in monster case.

Bot is a native roamer - yes, even 50 bots added will attempt to roam (if they aren't blocked by themselves) bot is a seeker not a sleeper.

I'll take some time in future to alter something at monster (to redo a native code), will be first just a try to point some header into my class not UnrealShare as I did with a CTFGame to be browsable and compatible with original mod (calls from flag, A.I. behavior, etc.) but extended for monster usage called in Bot Attraction... eh, I'll walk over there to hunt down all bugs possible.
If I can alter parent class like this, then I'm half saved. I'll rework native attitude for all pawns non-monsters and teaming them by default. Is just a project in this moment.

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 Jan 26, 2013 3:08 am

Now EG, talking about Bot pathing and desperated attempts to map something, I have another toy practiced locally with Bots. Imagine a map initially with 1240 pathnodes, working only in Cover support. End higher placed being unable to be found. WayPoints = 0, movers triggercontrolled and set for a single tounch = accesed nones. Unexistent states returned as orders for monsters and so on, a mover swallowing Bot and locking it forever, etc.

I simply fixed all trashes and ... map works fine with only 617 pathnodes and 78 Waypoints - read again if you are confused :) , in local game without any mover issue, bots are able to complete map (I tested it using my mod). In default MH I think might a problem due to their racing featured Shrimp-ed content and also WayPoint messed at Position subject VS touching order.

User avatar
Kelly
Posts: 131
Joined: Sat Dec 01, 2012 2:29 am
What is the middle number? (one, TWO, three): 2
ExtraAntiSpam: Blue
extraextraantispam: Yes
NoMoreSpam: Silver
Location: Coos Bay, Oregon

Re: Bot pathing

Post by Kelly » Sat Jan 26, 2013 5:10 am

Nels, here's an idea I had a couple of years ago but never really got around to trying. I was working on pathing for the monsters, trying to create something that they could use in large maps to get around and perhaps be unpredictable but 'smarter'.

You can't really create a path network on the fly, the engine won't do that. However, that trick with the trigger and actor you showed me that alerts monsters even from a large distance got me seriously thinking about how to implement that within the monsters themselves. Let me explain:

Okay you have a group of monsters strung out across a large map. One of the monsters "sees" a player and goes into attack mode. Somehow if you could send out a line-of-sight notification to other monsters that can see the first activated monster it would trigger them to react too. In essence you would create a moving network where the triggered monsters are beacons that attract the other non-triggered monsters who can see them but not the player. That behavior would be really hard to defend against, much like an alarm going off. The monsters would naturally stream towards the players and it would appear to be fluid and real.

Anyway just some thought on this.
When everyone you ever known is headed for a headstone
I don’t wanna give the end away but we’re gonna die one day

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 Jan 26, 2013 10:52 am

Mmm... I worked today at another root class of ScriptedPawn (a child one).

After first tests (not complete with all classes), I don't know what is doing that PlayerCanSeeMe because for Bots nothing is happening of course. Their timer (monsters in subject) seems locked as their some physics related, I'm completelly blocked here.

But... Added some of them in a classic TDM... once attacked by a Bot, a single monster (a kind of Berserker) triggered instantly all nearby friends (without any attraction code - just default TDM) and all those monsters attacked Bots almost instantly. This problem is THE START - how to start monster as is doing PlayerCanSeeMe, heck. They seems to act at other pawns only when they receive first hit, or a projectile is exploding nearby. Which of these factors are STARTING the pawn and where exactly in code is the start ? This is what I'm looking for. Even Bot with default hate atitude for monster seems to have a slow reaction (if no attraction is called) he fight with them when is almost touching them, LOL.
The original attraction from MH is inflicting an external code, but is a simulation. Only player is the master instigator. This seems hard to be recreated at Bots and Monsters.
Their default waiting stupid state looks like is ruining timer making them blind and deaf when other pawns are nearby. The only default reaction is when some Skaarj are nearby being Player and starting the fight, else everybody is sleeping until human is setting up the start (do not worry I already tried to override default PlayerCanSeeMe but I failed one or more parameters - I don't know which is in input and which is in output related to an ACTOR - not only A.I. RELATED as described at Wiki - that's bullshit writed. This one exists in Spawnpoint (this is not pawn), in weaponry, in decorations and these AREN'T A.I. as supposed. So, I cannot count on any help since even great coders are posting nonsenses, or simply is indeed an A.I. related function and some guys from Epic used it outside of A.I. but are described 0 informations about functionality in any instance, I have to look myself over everything slowing down other ideeas.

Also I set an instigator for a controller version to make some dust. Except lags created I couldn't see them moving (default monsters). I gave up at ideea since I checked their internal function StartRoaming. This is a bad clamp if is called in action. Will block monster instantly. Looking more at the code it seems a need to inform creature about position. I'm trying to find a solution to inject a common bad thing randomly to start moving.
First, I think I'll complete the list with nasty monsters looking like defaults but being more mad than defaults.
Next Point:
Some SkaarjStatues aren't any more awaked by Bots, only triggered normally. I found a deal with a custom state unexistent in default monster but being excepted if exists in other subclasses.

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 Feb 17, 2013 5:13 pm

For this topic I forgot to ask you something, EG. Because not many people are doing paths and very few know this great feature we can speak about other kind of things for human player but using Bot's Path (or creature's path). Do you know some tricks about this chapter, handy for player ?

Let me explain a bit.
If we have a complex map like a kind of labirint where we can be lost digging hours for an assumed exit, but mapper was a great guy and added paths (A.I.) paths, we can develop a Bot behavior in finding a way back in a known spot. Is indeed a sensitive problem but might help somehow.

First we have to do two nice commands to not waste time:
- set input x RememberSpot;
- set input d ShowPath;

Now what is about ? We reached at a cross-road, we don't want to be lost, we can camp for 2 seconds near some ammo or whatever inventory and we press "x". Good...
now we gotta follow a road, after finishing mission or whatever job we need to come back at cross-road but we aren't sure about the way. Now begins a small fun. We press "d", more exactly we ask engine (like a Bot) about a path to our RememberSpot. Looking nearby we can see a small lamp spawned on a pathnode. We need to move there (there are 6 seconds for doing this), once touched lamp, another lamp spawns over next pathnode, we keep going there and another lamp spawns until we are leaded to our RememberSpot. Of course we can follow such paths because we aren't like Bots obfuscated by whatever small thing and we can dodge and jump as needed.
I'll show here a few details via images.
00_RememberSpot.JPG
01_FirstNode.JPG
02_NextNode.JPG
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 » Sun Feb 17, 2013 5:33 pm

And so on...
03_NextNode.JPG
04_LastNode.JPG
05_DestinationReacheable.JPG
And that's all. Any questions ?
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 » Tue Feb 26, 2013 5:31 pm

If there aren't any questions about this pathing subject let's clarify what is about with that bot stucked between 2 pathnodes without to advance.

Our Bot roamer is trained to find any inventory looking natively for a path to the most desired and of course collecting everything as possible. If the game is a kind of TeamGamePlus here is engajed team-work code. Team-work code is part of the game, the function is called FindSpecialAttractionFor. Our bot is starting roaming being interested what "is saying" the game - which is the mission. Also there are a few small things (parameters), these might change general attitude for game: PriorityObjective, Attitude to a certain pawn, Game-Threat, all these combined can do a good controller or a retarded one (and even boosted by bad maps).

This attraction is not so powerfull as some people are thinking - it just depends on how big is the code. Is about a single querry in a second as time interval. Bot is not accepted to do a bunch of questions in a second - yeah, check this well. I think I can alter this time in a custom controller but will be a bad ideea. Good, back in subject.

Mission says: find a path to whatever point; the bot is pointed to the nearby node which is part of a path. Once reached at node, bot will querry again attraction, this time is pointed to another closer node to mission point, bot will go there again. What is happening when bot is reaching very early at next node ? Will ask again what to do, but if our second interval not passed, attraction won't answer. Bot will return at last node (in hoping to do something retrying a querry). If second passed will be pointed again to the nasty node which is placed too close. And we can asist again at the same failure returning again and again due to this syncronization compromised based on a too closer next node. In fact these failures are coming from internal pawn timer being bigger than time required to travel between 2 nodes.
In case if you understood well or not, Bot is oriented point by point not really precaching XXX paths as supposed. The only one which is precaching these roads is Engine itself pointing pawn to a node supposed closer to target without to draw the way in pawn's mind. If path is broken Engine won't return any node and finding path will respond FALSE (very often in MH, :P). I noticed this during my play with finding paths and looks more than logic. Is like a clock, tic-toc, tic-toc, not earlier than attraction timer. Distance accepted between 2 pathnodes is computed prety well noticing the general Navigation timer used by different pawns. Under 700 UU is more than OK. If such nodes are bad placed the only way to unlock the bot is any possible enemy (will attempt to hunt or to dodge leaving bad pathed area), a random boost coming from external source or other thing meant to alter a bit his mad desire to advance. If mission point is part of his native code, bot will be more convinced to follow even a path a bit obfuscated retrying jumps and front-dodges.
And this is my conclusion about dumb pathing with more nodes in the same place even added through ammo spots useless.

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 Apr 11, 2013 12:44 am

Other subject.
Bot can manage a door with a buton ? Yes ! Conditions are simple. Lift or door waiting for pawn might have a nearby and in direct sight a trigger or a buton meant to activate it. Walk through settings and declare properly the tag. Bump buton or trigger must be declared what is for. Also Bot will attempt to open a door even having a buton in other side of map runing in walls. For such behavior say thanks to mapper's intelligence in designing stuff. In this small area with lift and buton we want to have paths because if that buton is placed too far Bot will remain stucked there and cannot find the way through the door or via lift. You can toy with these optimizing results.

LiftTrigger = "arandomstring"

Trigger or Buton Tag = "arandomstring"

Also a few tests are recommended and welcomed.

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 Apr 14, 2013 5:29 pm

I played today a bit MH-SkaarjTowerF map. Speaking about maps and pathing is hard to see maps well pathed.

I placed a RememberSpot near teleporters after Titan area. Returning at begining I was interested to see if I can reach at RememberSpot using Bot style - Nelsona findpathto ...
and Nelsona was stucked between a pathnode placed near first stair and a PlayerStart bad placed. Indeed, stucking Bot (Even me when I'm Bot) could be a wrong array defined in engine based on bad map pathing, brutalizing my A.I. in a constant fake navigation. Only leaving that place and doing a few steps on stairs I could find path to teleporters area. I cannot expect to many skills in this pathing job since I found that elevator (lift) without anything in common with A.I. So I jumped in water because I don't know to use a lift when I play as Bot, :P :lol: if that lift is unpathed.
As mapper, if you can define a path compatible with everybody, Bot won't fail (neither humans).

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 » Sun Apr 14, 2013 9:23 pm

I love and hate MH-SkaarjTowerF. Well, don't know the version with an 'F' on the end but one of them. the map has no bot pathing to speak of. Bots follow me but only a bit...

....the bots hate that big ol' staircase at the beginning something fierce.

Nelsona, i know you're not on ut99.org but are you familiar with the FerBotZ project? It's kinda designed for scenarios involving no bot pathing, it's an entirely new AI setup designed to help buts get around that.

I haven't tried it myself:
http://www.ut99.org/viewtopic.php?f=7&t=3805&start=180

That's not the beginning of the thread but I thought you might find the pic on that page interesting, maybe read up on the rest.

Hell, you may've read about it elsewhere. I don't know if the guy has posted it on other forums you migth also be on.

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 Apr 15, 2013 12:20 am

Any A.I. is ruined without paths (do not say this at DU) let them live their dream. More combat states are related to path. A.I. is moving different when is oriented in map (informed about ground).

FerBotz ? I hope is a joke. Those clowns are assumed Bots but not really subclassed as Bots. Fooling only with bIsPlayer will need a reworked controller. Let me see. In my MH the normal bots are meant to be friend of Bot, Player, Nali, Cow, but... they hunted those Bots. Let's say I can solve that attitude problem (different clowns - oops paws) but deserve attention ? Maybe for future versions.
I noticed a bunch of packages needed for a few "Bots". Because I'm not interested in a bunch of errors I customized a common one from menu. Looks like all ignorants are intended only to gain popularity using stuff without nothing in common with Net Codes.
We keep speaking about AUSSIEAUSSIE ? Is the third time when I speak about this package trouble - I see it called based on an INT from system - why not only defaults ?. I predicted at old PMH forum 3 years ago what will do some "mapper", and he did. A server is uncontactable at using that. And that one is not the single problem:

Code: Select all

Warning: Failed to load 'NULL': Can't resolve package name
Warning: Failed to load 'Class None.': Can't resolve package name
Warning: Failed to load 'AUSSIEAUSSIE': Can't find file for package 'AUSSIEAUSSIE'
Warning: Failed to load 'Class AUSSIEAUSSIE.AUSSIEAUSSIE': Can't find file for package 'AUSSIEAUSSIE'
Warning: Failed to load 'NYACovertSniper': Can't find file for package 'NYACovertSniper'
Warning: Failed to load 'Class NYACovertSniper.NYACovertSniper': Can't find file for package 'NYACovertSniper'
Warning: Failed to load 'SpecialRifleF': Can't find file for package 'SpecialRifleF'
Warning: Failed to load 'Class SpecialRifleF.SRF_Rifle': Can't find file for package 'SpecialRifleF'
ScriptLog: Detectados: 19 Waypoints, MH-Akemi_vs_Tomoko_R.MonsterEnd0 como End
.....
ScriptWarning: Botz MH-Akemi_vs_Tomoko_R.Botz0 (Function FerBotz.Botz.Tick:02EE) Accessed None
ScriptWarning: Botz MH-Akemi_vs_Tomoko_R.Botz0 (Function FerBotz.Botz.Tick:02EE) Accessed None
ScriptWarning: Botz MH-Akemi_vs_Tomoko_R.Botz0 (Function FerBotz.Botz.Tick:02EE) Accessed None
ScriptWarning: Botz MH-Akemi_vs_Tomoko_R.Botz0 (Function FerBotz.Botz.Tick:02EE) Accessed None
ScriptWarning: Botz MH-Akemi_vs_Tomoko_R.Botz0 (Function FerBotz.Botz.Tick:02EE) Accessed None
.....
ScriptWarning: Botz MH-Akemi_vs_Tomoko_R.Botz0 (Function FerBotz.Botz.Killed:019F) Accessed null class context
And this is all about "Bots". I won't dig deeper to look at codes - a bit of english could be implemented in menu anyway.
Package is MH ready but not attached MH versions. Now combine MH errors with Bots errors and let me know how much can hold the game.
This time I have a deal with A.I. controller from MH using default Bots with a very limited number of errors. I have one related to decorations so I think I'll redo decorations without any stupid random fooling A.I.
As modder, I have the dignity to not anounce any such work released like this. That's why I'm not interested about any Ut99.org.
Soon I think will be my turn to set up some MHBot but I don't need that for the moment, I redefined hunter A.I., monster tweak, and looks like attitude is different except trash maps of course.

Post Reply