Page 3 of 11

Re: XC_Engine megathread

Posted: Tue Dec 25, 2018 7:26 am
by sektor2111
Editor is doing this too ? The second copy logs nothing because file it's in use ? This should be the behavior for UCC too ?

Re: XC_Engine megathread

Posted: Tue Dec 25, 2018 6:05 pm
by Higor
Default UT/UCC/Editor are simply unable to even start logging when file is in use, it was a feature I added that got broken in the middle of the porting process.

Re: XC_Engine megathread

Posted: Wed Jan 09, 2019 3:04 am
by Higor
So far so good on the experimental path builder...
Distance isn't fixed to 1000, but it has a tendency to go a bit higher. Can be up to ~1600 in some cases.

Re: XC_Engine megathread

Posted: Wed Jan 09, 2019 7:11 am
by sektor2111
Original DevPath what does is do ? Does it work properly in such case ? I suppose that one has the same limitations because it uses original code... or it's possible a better optimization helping even old code ?

Re: XC_Engine megathread

Posted: Wed Jan 09, 2019 7:48 am
by Higor
The main difference is A-B sorting.
My path builder will enumerate EVERY A<->B possible connection and then sort by distance.
That way it'll start building the short paths first, which then allows smart-pruning without filling the path lists.
The smart pruner uses a different 3d primitive to catch nodes inbetween A-B to see if A-B shouldn't be built.


========================
BOOM!, USER FRIENDLY PATH VISUALISATION!!!

Color codes (darker=only smaller pawns can use):
- Green > WALK
- Yellow > JUMP
- Red > AIR
- Blue > SPECIAL
-- Selecting the path will highlight it's reachspecs in blue-ish.

