Botpathing request thread
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Botpathing request thread
Language byte (sorry for a bit off-topic)
I pretty much understand 99% of posting here without anything...
When it comes to writing, sometimes I'm using Translator attempting reversal checks: Native to English, English back to Native for figuring what was all about.
Here you don't have to be worried, English speakers are not really understanding what Polge said in original docs and neither the rest of comments from actors used in mapping...
Landing slow in topic...
Because I was able to understand what they wanted in assets and based on logging, I could figure several things. More harder was to open access at these assets initially restricted for user, but now I have endowment for a few tasks that usually are not seen available, never implemented for editing - and were needed since day one...
The rest of language problems from Editor were also causing confusions - I will explain two sample instances another day elsewhere...
Map subject: To me it looks like Bots without help (Translocator) using "Classic" settings were able to take Shield (test 469c), with a bit of difficulty but they managed to get it.
However in spot was attached a jumpy path to the floor, and two times Bots were bumping into corner without success - I moved offender path elsewhere but keeping focus into a similar direction to not hijack desire for hunting an opponent. Right now I have to drop any eye at angles nearby walls, I don't want anything like a "known bug" or "known risk" if possible.
I pretty much understand 99% of posting here without anything...
When it comes to writing, sometimes I'm using Translator attempting reversal checks: Native to English, English back to Native for figuring what was all about.
Here you don't have to be worried, English speakers are not really understanding what Polge said in original docs and neither the rest of comments from actors used in mapping...
Landing slow in topic...
Because I was able to understand what they wanted in assets and based on logging, I could figure several things. More harder was to open access at these assets initially restricted for user, but now I have endowment for a few tasks that usually are not seen available, never implemented for editing - and were needed since day one...
The rest of language problems from Editor were also causing confusions - I will explain two sample instances another day elsewhere...
Map subject: To me it looks like Bots without help (Translocator) using "Classic" settings were able to take Shield (test 469c), with a bit of difficulty but they managed to get it.
However in spot was attached a jumpy path to the floor, and two times Bots were bumping into corner without success - I moved offender path elsewhere but keeping focus into a similar direction to not hijack desire for hunting an opponent. Right now I have to drop any eye at angles nearby walls, I don't want anything like a "known bug" or "known risk" if possible.
-
- Adept
- Posts: 320
- Joined: Fri May 10, 2019 6:15 am
Re: Botpathing request thread
Another map, the last I believe, is CTF-NRMC-Gravitation:
Bots are not going to get the belt
Re: 2021 NRMC map release thread (put maps here!)]
CTF-NRMC-Gravitation.zip
Bots are not going to get the belt
Re: 2021 NRMC map release thread (put maps here!)]
CTF-NRMC-Gravitation.zip
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Botpathing request thread
I'll take a tour there...
At this moment there is an "AMC-Modular" a bit adjusted and washed - as far as I recall it was build with some difficulty so I did not rebuild anything at geometry but I removed polys from red builder and useless brush that doesn't build anything. The rest is being shown inside archive (edit document).
I'll let you know what's the problem with the next.
Auto merged new post submitted 20 minutes later
CTF-NRMC-Gravitation
A lot of items look like are not really "long range" goals for Bots by probing routing from each PlayerStart.
ShieldBelt to me (me being Bot) it's not always a goal - maybe not at all for some reasons:
1 - CTF is aiming Flags and very rarely items (freelancers protecting a carrier);
2 - "ShieldBelt" is isolated away from main paths and Translocator is mandatory. Combo used has embedded a TranslocDest - it will automatically disconnect paths in games without Translocator, and there is no other way without it.
Possible mitigations:
- using AlternatePaths around "ShieldBelt" for capturing attention;
- using an alternate option for getting there with JumpBoots(/ImpactHammer with losing health).
Self question: If map has swJumpPads, I was wondering why not using them for "ShieldBelt" platform ? Jumping but not jumping .
Auto merged new post submitted 23 hours 37 minutes later
Ahem...
Excuse me for delay but I saw a nice show spectating 10 Bots here ( tests 469c - stock Bot ).
Routing in those places has been adjusted for getting main road through this Shield - in both rooms, flag carriers are working. To me it turns out as being a good piece. Flushed PrunedPaths and debris data, attached paths which Goblin doesn't know, very small touches generally.
The rest of "problems" are not a problem in this stage. See this yourself... Let me know if anything else is missing... if Not, point me next one...
At this moment there is an "AMC-Modular" a bit adjusted and washed - as far as I recall it was build with some difficulty so I did not rebuild anything at geometry but I removed polys from red builder and useless brush that doesn't build anything. The rest is being shown inside archive (edit document).
No dependent files have been added because they are already part of original package linked.
I'll let you know what's the problem with the next.
Auto merged new post submitted 20 minutes later
CTF-NRMC-Gravitation
A lot of items look like are not really "long range" goals for Bots by probing routing from each PlayerStart.
ShieldBelt to me (me being Bot) it's not always a goal - maybe not at all for some reasons:
1 - CTF is aiming Flags and very rarely items (freelancers protecting a carrier);
2 - "ShieldBelt" is isolated away from main paths and Translocator is mandatory. Combo used has embedded a TranslocDest - it will automatically disconnect paths in games without Translocator, and there is no other way without it.
Possible mitigations:
- using AlternatePaths around "ShieldBelt" for capturing attention;
- using an alternate option for getting there with JumpBoots(/ImpactHammer with losing health).
Self question: If map has swJumpPads, I was wondering why not using them for "ShieldBelt" platform ? Jumping but not jumping .
Auto merged new post submitted 23 hours 37 minutes later
Ahem...
Excuse me for delay but I saw a nice show spectating 10 Bots here ( tests 469c - stock Bot ).
I went to another solution, in CTF Translocator is mainly usual, if NOT, don't use this edit...
Routing in those places has been adjusted for getting main road through this Shield - in both rooms, flag carriers are working. To me it turns out as being a good piece. Flushed PrunedPaths and debris data, attached paths which Goblin doesn't know, very small touches generally.
The rest of "problems" are not a problem in this stage. See this yourself... Let me know if anything else is missing... if Not, point me next one...
You do not have the required permissions to view the files attached to this post.
-
- Adept
- Posts: 320
- Joined: Fri May 10, 2019 6:15 am
Re: Botpathing request thread
Sektor2111 thanks for these 2 maps. You are very good at this. I was impressed with the pdfs that included everything that was done. Even though I didn't understand everything in them (technical terms). But wow, beautiful work. You made me twice as happy.
Now coloring:
Now coloring:
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Botpathing request thread
Perhaps it worth a few explanations around topic, but sampling something from Real Life.
A car has to move on a long way - through a ramped road. Long way means more fuel, imagine "Gas Station" as being an "AlternatePath", car will need to go there because route is longer. When Driver wants to get back, there is a shorter way on a plain field, but... it's a One-Way street, allowing to drive back - either way it needs another tour VIA another town. This is a closer solution which has come in my head when I adjusted those Paths through those Shieldbelt(s).
Resuming logic, moving ahead requires a longer path (through Belts) but returning doesn't need that.
A car has to move on a long way - through a ramped road. Long way means more fuel, imagine "Gas Station" as being an "AlternatePath", car will need to go there because route is longer. When Driver wants to get back, there is a shorter way on a plain field, but... it's a One-Way street, allowing to drive back - either way it needs another tour VIA another town. This is a closer solution which has come in my head when I adjusted those Paths through those Shieldbelt(s).
Resuming logic, moving ahead requires a longer path (through Belts) but returning doesn't need that.
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Botpathing request thread
Related to discussion about DM-NESOsiris map...
Here is something with Paths...
Notes: Added Nodes using a sort of PathsMaker (modified for enlarged range), cutting overcrowded spots, adding a few COMBOS. It is containing logic links for all Items. Translocator would be desired for certain reach conditions. Here some nodes have been completed later and Teleporters because not all spots were handy to reach.
Here is something with Paths...
Notes: Added Nodes using a sort of PathsMaker (modified for enlarged range), cutting overcrowded spots, adding a few COMBOS. It is containing logic links for all Items. Translocator would be desired for certain reach conditions. Here some nodes have been completed later and Teleporters because not all spots were handy to reach.
PathsChecker wrote: ScanProcess: Total checks using DevPath = 1280.
Greetings: All 64 targets look reachable from every single PlayerStart.
You do not have the required permissions to view the files attached to this post.
-
- Godlike
- Posts: 3750
- Joined: Sat Sep 12, 2015 8:46 pm
Re: Botpathing request thread
Very nice, thankssektor2111 wrote: ↑Fri Apr 28, 2023 3:30 pm Related to discussion about DM-NESOsiris map...
Here is something with Paths...
Is this one of those maps where the pathing you have done would be affected by changing some of the inventory and rebuilding the paths?
Interesting that you didn't put in any paths from VisibleTeleporters9 and 11 beyond the adjacent BulletBoxes?
Just to note that PathNode393 is 'useless' - having no incoming or outgoing connections - not that that is of any great importance given its location.
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Botpathing request thread
Yes, there could be nodes with no use because I was tracking routing process for items, certain nodes placed automatically are demonstrating once again that in the task for pathing a map, EYES are the best not the scripts - scripts are only for plain areas not for geometry that is a bit more complex.
Here were some stages from process:
- Applying PrePathing settings for Placing additional Nodes for Bots;
- probing pickup task;
- initializing first network using Editor - I did not liked it;
- removing all data and rebuilding with XC_EditorAdds (v24) - very good and... some goofing (suicidal jumps, paths for germs, etc);
- reducing suicidal paths and capping range at 1100;
- testing - oops 460 failures - closing Editor, taking log and morphing it into a TXT file - opening file and tracking string "Route Not Found";
- attaching missing PathNodes after applying prepathing tweaks;
- cleaning up and rebuilding XC paths - destroying hazards again and rechecking - all routes normal;
- deleting debris (null ReachSpecs);
- purging garbage - saving map.
As you can see Items were subject (it's a DM map) and then Teleporters 9 11 are just for picking up those items as long as more Nodes added in spot without items won't be used, loading navigation chain with useless data (for stock Bot). If you want map more intensive (MBot can hunt enemy where are paths) that is doable too. Paths generally can have a bunch of options, it depends on what user wants...
Edit:
Such as this one.
Here are paths configured by Editor but... I did something like "WYSIWYG" - so to speak map has only what it's being shown (no pruned paths and no junk data). Paths can be similar if you re-build them, but you can earn additional data which to me is pointless.
Hit Button and see what is being executed...
Here were some stages from process:
- Applying PrePathing settings for Placing additional Nodes for Bots;
- probing pickup task;
- initializing first network using Editor - I did not liked it;
- removing all data and rebuilding with XC_EditorAdds (v24) - very good and... some goofing (suicidal jumps, paths for germs, etc);
- reducing suicidal paths and capping range at 1100;
- testing - oops 460 failures - closing Editor, taking log and morphing it into a TXT file - opening file and tracking string "Route Not Found";
- attaching missing PathNodes after applying prepathing tweaks;
- cleaning up and rebuilding XC paths - destroying hazards again and rechecking - all routes normal;
- deleting debris (null ReachSpecs);
- purging garbage - saving map.
As you can see Items were subject (it's a DM map) and then Teleporters 9 11 are just for picking up those items as long as more Nodes added in spot without items won't be used, loading navigation chain with useless data (for stock Bot). If you want map more intensive (MBot can hunt enemy where are paths) that is doable too. Paths generally can have a bunch of options, it depends on what user wants...
Edit:
Such as this one.
Here are paths configured by Editor but... I did something like "WYSIWYG" - so to speak map has only what it's being shown (no pruned paths and no junk data). Paths can be similar if you re-build them, but you can earn additional data which to me is pointless.
-
- Skilled
- Posts: 176
- Joined: Sun Jan 18, 2015 7:55 am
Re: Botpathing request thread
HI.
I have a question about pathnodes optimization
It's true. that the more REAСHSPECS on the map, the lower the performance and the greater the weight of the map?
I was given advice on how to reduce this:
right click a pathnode -> select all pathnodes -> order to last -> then rebuild
It works. Does this not break the bots ' navigation?
I have a question about pathnodes optimization
It's true. that the more REAСHSPECS on the map, the lower the performance and the greater the weight of the map?
I was given advice on how to reduce this:
right click a pathnode -> select all pathnodes -> order to last -> then rebuild
It works. Does this not break the bots ' navigation?
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Botpathing request thread
Hi and thanks for your interest.
Let me try explaining as simple as possible.
Pawn is looking for something (usually an Actor). Engine will process the nearest Node that ensures a direct movement to said target actor without to hit walls. From that Node Engine does a check what Nodes are linked point to point (ReachSpecs are linking them Start End) somewhere nearby Pawn seeker and where also Pawn need to reach directly without wall obstructions.
This will generate a sort of linked list which ends in being reverted from Pawn to his target. First 16 Navigation Points will go as RouteCache points (when are many) or if route is shorter probably everything gets known and no other extra processing is needed, Epic saying that it will speed up routing process when such a point is found in next search already part of Pawn's RouteCache array.
Let's go now in logic. Many nodes means a longer linked list and a longer process for reverting it, less nodes = less processing. As for reducing these iterations the best scenario would be to have navigation chain similar to the route but it's not possible all time - perhaps in very rare situations these are matching a bit.
Because Pawn in a DeathMatch is looking usually for Inventories, MapGarbage which is capable to re-link this Navigation Chain will set Inventories first and PlayerStarts where Pawn is entering the game as Last. Clearly when a goal is checked for closer point it will find InventorySpot faster than when this Node is on the other side of the main Navigation Chain. Nodes placed as Last ones but being in the same number won't make route list smaller but maybe generating this list takes more cycles, it's up on map type, where is Pawn placed when is called this chapter from Engine. When game starts Bots are usually at PlayerStarts not really on a PathNode, Engine will calculate route crawling Navigation Chain probably two or three times - here I did not go in full details but clearly goal Nodes placed on top are found logically faster. Reordering Nodes mainly should not break anything but you can get a different performance of routing process.
Me one I always go for shortest routes = fewer Nodes. I experimented once in MonsterHunt what is happening when a Bot is declared Enemy for 200+ Monsters and setting them in attack, in my rig server machine Ping went from 14 ms to 500+ ms and having very ugly lags forcing me to stop machine and remove evil actor checker - later I deleted it. You can imagine routing lists from each Monster to the poor Tamerlane how much load was doing in Engine. ScriptedPawn in stock UT allows 4 Monsters to roam map - clearly Epic had reasons for that especially in 1999. It's understandable that machines are faster now days but let's not over-estimate their capabilities and logic 32 bits boundaries.
If you can do some scripting, you can define a clocking function using XC_Engine and go figure if reordering nodes has benefits or not when routing process is calculating this linked list. Such a test will tell the real story. I was clocking a bit things here but... not for this reorder check, I was interested how long takes a simple calculation and figuring total time when 12 Bots are doing this. I will modify my "BotyMan" tool and I'll check timers in a modified map and a simplified one...
Map content - based on what I see with my own eyes, less nodes with less ReachSpecs = smaller map-file. Data takes logically SPACE, more data = more space taken + more memory taken for variables created in routing process, less data means less cycles and faster results.
Draw yourself conclusions.
Edit:From the same place in two Deck16 maps, using mutator with clock, these are results...
For map rS804 (with custom nodes):
For another one with 10395 ReachSpecs and 575 Navigation Nodes (with custom nodes):
Loaded map takes 2+ times slower with 1.13 MB map-file.
Less loaded map working faster is 824 kb with all Inventories available - once again, draw conclusions...
Original Deck16][ returns these (no extra scripting):Works clearly faster as long as not everything is reachable, some Items/Nodes are just dropped.
Let me try explaining as simple as possible.
Pawn is looking for something (usually an Actor). Engine will process the nearest Node that ensures a direct movement to said target actor without to hit walls. From that Node Engine does a check what Nodes are linked point to point (ReachSpecs are linking them Start End) somewhere nearby Pawn seeker and where also Pawn need to reach directly without wall obstructions.
This will generate a sort of linked list which ends in being reverted from Pawn to his target. First 16 Navigation Points will go as RouteCache points (when are many) or if route is shorter probably everything gets known and no other extra processing is needed, Epic saying that it will speed up routing process when such a point is found in next search already part of Pawn's RouteCache array.
Let's go now in logic. Many nodes means a longer linked list and a longer process for reverting it, less nodes = less processing. As for reducing these iterations the best scenario would be to have navigation chain similar to the route but it's not possible all time - perhaps in very rare situations these are matching a bit.
Because Pawn in a DeathMatch is looking usually for Inventories, MapGarbage which is capable to re-link this Navigation Chain will set Inventories first and PlayerStarts where Pawn is entering the game as Last. Clearly when a goal is checked for closer point it will find InventorySpot faster than when this Node is on the other side of the main Navigation Chain. Nodes placed as Last ones but being in the same number won't make route list smaller but maybe generating this list takes more cycles, it's up on map type, where is Pawn placed when is called this chapter from Engine. When game starts Bots are usually at PlayerStarts not really on a PathNode, Engine will calculate route crawling Navigation Chain probably two or three times - here I did not go in full details but clearly goal Nodes placed on top are found logically faster. Reordering Nodes mainly should not break anything but you can get a different performance of routing process.
Me one I always go for shortest routes = fewer Nodes. I experimented once in MonsterHunt what is happening when a Bot is declared Enemy for 200+ Monsters and setting them in attack, in my rig server machine Ping went from 14 ms to 500+ ms and having very ugly lags forcing me to stop machine and remove evil actor checker - later I deleted it. You can imagine routing lists from each Monster to the poor Tamerlane how much load was doing in Engine. ScriptedPawn in stock UT allows 4 Monsters to roam map - clearly Epic had reasons for that especially in 1999. It's understandable that machines are faster now days but let's not over-estimate their capabilities and logic 32 bits boundaries.
If you can do some scripting, you can define a clocking function using XC_Engine and go figure if reordering nodes has benefits or not when routing process is calculating this linked list. Such a test will tell the real story. I was clocking a bit things here but... not for this reorder check, I was interested how long takes a simple calculation and figuring total time when 12 Bots are doing this. I will modify my "BotyMan" tool and I'll check timers in a modified map and a simplified one...
Map content - based on what I see with my own eyes, less nodes with less ReachSpecs = smaller map-file. Data takes logically SPACE, more data = more space taken + more memory taken for variables created in routing process, less data means less cycles and faster results.
Draw yourself conclusions.
Edit:From the same place in two Deck16 maps, using mutator with clock, these are results...
For map rS804 (with custom nodes):
Code: Select all
DevPath: Routing execution time = 0.000230 second.
Code: Select all
DevPath: Routing execution time = 0.000581 second.
Less loaded map working faster is 824 kb with all Inventories available - once again, draw conclusions...
Original Deck16][ returns these (no extra scripting):
Code: Select all
DevPath: Routing execution time = 0.000191 second.
-
- Godlike
- Posts: 3226
- Joined: Sat Mar 21, 2020 5:32 am
Re: Botpathing request thread
Yes. From tech point any increas count of nav nodes, or reach specs need increase storage space.
Same about performance.
But usually difference negligible and not worth take in account. You need focus on quality of paths, not quantity.
This not break anything (except some very fancy stuff which almost nobody use), an not related to paths at all. Directly at least.
It just repack actor list and remove actors marked for delete if there be any.
Rebuild not need. "Order to last" already pack actor list. Rebuild paths only add garbage, since InventorySpots will be deleted, and added new ones.
There issue about that:
https://github.com/OldUnreal/UnrealTour ... issues/620
-
- Skilled
- Posts: 176
- Joined: Sun Jan 18, 2015 7:55 am
Re: Botpathing request thread
I don't understand your point. how exactly should I optimize? Please write your idea in other simple words. English is not my first language
right click a pathnode -> select all pathnodes -> order to last -> save ??????
Do you suggest optimizing pathnodes on the map in this way? I've always been taught that if I move an patnnode somewhere, I have to use rebuild ai paths. This operation builds paths for bots.
-
- Godlike
- Posts: 3226
- Joined: Sat Mar 21, 2020 5:32 am
Re: Botpathing request thread
Yes. Exactly this way.
You not really move pathnodes anywhere. You just change order in internal list. Alone this operation not free unused space, but it come with compact and free unused space. So reduce total count actors in list, remove all gaps for deleted actors.
Since actual position or other props not changed, rebuilt not need.
You not really move pathnodes anywhere. You just change order in internal list. Alone this operation not free unused space, but it come with compact and free unused space. So reduce total count actors in list, remove all gaps for deleted actors.
Since actual position or other props not changed, rebuilt not need.
-
- Skilled
- Posts: 176
- Joined: Sun Jan 18, 2015 7:55 am
Re: Botpathing request thread
I learn how to fix maps ... I have to add the pathnodes or move them to new positions..On many maps, bots are weak and can't get to many important places. If I don't use rebuild ai paths (paths define), the map with bots won't launch, there will be an error.Buggie wrote: ↑Sat May 06, 2023 6:32 pm Yes. Exactly this way.
You not really move pathnodes anywhere. You just change order in internal list. Alone this operation not free unused space, but it come with compact and free unused space. So reduce total count actors in list, remove all gaps for deleted actors.
Since actual position or other props not changed, rebuilt not need.
-
- Godlike
- Posts: 6442
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Botpathing request thread
Every time when you are changing Navigation Actors reconstructing Paths is MANDATORY - data pointing nowhere or at deleted nodes doesn't help, neither new nodes that are not linked - linked list for routing won't be possible to be created if nodes are not registered properly. Ordering them is less important, more important is to have nodes connected.
Since the topic is for dealing with such problematic maps you can point them here for tweaking, this is why this topic was created, the rest of techs and explanations can go as a "Q & A" elsewhere.
Since the topic is for dealing with such problematic maps you can point them here for tweaking, this is why this topic was created, the rest of techs and explanations can go as a "Q & A" elsewhere.