Map's Navigation Network - XC_PathsWorker & MapGarbage support
Posted: Wed Dec 01, 2021 6:36 am
Audience: People able to understand what is needed in a navigation network for artificial intelligence (Bots, Monsters).
_________________________________
We start with a test.
Whoever is not capable of understanding the two pictures below (bugs shown), there is no need to waste time with reading what is explained further. The Start:
I took as an example a messed up map, CTF-Glacier][-CE105. We have a problem at accessing flag, both flags more exactly.
Another problem is common even nowadays not only in the past, combinations of special points, so-called COMBOS.
The shown combination is not just wrong using LiftCenter instead of TranslocDest, but it is a blind way that does not go anywhere. Perhaps a Bot who is close to LiftCenter will somehow be able to follow an enemy using this path, but the chances are quite minimal.
The first problem that does not help us is this unnecessary agglomeration of navigation paths because all the time the Engine calculates the shortest path, the other adjacent paths are almost all the time without utility.
XC_PathsWorker has the ability to create simpler navigation paths, better visible to the human eye, it helps us to see what is missing and where it is missing. When there are fewer data, the process is running faster, and the map reduces its dimensions.
However, in the current context, not even our tool won't do navigation paths to flags because they are placed upper, and somehow pushed at the wall.
We first start adjusting the location on the Z axis with 40 UU lowered - for FlagBase actor(s).
The data entered for the production of navigation paths is as follows:
- scanning radius around a point - 600 UU;
- internal paths limit - 4 out of 16 - 4 directions/4 connections;
- the size of the agglomeration with objects pickups - 20 UU - BunchSize;
- we choose large sizes for paths - bTryMonsterMode - True;
- we do not keep the old navigation network - bKeepOldPaths - False;
- PlayerStart actors are not excepted - bAvoidStarts - False.
Hit BUILD. The result is positive, we have a navigation path as an entry to the flag.
Now we climb the flag back to its original place. Even if the path does not seem too valid, FlagBase has a large collision cylinder that is enough to do its job when artificial intelligence touches it, even if our Bot fails to get to the center of this target point. In an ordinary situation, a navigation node in this way can cause loop movements, but in this situation there is no problem because the route will be changed when the flag is taken.
At this moment we select FlagBase and examine what connections it has with the rest of the navigation network. The path to the flag seems wider than the path that comes from the flag, however, both are valid and can be used normally. Why did I specify in the blue color a generic medium path ? Because this XC_PathsWorker goes with the dimensions of a navigation path of up to 117 × 112 UU aiming to ensure navigation by all the creatures from UT's stock.
The problem with the flags-goals is solved, but here we have some issues to be taken into account. Anyone trying to edit the map, it will only bring the original errors back into the stage - no path to Flag (both Flags) - due to the new map design.
Instead of having 7451 paths / REACHSPECS, we do have under 2000 - taking into consideration that there might be a need for small additions. We must not forget that an over-crowded navigation network and configured with Editor itself has errors that do not help us.
This is "original" state - the bugged one, tuned like that from original CTF-Glacier where Flags weren't having these implemented issues from CE105 (WC Edition if you ask me). Continuing with BUG #2...
_________________________________
We start with a test.
Whoever is not capable of understanding the two pictures below (bugs shown), there is no need to waste time with reading what is explained further. The Start:
I took as an example a messed up map, CTF-Glacier][-CE105. We have a problem at accessing flag, both flags more exactly.
Another problem is common even nowadays not only in the past, combinations of special points, so-called COMBOS.
The shown combination is not just wrong using LiftCenter instead of TranslocDest, but it is a blind way that does not go anywhere. Perhaps a Bot who is close to LiftCenter will somehow be able to follow an enemy using this path, but the chances are quite minimal.
The first problem that does not help us is this unnecessary agglomeration of navigation paths because all the time the Engine calculates the shortest path, the other adjacent paths are almost all the time without utility.
XC_PathsWorker has the ability to create simpler navigation paths, better visible to the human eye, it helps us to see what is missing and where it is missing. When there are fewer data, the process is running faster, and the map reduces its dimensions.
However, in the current context, not even our tool won't do navigation paths to flags because they are placed upper, and somehow pushed at the wall.
We first start adjusting the location on the Z axis with 40 UU lowered - for FlagBase actor(s).
The data entered for the production of navigation paths is as follows:
- scanning radius around a point - 600 UU;
- internal paths limit - 4 out of 16 - 4 directions/4 connections;
- the size of the agglomeration with objects pickups - 20 UU - BunchSize;
- we choose large sizes for paths - bTryMonsterMode - True;
- we do not keep the old navigation network - bKeepOldPaths - False;
- PlayerStart actors are not excepted - bAvoidStarts - False.
Hit BUILD. The result is positive, we have a navigation path as an entry to the flag.
Now we climb the flag back to its original place. Even if the path does not seem too valid, FlagBase has a large collision cylinder that is enough to do its job when artificial intelligence touches it, even if our Bot fails to get to the center of this target point. In an ordinary situation, a navigation node in this way can cause loop movements, but in this situation there is no problem because the route will be changed when the flag is taken.
At this moment we select FlagBase and examine what connections it has with the rest of the navigation network. The path to the flag seems wider than the path that comes from the flag, however, both are valid and can be used normally. Why did I specify in the blue color a generic medium path ? Because this XC_PathsWorker goes with the dimensions of a navigation path of up to 117 × 112 UU aiming to ensure navigation by all the creatures from UT's stock.
The problem with the flags-goals is solved, but here we have some issues to be taken into account. Anyone trying to edit the map, it will only bring the original errors back into the stage - no path to Flag (both Flags) - due to the new map design.
Instead of having 7451 paths / REACHSPECS, we do have under 2000 - taking into consideration that there might be a need for small additions. We must not forget that an over-crowded navigation network and configured with Editor itself has errors that do not help us.
This is "original" state - the bugged one, tuned like that from original CTF-Glacier where Flags weren't having these implemented issues from CE105 (WC Edition if you ask me). Continuing with BUG #2...