WIP: CTF-Panamax

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

Re: WIP: CTF-Panamax

Post by sektor2111 » Fri Mar 08, 2019 7:38 pm

@Barbie
That's more like a "PickLocalInventory" call rather than a FindPathToward thing, here is about traveling between flags.

Okay, so... which means in those points you need combos or forced links using XC power. You can PM me a small stair zone and I'll throw it back to you with what I recommend and you can do testing - don't forget that Bot in CTF might translocate, DM "Impactjumping" and such. If XC did not link them, definitely Original editor's devs won't do that - it's brute-force time. Put paths in map with Editor and then take a look with XC, probably it will show those missing links too. By using XC in Editor you can still use Original dev path with command "paths define" - that's Editor not XC. XC will have "Image" about this task, solution means... two solutions...

Edit: A confirmation (I already deducted that but now I have image)
This is BAD connection in one-way not navigable from another zone of map. See arrow, it's only one:
[attachment=1]Wrong_ One_way.PNG[/attachment]
Put a RememberSpot near that shield and use ShowPath. If you have a route from 700 UU away, I'll eat my computer at breakfast. The only thing here is Bot's desire for nearby items not a navigation directive.
And then my version:
[attachment=0]Another_ Two_Way.PNG[/attachment]
Can you see difference ? And then here is something... done with your help, btw.
Your sample:

Code: Select all

Specs: +++++
oooooooooooooooo: oooooooooooooooo
Specs: PlayerStart0 - UpstreamPaths[0]=0 Start=InventorySpot10 End=PlayerStart0 RFlags=Jump Walk =9 Dist=472
Connected: InventorySpot10 to PlayerStart0.
NoReachFrom: PlayerStart0 to point 0 which means InventorySpot10
Specs: +++++
Specs: There isn't any connection starting from PlayerStart0.
oooooooooooooooo: oooooooooooooooo
Specs: InventorySpot10 - Paths[0]=0 Start=InventorySpot10 End=PlayerStart0 RFlags=Jump Walk =9 Dist=472
Connected: InventorySpot10 to PlayerStart0.
Specs: +++++
Specs: No NavigationPoint heads to InventorySpot10. If a route passes through, if won't be usable.
Specs: ReachSpecs Flags summary:
Flg: R_WALK = 1
Flg: R_FLY = 2
Flg: R_SWIM = 4
Flg: R_JUMP = 8
Flg: R_DOOR = 16
Flg: R_SPECIAL = 32
Flg: R_PLAYERONLY = 64
And the second translated into words:

Code: Select all

Specs: +++++
oooooooooooooooo: oooooooooooooooo
Specs: PlayerStart0 - UpstreamPaths[0]=1 Start=InventorySpot10 End=PlayerStart0 RFlags=Jump Walk =9 Dist=472
Connected: InventorySpot10 to PlayerStart0.
oooooooooooooooo: oooooooooooooooo
Specs: PlayerStart0 - Paths[0]=0 Start=PlayerStart0 End=InventorySpot10 RFlags=Special =32 Dist=500
Connected: PlayerStart0 to InventorySpot10.
NoReachFrom: PlayerStart0 to point 0 which means InventorySpot10
Specs: +++++
oooooooooooooooo: oooooooooooooooo
Specs: InventorySpot10 - UpstreamPaths[0]=0 Start=PlayerStart0 End=InventorySpot10 RFlags=Special =32 Dist=500
Connected: PlayerStart0 to InventorySpot10.
oooooooooooooooo: oooooooooooooooo
Specs: InventorySpot10 - Paths[0]=1 Start=InventorySpot10 End=PlayerStart0 RFlags=Jump Walk =9 Dist=472
Connected: InventorySpot10 to PlayerStart0.
Specs: +++++
Specs: ReachSpecs Flags summary:
Flg: R_WALK = 1
Flg: R_FLY = 2
Flg: R_SWIM = 4
Flg: R_JUMP = 8
Flg: R_DOOR = 16
Flg: R_SPECIAL = 32
Flg: R_PLAYERONLY = 64
Simple as a pie.

For first image Credits goes at Epic and...
Gorgeous Credits goes at Higor for second image.

EDIT2: Query thing
@fudgonaut - feel free to upload here as samples for curious mappers those two "mini-maps" which I sent you if you want.
First was Using stock combos Nav.Points but using XC builder for all links.
Second was using PathNodes but declaring forced links for XC builder where default strategy does rejections even if area is navigable.
Attachments
Another_ Two_Way.PNG
Wrong_ One_way.PNG

User avatar
fudgonaut
Experienced
Posts: 111
Joined: Sat Oct 05, 2013 7:20 am
Personal rank: Abysmal
Location: The Emerald City

AlternativePaths and sectionWeights

Post by fudgonaut » Mon Oct 21, 2019 2:33 am

I'm looking at my map after many months. The pathing is bad and monotonous. I've tried using AlternativePaths to vary the bot pathing, with only limited success.

When assigning sectionWeight values to AlternativePaths, is there a specific range of values allowed? 0.0 through 1.0? 1 through 100? No limit?
What are the recommended increment for boosting a path's weight? 0.1? 1.0? 10? I know that it depends on the specific map, but does anyone have a rule of thumb that works for them?
Are there any other strategies, behaviors, or other or pieces of knowledge that could be shared to better understand how to get the most out of AlternativePaths?

Thanks in advance.

User avatar
sektor2111
Godlike
Posts: 4167
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: WIP: CTF-Panamax

Post by sektor2111 » Mon Oct 21, 2019 6:27 pm

CTF has an internal randomizer for AlternatePaths sorting - that's only in CTF, I cloned that in MapGarbage builder to quickly testing map directly in Editor. However, some values have less chances to get sorted - I saw maps having even bigger values - 1000 or more, this is insane because I did not see such things at EPIC, in maps like CTF-EternalCave which for me is fine somehow. In a moment I wrote a PathToggler (Higor has one too) that can replace a common PathNode if has only 2 (4 real) connections. This toggler reacts triggered, more exactly I used a "stochastictrigger" for being more unpredictable even for myself. I was often interested about such togglers because after a few Sessions every single player can figure what is doing Bot and where is moving.
For such deviations I wrote even run-time togglers attached to a normal Pathnode - target was MH-BoomBoomBridge_BE map or such in order to gain more attack routes instead of the shortest one. Actor is scanning closer a nearby Node and locks/unlocks it by toggling extracost, yes, default pathnode is supporting this very well it won't need special data.
What is still doable toward this blocking or conditional blocking - writing some MyLevel (I did this in 2014):
- taking in account health: if seeker has a poor health block path letting him to follow VIALS routes;
- taking in account a low rated weapon: if seeker has an enforcer block path letting him to follow a Flak route;
- taking in account some area (news in a MH map) - if a projectile is fired in area, pawn will get back to another point for avoiding projectile - BomberTentacle here - 70% works because it's hard to figure navigation timings but it's better than nothing;
- taking in account a bridge - if bridge is moved lock routes, if bridge is lowered back allow navigation - here there are some stunts for producing paths over a bridge but it's doable...;
- Other factors required for certain conditions...
What I don't know well yet is flying deal. When I'm saying don't know well it's because some navigation data are not what I need or I have to write some new tools for a Warlord which has two physics and then when is walking won't find you through air until something makes him to change movement physics - I'm not talking horse-sh!t because I tested such a scenario, but stupid gasbags especially and mantas were nice... Human can see such routes if is... cheating with "fly" and other console command... that's why movement Physics is another factor to take in account for extra stunts.

Post Reply