Lines:
- Back and forth lines separated (AND DON'T CROSS!)
- Arrow indicating direction.

Re: XC_Engine megathread

Posted: Wed Jan 09, 2019 2:21 pm
by sektor2111
Hey, over here... I can swim, what's my path color ?

Re: XC_Engine megathread

Posted: Thu Jan 10, 2019 9:51 pm
by Higor
Swim paths are green as well.

A comparison in DM-LiandriXL:

Re: XC_Engine megathread

Posted: Thu Jan 10, 2019 9:54 pm
by papercoffee
I love what I'm seeing there.

Re: XC_Engine megathread

Posted: Thu Jan 10, 2019 10:14 pm
by UnrealGGecko
This looks really helpful, nice!

(offtopic) link to the map plz? :mrgreen:

Re: XC_Engine megathread

Posted: Fri Jan 11, 2019 12:58 am
by Higor
UT Forgotten Classics pack

This is the ONLY available link.
http://medor.no-ip.org/index.php?dir=To ... e5-ZIP.zip

Re: XC_Engine megathread

Posted: Fri Jan 11, 2019 7:43 am
by UnrealGGecko
... And I was looking for that pack a while back too, thank you! :rock:

Re: XC_Engine megathread

Posted: Fri Jan 11, 2019 4:44 pm
by sektor2111
As a deviation in off topic mode
Interesting this pack - goodies and plonks are available too. Reference: DM-AMariner][.
DM-AMariner.txt wrote: Known bugs : The two lifts aren't to hot, I gave up trying to get the bots
to use them. No head for hights I guess. They also flatly
refuse to use the two nice ice tunnels that lead to the sniper
position on the ice bridge, so I go up there now and again for
some supprise head shots, That'll teach em.
There is sure to be one or two more but I can't find them.
Oh, really ? Too bad. Which means I will have soon a new fresh DM Level, I do not have to mention that some route through a house around has no LINKS from any kind - once again: default PathNode is TOO BIG :pfff: - too bad that people could not figure this after one decade of crapped ramps and small spots - date looks 2010. As for some Lift there - I don't get the presence of TWO LiftCenter actors for the same Lift...
Ayeee, nice pathing job as a great home-work for this week-end...
Deviation ends.
Perhaps I have to wait Higor's newer builder for "dancing" a bit around... I really think that would be entertaining... or pathing in "oldskool" style might be very educative... Oh well, I can predict already too much fun...

Re: XC_Engine megathread

Posted: Wed Jan 16, 2019 1:21 am
by papercoffee
I split the thread and put the discussion about the mover issue here viewtopic.php?p=110419#p110419
I just want to say keep your manners and talk on a mature level ...or I whack you with a ladle.

Re: XC_Engine megathread

Posted: Sun Feb 03, 2019 5:39 am
by Higor
Decided to finally implement the FerBotz route mapper into XC_Core.
A couple of changes in the algorithm and more features added and the results are more than satisfying.

For starters, the new route mapper can multi-map from multiple starting points, which means it can now be used to figure out which of many starting points is the nearest to one or more objective (nearest may vary on each case!), all while using a single query.
Secondly, the mapper can be set to stop as soon as a marked destination is found and refined for shortest distance, greatly reducing processing times (no need to process the entire map if you want to reach something that's nearby).
It also contains a somewhat expensive start point finder if you're lazy to do that yourself.

Here's the difference in cycle counters between FerBotz's improved route mapper and the XC one:
RouteMapper.PNG
RouteMapper_MH-LostInTime.PNG
Additionally, the size of the 'StartAnchor' array you can pass to the MapRoutes function isn't fixed!!!
It can be of any size you want.
//********************************
// *********** Route mapper
//
// Pass a list of Start Anchors (or autogenerate one based on 'Reference' position if not passed)
// - Start Anchors must have VisitedWeight preset to a value that indicates initial route cost (if you're not sure set to 0)
// - The list of anchors can be of any size!!
// Pass an event that optionally modifies the behaviour of the route mapper (base Cost set, bEndPoint marking)
// - The event must have no parameters or return type
//
// When the optional event is called, all path nodes have:
// - VisitedWeight = 10000000 (if normal paths)
// -** StartAnchors have this set to a different value that represents the initial route cost.
// -** StartAnchors automatically searched by the mapper (no list provided) have this value set as (Dist to Ref * 2)
// - Cost = 0 (ExtraCost/SpecialCost added to this)
// - bEndPoint = false
//
// Setting bEndPoint=True forces the route mapper to end if a short route has been found from start to end (not full mapping).
// Setting base Cost alters the weight of this path node.
// Setting initial VisitedWeight (on StartAnchor) will give additional starting weight/cost to the whole route starting from this point.
//
// When the mapping has finished:
// - The return value of the function is the nearest bEndPoint=True path (if provided)
// On path nodes after finished:
// - VisitedWeight = 'distance' from nearest StartAnchor.
// - VisitedWeight = 10000000 >>> unreachable.
// - StartPath = StartAnchor corresponding to this route
// - PrevOrdered = Previous path node in this route
// - Cost = Post-processed Cost (only calculated on demand!)

Code: Select all

native /*(3538)*/ final function NavigationPoint MapRoutes( Pawn Seeker, optional NavigationPoint StartAnchors[16], optional name RouteMapperEvent);
native /*(3539)*/ final function NavigationPoint BuildRouteCache( NavigationPoint EndPoint, out NavigationPoint CacheList[16]); //May skip start point if being touched by caller

Re: XC_Engine megathread

Posted: Sun Feb 03, 2019 9:10 am
by sektor2111
Maybe it's good to be implemented, maybe an user will understand and use them - I've researched the old version of FerBotz and as I said before in a topic, I created paths through walls that did not help me. Yesterday, for example, I have produced a NavAdder plugin for DM-Curse][ map. There were places where those paths made by the Editor were sh!t. Not only I got rid of them, but I even managed to make some new connections, causing the A.I. to move through places where you do not usually see them.

If the "MapRoutes" function will be fixed, and no wall route will be created, these implementations can be useful.