Enslaved for UT

Share interesting stuff you have found or created yourself.
User avatar
sektor2111
Godlike
Posts: 6435
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Enslaved for UT

Post by sektor2111 »

Dreams or not, paths around first door are not like that (too much Science for nothing special) - there is needed FIRST WayPoint for opening first doors... which need a correction of course and then the rest. Map do seems to require Blockedpath actors as well linked with the rest of doors accordingly, or it won't work by only using PathNodes. Eh, I'm not wasting too much time here, I went busy with another older task...
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil

Re: Enslaved for UT

Post by Gustavo6046 »

You're right, maybe I shouldn't busy myself fixing something that is too large to be maintainable.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil

Re: Enslaved for UT

Post by Gustavo6046 »

Actually I do want to see this pathed and fixed. Maybe I'll fix my version!
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

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

Re: Enslaved for UT

Post by sektor2111 »

Full control over paths now days is doable, you can prevent Editor from doing its funky routes through decorations and all sort of colliding stuff.
"How To" Hints:
- destroying old Paths-Net using MapGarbage - it will clean useless data as well;
- Saving map file using a temporary name and closing everything;
- Re-Open Editor and Temporary map;
- CleanUp Level using XC_EditorAdds (whatever it does it seems that it's removing some debris data) - it's not advisable after re-wrapping actors, because it will fail;
- Examine Inventories for future placement of InventorySpot actors - MapGarbage can fix locations here in multiple ways;
- MapGarbage can deploy InventorySpots (even all kind of subclasses if needed) for selected Inventories - and these can be all selected with the same MapGarbage;
- MapGarbage can link NavigationPointList after checking/fixing actors locations (recommended);
- XC_PathsWorker can generate by using a basic "PointReachable" test, two or one ReachSpec structures between two selected navigation points and this way entire network can be linked at user's desire doing exactly what user wants dodging from heavy spots with colliding actors (colliding in run-time not in Editor - where lousy paths are always generated);
- spots which are navigable in run-time but Rejected by Tester in Editor can be also generated using User Input, in seconds ( based on template dummy ReachSpec - a mirror of a future Real ReachSpec);
Note - After adding some Paths saving current work is highly recommended...
- using XC_PathsWorker post pathing for fixing and/or defragmenting ReachSpecs (in case that something went wrong during manual work);
- optional deleting junks with MapGarbage - here a random map with paths went smaller than a map without paths if you can imagine how much trash was in that UNR file - including Red Brush Builder can be nullified - nothing uses that thing in run-time;
- saving map using a different name.
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil

Re: Enslaved for UT

Post by Gustavo6046 »

Re-wrapping actors? You mean like reordering to last?

Also, I think I'd rather just the entire navigation system be rewritten from scratch. Starting to consider scrapping the BSP code too. Stupid Sweeney.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

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

Re: Enslaved for UT

Post by sektor2111 »

I'm getting used to wrap to last - I do this with a single button without to click anywhere in map. PlayerStarts can be wrapped as first but I'm not sure how much does it help, but definitely it doesn't hurt. Indeed, after ordering Starts as first, they are located in front of other navigation points and... processing target points are in reverse order until Pawn is closer to a potential entry into network - probably all scanning process takes less cycles this way - or I might be wrong here...

Extra
Something which I read a a few time ago...
https://medium.com/omarelgabrys-blog/pa ... 5a8902eb40
Probably useful elsewhere for whoever is capable to write extra native extensions as alternate options that can be configured by a Server Administrator... getting rid of Cycles and using a Timer. If time spent is more than a half of tick, return None else a "monster-machine" can process 10000 Nodes under an eye blink if memory taken during process won't get into nowhere...

Back into UT. This is what I did in 2016 (it was a sudden recall...) perhaps can be helpful here or elsewhere.

Code: Select all

// Another Mobile PathNode getting used to react triggered more or less randomly
// It moves in a square area defined X Y and it successfully uses never used in stock UT "RandRange"
// for moving node around X Y. It resumes another random movement referenced to Original Location when triggered
class MobileNode expands PathNode;

var bool bMoved;
var Vector HomeLocation,NewLocation;
var() int Xdeviation;
var() int Ydeviation;

event PostBeginPlay()
{
	HomeLocation = Location;
	NewLocation = HomeLocation;
}

function Trigger ( Actor Other, Pawn EventInstigator )
{
	if ( Xdeviation > 0 )
		NewLocation.X = RandRange(NewLocation.X-XDeviation,NewLocation.X+XDeviation);
	if ( Ydeviation > 0 )
		NewLocation.Y = RandRange(NewLocation.Y-YDeviation,NewLocation.Y+YDeviation);
	SetLocation(NewLocation);
	NewLocation = HomeLocation;
}
defaultproperties
{
	bStatic=False
	bNoDelete=True
	bMovable=True
}
Used in a home map DM-Streetwar re-titled later as DM-StreetWar_R16 (properties there need a revision).
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil

Re: Enslaved for UT

Post by Gustavo6046 »

The A* algorithm was already very well known at the time UT came out.

In any case, since lots of pathnodes tend to be in clusters in the same area, I'd suggest some hierarchical sort of pathfinding algorithm, like this (also see the comments about how the flowfield works!... although that's not what I had in mind.)

I have a feeling the real issue isn't with the pathfinding algorithm, but rather with the data structure in which the path graph is stored.

There's only one way to find out.

....Ahem.... one moment...

Ah! Hello Timmy, it's really cool to see you. kind of a fan. Calling you to see if I can take a quick look at a corner of the source code to Unreal Tournament? The first one, yup. It's for a pathing thing, I would like to check how the data structure–... Oh. Okay. That's fine. Sorry for bothering you this time of the day. No, that's fine! I can call you back another day. Oo, exciting news. I didn't just say "oo", I think your call had a little drop there. Okay, talk to you later!

Damn, he was in a hurry. I wonder what he's up to with all that hurried 'business' he's talking about...
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
Delacroix
Adept
Posts: 326
Joined: Thu Mar 25, 2010 6:00 pm
Personal rank: UMS R&D CEO

Re: Enslaved for UT

Post by Delacroix »

Just to let you know, there's been a huge update for the map, so if discussing the level, it might be prudent to base all feedback, improvement ideas and other nice stuff in Aspide's topic as he's the author for the patch!