[SOLVED]Are these broken or just half broken ?

Tutorials and discussions about Mapping - Introduce your own ones!
Post Reply
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

[SOLVED]Are these broken or just half broken ?

Post by sektor2111 »

I did a check in DM-Deck16][ at LiftCenter actors properties.
LiftCenter0 has NextNavigationpoint = PathNode'MyLevel.PathNode132'
LiftCenter1 has NextNavigationpoint = LiftCenter'MyLevel.LiftCenter0'
So they are chained in navigation network.

Why I did this ? After looking at some RA-DM maps like DM-Qwerty2 and DM-Qwerty3 where Lifts were used very seldom and I even see "barf" string added in one of LiftTag variable, I noticed later in both these maps LiftCenter has NextNavigationpoint = None. I'm not sure if Navigationpointlist will ever return a LiftCenter for various tweaks. Is this another "fancy deal" of those older Unreal Editor versions ? Lol paths... Aside, DM-Qwerty3 has two PlayerStart actors into void - somebody screwed up command "Level Validate" else these two would be pointed out, they are shown by Mr. Garbage as being useless causing spawning bugs.

I reconfigured entire navigation, adding paths for all Inventories and... and removing all trash bytes, and removing evil paths. I changed those ExtraCost higher 400 values to "1", I don't get why they would need to be 400. Right now they are used more often than before. I believe everything should be in NavigationPointList unless even XC iterator "NavigationActors" will fail to catch these...

What do you think ? Does a LiftCenter needs to be in navigation chain or not ?
Last edited by sektor2111 on Wed May 27, 2020 6:10 pm, edited 1 time in total.
User avatar
papercoffee
Godlike
Posts: 10443
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: Are these broken or just half broken ?

Post by papercoffee »

Had never used them that way... Lift-Center has to be connected to his lift-exits. :noidea
Red_Fist
Godlike
Posts: 2163
Joined: Sun Oct 05, 2008 3:31 am

Re: Are these broken or just half broken ?

Post by Red_Fist »

I think they used 400 extracost because the program takes time for the bots to decide and along with involving a mover.

Or deciding to go to a lift exit and not want to stay on the lift or go back down to pickup a high profile pickup. (is it worth it ?)

In other words you want the path weighted so bot will decide to go the other direction than just full bore follow a path.

is my theory.

I am not sure of what you are saying, but the liftcenter is the place the bot goes to get to a liftexit, via a mover. So if the center is up, down, sideways, the bot knows what place to look at or move to.

So if you had a lift center way on the other side of a map (as example) it wouldn't make sense for the bot to zig zag.
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Are these broken or just half broken ?

Post by sektor2111 »

Hmmm... let me try to explain you better. ALL these LiftCenter actors are having links with their LiftExit speaking about reachSpecs data, and no evil paths through walls. But... I noticed that they are out of NavigationPointList which is another story. Technically I don't get why a NavigationPoint having paths declared is not in Navigation chain, I have in chain even those without connections just because by example a PlayerStart should be found based on TeamNumber declaration or else a blue player might spawn in red base if first check from "FindPlayerStart" is failing, because first check uses exactly this Chained list. With or Without navigation reachSpecs, NavigationPointList is a chain and I think they should link all these map actors exactly as they are in stock DM-Deck16][ map.

And then... Maps are having some brushes added, prepared but... left without to be build. Later, after doing more checks I noticed a crap-ton of Lights and SpotLights into void without any use. Someone here took evil weed...

That ExtraCost to me doesn't make too much sense, Mover-Lift has a basic A.I. code telling to pawn what to do and also Bot code has what it needs for Waiting. By changing that I did not see any issue as long as Lift is configured correctly. ExtraCost is making life harder, Bot will attempt to use paths which are easier and not these with an ExtraCost added. I tested these in plain UT not with XC_Engine and they are using Lifts correctly connected without a single problem. ReachSpec used by Lift has reachFlag 32 = R_Special which means:

Code: Select all

	inline int calcMoveFlags()
	{
		guard(APawn::calcMoveFlags);
		return ( bCanWalk * R_WALK + bCanFly * R_FLY + bCanSwim * R_SWIM + bCanJump * R_JUMP 
				+ bCanOpenDoors * R_DOOR + bCanDoSpecial * R_SPECIAL + bIsPlayer * R_PLAYERONLY); 
		unguard;
	}
So when engine calculates these reachFlags will discard creatures having bCanDoSpecial=False (poorly brained creatures) and here for them will be a blocked route out of ExtraCost which probably is causing a limitation elsewhere... Else R_Door is another flag recognized by Engine but UT Editor won't use it and neither 227, at least not version H. Technically you can do some door for monsters and if Paths Network will use this limitation creature will be discarded.
User avatar
TexasGtar
Adept
Posts: 295
Joined: Sun Feb 16, 2020 5:52 pm

Re: Are these broken or just half broken ?

Post by TexasGtar »

I'm not exactly sure what you are asking. I am not familiar with Navigationpointlist. What is this?

Red Fist is right about the extra cost. Usually I used extra cost in CTF maps to force bots to take alternate routes. The idea was to trick bots into thinking all routes to flag are equal distance so in a round about way making the bot think it could take a longer path to get to the flag which is what I tried to achieve. It was a lot of tweaking and testing to see that all different routes were being taken by the bots fairly equally. That is what I remember about the extra cost.

Now in a DM map like deck16 I am not sure why you would add extra cost to the lifts. Maybe the maker thought the bots were taking the lifts too much and tried to even up the use of other areas of map by tricking bots into thinking the elevators were a longer path than reality. I don't know.

Bots will always take the shortest route to get where they are going. In a DM map it might be hard to figure out where they are wanting to go. It depends on several factors I would assume. A bot low on health might need to find a medbox.
A healthy bot may want armor. I don't know about the thinking of a bot and why you would add extra cost to those 2 elevators other than what i said. For whatever reason the mapmaker wanted to decrease the use of those elevators by the bots.
User avatar
Swanky
Adept
Posts: 461
Joined: Sun Mar 16, 2008 9:06 pm
Personal rank: Brush Commander
Location: inside ze bocks
Contact:

Re: Are these broken or just half broken ?

Post by Swanky »

The base cost for LiftCenter is 400. It's not a thing specifically tied to this map. Also, usually there is no need for NextNavigationPoint as lifts can also be used two ways when a bot decides to jump down the lift path. Otherwise it'd prevent the bot from doing so. Only thing needed to work are specified LiftExits.
I agree with Tex that the extra cost can be used to make a bot decide on how often to use a specific route since usually it will have a goal to reach in mind (such as a desirability of an item) and the cost of a pathnode will impact the "decisionmaking" of the bot on how to reach that destination.

So the OG creator of the map just didn't tweak that LiftCenter to perfection. Not sure as to why it doesn't show in the pathing list, though.
User avatar
OjitroC
Godlike
Posts: 3605
Joined: Sat Sep 12, 2015 8:46 pm

Re: Are these broken or just half broken ?

Post by OjitroC »

sektor2111 wrote: Mon May 25, 2020 6:36 am That ExtraCost to me doesn't make too much sense, Mover-Lift has a basic A.I. code telling to pawn what to do and also Bot code has what it needs for Waiting. By changing that I did not see any issue as long as Lift is configured correctly. ExtraCost is making life harder, Bot will attempt to use paths which are easier and not these with an ExtraCost added.
On the face of it, you're right - why a default ExtraCost of 400? In Deck16][ there may be a point though as the easier path out of the bottom area for bots is then not by the lifts but by the teleporter to the redeemer and this may have been the map maker's intention?
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Are these broken or just half broken ?

Post by sektor2111 »

Swanky wrote: Mon May 25, 2020 8:37 am Also, usually there is no need for NextNavigationPoint as lifts can also be used two ways when a bot decides to jump down the lift path
I can remove NavigationPointList without deleting any PathNode, only un-referencing each-other and leaving alone path-lines, and then... have fun looking at Bots... Navigation points are in this linked list in a chain doesn't matter movement direction but also they do have reachSpecs references which is another story - those are making possible movement between nodes but calling List as first start. It's why I was confused about leaving out nodes from this linked list. I can setup two copies of a random map both of them having LINES, paths so to speak, but one of them without Linked List and other with Linked List and you can see what's different at these...

Deck16][ is known by... a few people around as not having the best ever navigation network, if any of you can figure how to use RememberSpot and ShowPath commands you'll get what I mean - try to reach at Sniper in top of map in original and then... use XC_Engine - using said commands. They moved Teleporter for not getting connected because they were chickens in front of bot with Redeemer - in Deck16 map there is NO PATH heading to the down teleporter, XC_Engine is connecting it with an InventorySpot from Rocketlauncher, this path is created by XC_Engine since version 19 if I well recall, and also another spots having One-Way types. Lifts are Lifts, they work but... that ExtraCost... I don't get if it's helpful especially where mappers want their Lifts used and not as Alternate routes. Lift-Mover as I said has A.I. codes, that ExtraCost for me has no deal, I toggled paths using external actors triggered and I got real randomized results. Okay, I'll setup some detailed testing and I'll report back...
Believe me or not put a "rememberspot" near redeemer and try to find it from elsewhere with ShowPath - out of XC_Engine. Then try this with XC_Engine - see differences.

Edit: It looks like even if a LiftCenter doesn't use a NextNavigationPoint - is not part of that linked list, if it has references with reachSpecs in LiftExit actors connected properly it will work - I found path through such Lift. Else, if it's forced loaded into main linked list it also works... Interesting, and... good to know. Perhaps it's time to reduce map's data (linked references) by letting out these LiftCenter actors if navigation works without them... as long as they do have paths linked well.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Are these broken or just half broken ?

Post by sektor2111 »

I think I can write a small thing working in a sort of toggling mode at each 20 seconds. In first period it will remove this linked list, after 20 seconds will put it back, cycle is repeating, else this "time" might be configured. You will figure what's up in stage when linked list is gone/nullified and then added back.

EDIT:Ready to... relax.
Here is what I call NavToggler - friends are calling it "Tired Bot".
It uses a configured "Period" for toggling NavigationPointList between None and Back to default. In Maps with Bot Support you can figure what Bot does. This might not be for Team-Games, advanced UT users are knowing why if they look at UT codes and this code...
NavToggler.7z
(43.21 KiB) Downloaded 9 times
This stuff is a laboratory tool but it works as mutator as well. Broken maps are just broken... It can be used even in a server out of Packages declared, it's addressing Level's authoritative A.I. control, a client has nothing to do here.
Code Resources are still inside U package.
Red_Fist
Godlike
Posts: 2163
Joined: Sun Oct 05, 2008 3:31 am

Re: Are these broken or just half broken ?

Post by Red_Fist »

You sure this has nothing to do with Unreal SP maps as some thing that keeps track then doesn't if the player dies ?

In other words what bots (pawns) think if there is no one in a map or not. ?

In the gametypes as well.
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Are these broken or just half broken ?

Post by sektor2111 »

When NavigationpointList is gone, playerstart finding goes to the second method and you might spawn elsewhere. This is not advisable out of DM games being a toy for experiments not for everything. I played DM-Deck16][ for primary testing stage, and PlayerStarts are NOT DELETED from map. NavigationPointList removal doesn't mean deletion of Navigation Actors, it will disable/enable A.I. Paths-Net usage, more exactly disabling/enabling Bot Support, nothing to do with the track of spawning or whatever.

Edit: Initial Post Updated. Problem solved. LiftCenter from DM-Qwerty2 is the last one, it's why it doesn't use a next point linked. Solution Found during testing of a new update executed at Garbage Lord:

Code: Select all

CheckLostNavigation: LiftCenter0 seems the last navigation point in chain at 128
CheckLostNavigation: Navigation Chain has 129 navigation points.
CheckLostNavigation: Navigation Actors found = 129 Navigation Actors.
Maps are not finished but they do not have a broken navigation chain...
Post Reply