PathsDebug

Tutorials and discussions about Mapping - Introduce your own ones!
Buggie
Godlike
Posts: 2742
Joined: Sat Mar 21, 2020 5:32 am

PathsDebug

Post by Buggie »

Simple tool for debug Navigationt Network by trace paths between two actors

Usage:
1. Open in UnrealEd v469b PathsDebug.u
2. Use new button appear as brush builder.

You need set Target and direction of show path.
Select Target actor and press build.
Now select other actor and press build for show path to/from Target.

If you need change Target use reset option.

Or as usuaul (v436):
Add it to EditPackages.

Install:
unpack into System
scr_1648085010.jpg
scr_1648085036.jpg
scr_1648085047.jpg
scr_1648085063.jpg
PathsDebug.7z
(3.82 KiB) Downloaded 9 times
Last edited by Buggie on Sat Aug 12, 2023 8:56 pm, edited 5 times in total.
User avatar
SilverSound
Adept
Posts: 344
Joined: Fri Nov 06, 2015 10:12 am
Personal rank: Curious
Location: St. Cloud, Florida

Re: PathsDebug

Post by SilverSound »

Oh this is really nice! Will help out with doing rough tests on paths for maps.
"Woah what?! I wish I was recording that...."
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: PathsDebug

Post by sektor2111 »

Very interesting but there is a simple problem. Paths concerning "Blue Paths" are available but not all Paths. There are spots connected which are reporting a negative result. In game they are working. Solution is applying multiple levels - Bot Size more exactly and results are going positive...
Snippet...

Code: Select all

	Scout.FindPathToward(A);
	
	if (Scout.RouteCache[0] == None)
	{
		log ("Shrink at Bot Size");
		Scout.SetCollisionSize(20,40);
		Scout.FindPathToward(A);
	}
	if (Scout.RouteCache[0] == None)
	{
		BadParameters("Scout not able find path from" @ B.Name @ "to" @ A.Name);
	}
Report:

Code: Select all

ScriptLog: Shrink at Bot Size
And route went visible.
Only_Bot_Size.PNG
So, I see what I failed in my attempt to check paths - perhaps I need to do some changes to my Paths Builder...
Buggie
Godlike
Posts: 2742
Joined: Sat Mar 21, 2020 5:32 am

Re: PathsDebug

Post by Buggie »

Small update for add different sizes to scout which try find path:
scr_1648137477.jpg
scr_1648137477.jpg (3.28 KiB) Viewed 721 times
scr_1648137161.jpg
scr_1648137174.jpg
scr_1648137187.jpg
Update in the first post: viewtopic.php?f=5&t=15106
a9902957@nepwk.com
Experienced
Posts: 86
Joined: Thu Nov 03, 2011 5:12 am

Re: PathsDebug

Post by a9902957@nepwk.com »

Unfortunately this (FindPathToward?) does not appear to work for pathes leading through warp zones.

EDIT: Hmm, it appears that upon loading this .u some of the PathNodes on maps can vanish (The ones placed in warp zones e.g.)!
Hmm, I get the same when loading XC_PathsWorker.u manually.
I wonder if just something with my PathNodes is not right that they vanish upon just loading these .u file packages.

I updated my upload of my botpathing and location string tampering of the awesome DM-2001 by slartybartfast.
viewtopic.php?p=134896#p134896
Quite some nodes in warp zones vanish upon loading one of the mentioned .u files (and likely upon other things done in the editor which I still have to uncover).
Last edited by a9902957@nepwk.com on Thu Mar 24, 2022 7:56 pm, edited 3 times in total.
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: PathsDebug

Post by sektor2111 »

Notes/Observations:

I was using PathsDebug for testing a CTF stage. Definitely RouteCache points are mapped pointing a red line - only 16 points. I believe here we can have all Paths/Lines... by tracking "PreviousPath" whatever. I see that internal chain is being connected after a single check, loading these variables with data. As result, after testing paths I'm just closing Editor without re-saving map. I prefer to keep clean internal chain because this is dynamic after all and is being rebuild in run-time when a Bot wants to find a path to something.
These internals can be cleaned by calling "ClearPaths()" from Pawn/Scout/etc...
Buggie
Godlike
Posts: 2742
Joined: Sat Mar 21, 2020 5:32 am

Re: PathsDebug

Post by Buggie »

Small update:

- Clear paths at end.
- Draw full path, not only first 16 items,

Update in the first post: viewtopic.php?f=5&t=15106
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: PathsDebug

Post by sektor2111 »

Yep... I believe we can find out what's the goal for a Bot during Run-Time, and I think we can even calculate the total route length where Bot wants to move...
this way answering with a MindReader what Bot is thinking about... Last Node without "previousPath" is the closer node to the Target - any Target... so we can see why Bot wants certain direction and target-reason for moving there, even if goal is at 120 Paths Distance not only for 16 points :rock: .

Look what I did before your update...

