Page 1 of 2

CTF pathing request

Posted: Fri Jun 12, 2020 4:32 am
by evilgrins
I'm currently toying around with this:
https://unrealarchive.org/maps/unreal-t ... f4720.html

Pic from my edit...
Image
...but let's not dwell.

It's a massive island, 2 mountains with a valley in-between, flag bases on opposite sides. The water around the island is lethal, which I like, and there's some random monsters in the aforementioned valley.

Map had very rudimentary pathing. It's okay, but it's not great... which isn't surprising as this map was made back in 2000. Bots get hung up in some spots, and if they get knocked far away they don't easily get back to where they need to be.

Defense points aren't so great either... but it has a decent teleport system that can even be accessed by spectators.

Anybody wanna take a stab at this?

Re: CTF pathing request

Posted: Sat Jun 13, 2020 8:35 am
by Nelsona
May I enter the stage ? I've been busy with that ARC_Platidus whatever map proposed for a normal CTF and having a mess at pathing chapter - will be chatting about that elsewhere if needed...
But let's see what is about here...
Processing...
Processing done:
- This it's not a friend of servers having "space" in name - lousy habits without a purpose;
- At least we have zones :tease:

Code: Select all

ZoningChecker: ZoneInfo2 and ZoneInfo3 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo4 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo5 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo6 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo7 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo8 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo9 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo2 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo4 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo5 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo6 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo7 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo8 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo9 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo3 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo4 and ZoneInfo5 share the same zone
ZoningChecker: ZoneInfo4 and ZoneInfo6 share the same zone
ZoningChecker: ZoneInfo4 and ZoneInfo7 share the same zone
ZoningChecker: ZoneInfo4 and ZoneInfo8 share the same zone
ZoningChecker: ZoneInfo4 and ZoneInfo9 share the same zone
ZoningChecker: ZoneInfo4 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo4 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo5 and ZoneInfo6 share the same zone
ZoningChecker: ZoneInfo5 and ZoneInfo7 share the same zone
ZoningChecker: ZoneInfo5 and ZoneInfo8 share the same zone
ZoningChecker: ZoneInfo5 and ZoneInfo9 share the same zone
ZoningChecker: ZoneInfo5 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo5 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo6 and ZoneInfo7 share the same zone
ZoningChecker: ZoneInfo6 and ZoneInfo8 share the same zone
ZoningChecker: ZoneInfo6 and ZoneInfo9 share the same zone
ZoningChecker: ZoneInfo6 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo6 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo7 and ZoneInfo8 share the same zone
ZoningChecker: ZoneInfo7 and ZoneInfo9 share the same zone
ZoningChecker: ZoneInfo7 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo7 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo8 and ZoneInfo9 share the same zone
ZoningChecker: ZoneInfo8 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo8 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo9 and ZoneInfo19 share the same zone
ZoningChecker: ZoneInfo9 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo11 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo12 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo13 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo14 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo15 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo16 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo17 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo10 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo12 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo13 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo14 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo15 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo16 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo17 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo11 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo13 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo14 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo15 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo16 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo17 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo12 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo13 and ZoneInfo14 share the same zone
ZoningChecker: ZoneInfo13 and ZoneInfo15 share the same zone
ZoningChecker: ZoneInfo13 and ZoneInfo16 share the same zone
ZoningChecker: ZoneInfo13 and ZoneInfo17 share the same zone
ZoningChecker: ZoneInfo13 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo13 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo13 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo14 and ZoneInfo15 share the same zone
ZoningChecker: ZoneInfo14 and ZoneInfo16 share the same zone
ZoningChecker: ZoneInfo14 and ZoneInfo17 share the same zone
ZoningChecker: ZoneInfo14 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo14 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo14 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo15 and ZoneInfo16 share the same zone
ZoningChecker: ZoneInfo15 and ZoneInfo17 share the same zone
ZoningChecker: ZoneInfo15 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo15 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo15 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo16 and ZoneInfo17 share the same zone
ZoningChecker: ZoneInfo16 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo16 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo16 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo17 and ZoneInfo18 share the same zone
ZoningChecker: ZoneInfo17 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo17 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo18 and ZoneInfo20 share the same zone
ZoningChecker: ZoneInfo18 and ZoneInfo21 share the same zone
ZoningChecker: ZoneInfo19 and ZoneInfo22 share the same zone
ZoningChecker: ZoneInfo20 and ZoneInfo21 share the same zone
You (mapper) gotta be kidding me...
- Defending elsewhere

Code: Select all

DefenseChecks: Map has 0 DefensePoint Actors for team 0. Check if this is wrong.
DefenseChecks: Map has 0 DefensePoint Actors for team 1. Check if this is wrong.
- not exactly unpredictable

Code: Select all

CTFReport: --- Reporting AlternatePaths setup: ---
CTFReport: For Team 0 = 0 pieces.
CTFReport: For Team 1 = 0 pieces.
Notes:
- Map has paths - area is just big causing lost Bots. More nodes would cause following the shortest routes and always ones closer to shortest routes. There is more to discuss here, if we know how this dev does work.
- Plain trash here

