XC_Engine megathread

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

Re: XC_Engine megathread

Post 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 ?
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine megathread

Post 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.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine megathread

Post 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.
Attachments
PathBuilder.jpg
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine megathread

Post 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 ?
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine megathread

Post 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.
Attachments
And all in a day's work.
And all in a day's work.
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine megathread

Post by sektor2111 »

Hey, over here... I can swim, what's my path color ?
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine megathread

Post by Higor »

Swim paths are green as well.

A comparison in DM-LiandriXL:
Attachments
PathBuilder_Prune.jpg
User avatar
papercoffee
Godlike
Posts: 10441
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: XC_Engine megathread

Post by papercoffee »

I love what I'm seeing there.
User avatar
UnrealGGecko
Godlike
Posts: 2894
Joined: Wed Feb 01, 2012 11:26 am
Personal rank: GEx the Gecko
Location: Kaunas, Lithuania
Contact:

Re: XC_Engine megathread

Post by UnrealGGecko »

This looks really helpful, nice!

(offtopic) link to the map plz? :mrgreen:
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine megathread

Post by Higor »

UT Forgotten Classics pack

This is the ONLY available link.
http://medor.no-ip.org/index.php?dir=To ... e5-ZIP.zip
User avatar
UnrealGGecko
Godlike
Posts: 2894
Joined: Wed Feb 01, 2012 11:26 am
Personal rank: GEx the Gecko
Location: Kaunas, Lithuania
Contact:

Re: XC_Engine megathread

Post by UnrealGGecko »

... And I was looking for that pack a while back too, thank you! :rock:
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine megathread

Post 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...
User avatar
papercoffee
Godlike
Posts: 10441
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: XC_Engine megathread

Post 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.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine megathread

Post 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
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine megathread

Post 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.
Post Reply