Code: Select all

		if ( Scout.RouteCache[15] != None )
		{
			NPrev = Scout.RouteCache[15];
KeepTracking:
			if ( NPrev.previousPath != None )
			{
				j++;
				NPrev = NPrev.previousPath;
				CM = NPrev.Spawn(class'ClipMarker');
				if ( NPrev == A )
				{
					//Target Node is here or the closer node to the target
					GoTo EndCycles;
				}
			}
			else
			{
				GoTo EndCycles;
			}
			if ( j >= 984 )
			{
				log ("1000 Nodes Limit has been Reached...");
				GoTo EndCycles;
			}
			GoTo KeepTracking;
		}
EndCycles:
	}
	CM = None;
	i = 0;
	j = 0;
	Scout.ClearPaths();
	Scout.Destroy();
Image...
More_Paths_Shown.PNG
Buggie
Godlike
Posts: 2742
Joined: Sat Mar 21, 2020 5:32 am

Re: PathsDebug

Post by Buggie »

Nope. You cannot. Just because network grid can be used by anyone. So if there few Pawns use it, it rewrite each time. And RouteCache is only way be sure path related to this pawn.
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: PathsDebug

Post by sektor2111 »

If it's used a Bot special for testing DM maps capable to report things in "PickDestination" I think results can be pretty much conclusive. Paths are changing for all Pawns but when is used ONE Bot or maybe two, changes are not that fast... they happen only when Seeking process takes place - less pawns = less cycles.

Anyway It looks like I got even total distance to the goal (using real distance not what reachSpecs are saying).

Definitely PathsDebug plugin builder is another useful thing for figuring where AlternatePaths are recommended to be in simple maps and what spots are preferred as shortest routes which of course won't match exactly run-time mode where Translocator and other "SpecialCost" things have a different word...
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: PathsDebug

Post by sektor2111 »

If you don't mind I've added a bit of "reporting" to the toy as long as... I'm loving it....
PathsDebugTest.PNG
Edit:
MH-LostInTimeV3
Testing Route from PlayerStart4 to MonsterWayPoint11 (logically valid) - ClipMarkers are no longer drawn at a moment, they are pointing road until somewhere in the fields. It looks like Editor is not adding too many ClipMarkers for some reason (perhaps logically hard-coded)...
Markers_Capped.PNG
By resuming test from last shown marker - route to MonsterWayPoint11 is no longer available... That's all with over-sized maps...
User avatar
SilverSound
Adept
Posts: 344
Joined: Fri Nov 06, 2015 10:12 am
Personal rank: Curious
Location: St. Cloud, Florida

Re: PathsDebug

Post by SilverSound »

is it possible to add the ability for the Tool to check If Transloc and jumpspot are working? I notice that the scout tends to ignore these special Navigation cases.
"Woah what?! I wish I was recording that...."
Buggie
Godlike
Posts: 2742
Joined: Sat Mar 21, 2020 5:32 am

Re: PathsDebug

Post by Buggie »

On big maps nav network often stop work after total length of paths cross some limit.
https://github.com/OldUnreal/UnrealTour ... issues/389

Also in some cases paths not able use:
https://github.com/OldUnreal/UnrealTour ... issues/300

Automatically merged

For me it use JumpSpot.

Anyway add some options for control scout:
var() bool bCanWalk;
var() bool bCanJump;
var() bool bCanSwim;
var() bool bCanFly;
var() bool bCanOpenDoors;
var() bool bCanDoSpecial;
var() bool bCanTeleport;

Updated at first post: viewtopic.php?f=5&t=15106
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: PathsDebug

Post by sektor2111 »

SilverSound wrote: Thu Mar 31, 2022 5:52 am is it possible to add the ability for the Tool to check If Transloc and jumpspot are working? I notice that the scout tends to ignore these special Navigation cases.
Scout is NOT a Bot...

Code: Select all

class JumpSpot extends LiftCenter;
...
event int SpecialCost(Pawn Seeker)
{

	local Bot B;

	B = Bot(Seeker);
	if ( B == None ) //When seeker is not a Bot
		return 100000000; //Passing through is forbidden
...
Either way if you do have a Bot inside Editor - perhaps is cute to find out if "bCanTranslocate" and relations with "Level.Game" which doesn't exist in Editor...
Here is needed a Tester Bot aiming Editor environment or else... combos won't be a subject for discussions.

Sektor was able to find paths through combos by using XC_Engine in run-time and replacing stock functions (rushed and poorly coded if you ask my opinion) with custom functions allowing flying Pawns to pass because... flying Pawn can move how wants without "tools".

Edit:
For some reason (perhaps environment calculations), a route is being found VIA TranslocDest in CTF-Coret, from FlagBase0 to PathNode47 or PathNode46. And then...
I think JumpSpot should work too if assets are discarding conditions from SpecialCost in Editor - good to know.
Here is the proof - using exactly TranslocDest.
TranslocDest_Editor.PNG
Post Reply