Code: Select all

ScriptWarning: BabyCow CTF-FragIsland.BabyCow0 (Function UnrealShare.BabyCow.Grazing.PickDestination:0065) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow0 (Function UnrealShare.BabyCow.Grazing.PickDestination:0078) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow0 (Function UnrealShare.BabyCow.Grazing.PickDestination:0097) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow3 (Function UnrealShare.BabyCow.Grazing.PickDestination:0065) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow3 (Function UnrealShare.BabyCow.Grazing.PickDestination:0078) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow3 (Function UnrealShare.BabyCow.Grazing.PickDestination:0097) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow3 (Function UnrealShare.BabyCow.Grazing.TakeDamage:0006) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow1 (Function UnrealShare.BabyCow.Grazing.TakeDamage:0006) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow0 (Function UnrealShare.BabyCow.Grazing.TakeDamage:0006) Accessed None
ScriptWarning: Cow CTF-FragIsland.Cow10 (Function UnrealShare.Cow.Grazing.EndState:0009) Accessed None
ScriptWarning: BabyCow CTF-FragIsland.BabyCow2 (Function UnrealShare.Cow.Grazing.EndState:0009) Accessed None
ScriptWarning: Cow CTF-FragIsland.Cow4 (Function UnrealShare.Cow.Grazing.EndState:0009) Accessed None
ScriptWarning: Cow CTF-FragIsland.Cow3 (Function UnrealShare.Cow.Grazing.EndState:0009) Accessed None
Any reason for these ?
- Enemy Flag Carrier will be a hard deal to be found in the wild in stock CTFGame, if map would be supposed to work properly with A.I., navigation paths have to be optimized and minimized as much as possible. Finding a boosted carrier or such enemy away from paths-net won't be possible without external assistance. By adding more paths Engine will clamp quickly in paths processing task heading nowhere;
- IT DOESN'T include any teleporter - those are WARP Zones. The shortest way to any flag from the other flag is.. THERE, by warping.

Okay, let me think 10 minutes what is doable here ( after cleaning all crap out )...

Edit:
680 reachspecs should cover main areas, it might be welcomed a NoLost actor for Bot thrown away from paths-net. The rest are issues specific to an oversized map... Perhaps toggling paths would do some randomization or adding a few paths and... AlternatePaths.

Re: CTF pathing request

Posted: Sat Jun 13, 2020 4:33 pm
by Nelsona
I think it's done...
CTF-FragIsland_R2020.7z
(148.41 KiB) Downloaded 307 times
All Paths-Net has been reconstructed.
Notes
I used my FlagTracker mutator for figuring routes. For some reason map is not only smaller than original, but DevPath has an extremely good response which is surprising to me. One of my Bots was holding enemy flag. Mutator pointed me to my friend with flag for covering him. Suddenly I was informed to take care of him as long as it was... Reachable, LOL - I had to look through sniper's scope for figuring where is my friend with enemy Flag, cough...

Let me know if it needs more. Summary:
- Smarter AlternatePaths;
- PathsTogglers - working triggered;
- dynamic Defensepoints;
- a NoLost actor - perhaps it's not even needed, lol.

Conclusions:
- maybe PlayerStarts are too far - big map, not many chances to recover flag if enemy will use warps...

Re: CTF pathing request

Posted: Sun Jun 14, 2020 1:24 am
by evilgrins
You removed the cows... which I get, but the map is so much quieter without all the moo'ing.

Okay, a couple things....
· With the new pathing, unless returning to get a flag back pretty much the majority of activity involves running around the map clockwise. Both teams tend to do this, which makes flag captures fairly easy for bot-on-bot play.
· With the exception of sometimes leaving the enemy base with their flag, for the most part bots don't go over the mountains anymore... which seems a shame with that handy teleport system up there.

This is all I've observed so far.

Re: CTF pathing request

Posted: Sun Jun 14, 2020 6:23 am
by Nelsona
All Mooing is doable with AmbientSound-s and/or decorations - you gotta be kidding. I'm not going to spread any Accessed Nones because of nothing.

Code: Select all

//=============================================================================
// BabyCow.
// Don't add to world directly.  Rather, set bHasBaby of an adult cow.
//=============================================================================
class BabyCow extends Cow;
Next points:
evilgrins wrote: Sun Jun 14, 2020 1:24 am · With the exception of sometimes leaving the enemy base with their flag, for the most part bots don't go over the mountains anymore... which seems a shame with that handy teleport system up there.
Of course they will use mountain but not all time.
Play more time with more Bots and see how do they move.
Map_LevelInfo wrote: Lotsa players
Map has AlternatePaths and since I added them I could notice a game change + toggling paths. I don't really get how you want this map to be played. Do they have previous issues ? Do they remain stuck or running in place all day long ? In my sessions they were moving on the field routes with flag and then climbing mountain switching routes. You should get that Bots on the Left won't catch carrier from the Right because... it's too damn far - idea was original so I did not change anything here.
Capturing your Flag is EASY anyway, if you are killed and you re-spawn on other side - I already explained what is about Spawn places - too far from any carrier. Carrier using warp will have a safe capture because... this is geometry concept in such case, a junk doing errors (BABYCOW IS NOT FOR MAPPING) and charged with garbage - see new map size, it's 1/3 of original. Here they are using other way than only warping. You can add other PathsTogglers where you want routes blocked (they are in MyLevel) and their private string used for tag should be one of events used by StochasticTrigger. Toggling timers are if I well recall 30-40 seconds and chance 0.92, you can play with these how you want, but I assure you, carrier has more time a lot of freedom and less threatening due to map's concept itself not paths. These timers are affecting path availability over mountain through warp - and NO, those paths are not blocked all time, they are toggled and I could see captures through warps even losing matches at this point... Timers for toggling if are too quick they won't have time to pass over blockers and will loop between other available route and shortest route.

In one of sessions I was able to get rid of strong Bots sniping them from a long range and getting flag, but later, some enemy captured flag because I could not get it with translocator so fast, he used warps and he did a quick capture, because warps are not entirely blocked unless some mutator used by you is blocking map's timers. I'm going to try it in a more aggressive environment...

Re: CTF pathing request

Posted: Sun Jun 14, 2020 3:46 pm
by evilgrins
Actually, the "lotsa" wasn't my choice, that was the original mapper.

I'd've corrected it to "lottsa" anyway.
Nelsona wrote: Sun Jun 14, 2020 6:23 am
Map_LevelInfo wrote: Lotsa players
Map has AlternatePaths and since I added them I could notice a game change + toggling paths. I don't really get how you want this map to be played. Do they have previous issues? Do they remain stuck or running in place all day long?
Not much running in place originally, certainly none in your fix. That's not been an issue.

Initially in the original version the most I saw was bots running up and down the mountain, but close to the ground. Like relatively only about 5 feet up the mountain and back... but you fixed that.

Re: CTF pathing request

Posted: Sun Jun 14, 2020 4:20 pm
by Nelsona
I have to admit that I have some... evil part of mine, the part involving reality, I don't really like FAKE docs and then The Evil comes out.
What is about ? Tutorials were saying about ramps problems - not a single tutorial. They were recommending 300 - 400 UU between nodes in ramps or else it will be a problem. Let me see: I haven't only blown up this pathetic story, I simply detonated all TNT charge in the room. Some PathNodes going up/down are connected and placed even at 1800+ distance and I had a Flag Carrier using that path ON-LINE and multiple times Off-Line demonstrating a perfectly usable path. The rest means placement, timer to lock, how many AlternatePaths would be recommended (needed maybe hundreds of tests), and so on - all news are doable post-pathing for preventing Editor to ruin what was manually modified. Default Goblin won't really link more such things, even if Engine can manage more than automated scripts which are mapping paths in Editor... At least for command "PathsBuild X" that's insanity in all the way.
Ramp_Myths_Detonated.PNG
Ramp_Myths_Detonated.PNG (1.39 MiB) Viewed 5773 times
The thing is CTFFlagTracker mutator or how I called it (INT file allows all sort of names) was even heading me through that way when Path was unlocked - map starts with hill locked having 92% chances to get unlocked in a time interval between 30 and 40 seconds - it's up on what Engine wants...
evilgrins wrote: Sun Jun 14, 2020 3:46 pm Actually, the "lotsa" wasn't my choice, that was the original mapper.
Exactly, it was the map from unrealarchive.org.

Re: CTF pathing request

Posted: Sun Jun 14, 2020 7:41 pm
by evilgrins
Found a weird quirk. Fairly often if a bot is getting the flag and then returning to base, bot will run up the hill, stop, and then run back down to the enemy base.

That is weird.

Re: CTF pathing request

Posted: Sun Jun 14, 2020 10:08 pm
by Nelsona
Agree, I witnessed such thing. I believe StochasticTrigger will need bigger values or... map size causes a bad timing.
Bot moves to hill and when is closer, path goes locked because free path timer has expired. If path is locked he will need to find another route going back. Back means... lol... exactly to where he came from...
Here perhaps I need to write extra stuff because this is not a common map with many routes, I minimized options which is not exactly that good. First thing would be changing timer 45-60, but still there are chances to see path locked in front of Bot carrier...

Re: CTF pathing request

Posted: Sun Jun 14, 2020 11:25 pm
by evilgrins
Nelsona wrote: Sun Jun 14, 2020 10:08 pm Agree, I witnessed such thing. I believe StochasticTrigger will need bigger values or... map size causes a bad timing.
Bot moves to hill and when is closer, path goes locked because free path timer has expired. If path is locked he will need to find another route going back. Back means... lol... exactly to where he came from...
Not so bad when the bot running back to the wrong base is Loque, because he can kill pretty much everyone there... possible exception of the Kaiju sized Titan.