For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

Define your paths - a few tricks

Unreal Unreal and more Unreal
Post Reply
User avatar
Buster
Global Moderator
Posts: 1610
Joined: Wed Jun 08, 2005 3:02 am

Define your paths - a few tricks

Post by Buster »

When you are define the paths in a map it's best to have the nodes joined with a blue line. That's the main goal. To get all the apples connected with blue lines. There's a few problems to accomplishing this.

Too many apples in an area causes too many unwanted blue lines, like a spiderweb. Apples in deeper water that won't define, which leads to drowning bots. Jumping out of the water. For example, bots getting out of a swimming pool. Jumping from a height that may cause damage to the bots, or into water. ETC

Dealing with these and other similar problems, such as apples on stairs not joining up with a blue line, are actually quite easy. You just have to keep a few things in mind when you are "building" your map.

A). Have all your geometry and lighting done in its final version. Once you add the path nodes you don't want to make any lighting or texture changes.
B). Learn to love using collision hulls.

If I don't want two apples to join up at all I'll just place a small and thin collision hull between the two apples. Rebuild the map, GEOMETRY ONLY, and define the paths. The collision hull will block a line from joining the apples. Then I'll delete the collision hull and rebuild the map, GEOMETRY ONLY. Doing this will give you control over which nodes will join up with which. It also solves the first problem I've mentioned above.

The other problem of getting the bot to jump off a cliff is solved in a similar way. Put a small collision hull floor at the side of the cliff, like a plank of the side of a ship. Place an apple at the edge of the cliff and the end of the plank. Rebuild GEO only, define paths, remove hull, GEO only. There should be a blue line joining the apple on the cliff and the apple floating in the air.

This fools the bots into thinking there's solid ground, so they'll run off the edge of the cliff.

Placing collision hull walkways in deep water or a step at a pool's edge will also help blue line apples in the water that refuse to join up. There's lots of ways to use this method to take greater control of which apple joins with which.

BUT it does take a lot of planning. I've found that the fewer times you hit the "Define Paths" the better it is.

There are times when apples on stairs won't join up when you define, or sometimes two apples won't join up in a doorway. Sometimes hovering a thin collision hull floor in the doorway, or like a ramp on the stairs will do the trick.

I don't know why it works, but sometimes it does.
Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
:-)_~
User avatar
Smirftsch
Administrator
Posts: 8999
Joined: Wed Apr 29, 1998 10:00 pm
Location: NaPali
Contact:

Re: Define your paths - a few tricks

Post by Smirftsch »

shouldnt this be in UED section or in wiki (too?)... :)
Sometimes you have to lose a fight to win the war.
User avatar
Buster
Global Moderator
Posts: 1610
Joined: Wed Jun 08, 2005 3:02 am

Re: Define your paths - a few tricks

Post by Buster »

Yeah it should. I just wrote it out on a whim waiting for my supper to cook. I really should get it down properly.
Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
:-)_~
User avatar
Smirftsch
Administrator
Posts: 8999
Joined: Wed Apr 29, 1998 10:00 pm
Location: NaPali
Contact:

Re: Define your paths - a few tricks

Post by Smirftsch »

haha, thanks nevertheless, we need such information ;)
Sometimes you have to lose a fight to win the war.
User avatar
Krull0r
Global Moderator
Posts: 543
Joined: Sun Jul 01, 2007 4:07 pm

Re: Define your paths - a few tricks

Post by Krull0r »

Good tricks you mentioned here. I'll try this :)
Image
User avatar
Lightning_Hunter
OldUnreal Member
Posts: 279
Joined: Tue Mar 04, 2003 9:30 pm

Re: Define your paths - a few tricks

Post by Lightning_Hunter »

Bot pathing Master here reporting in!  Just wanted to mention that these things can be accomplished without messing with Geometry rebuilds and collision hulls (although the concept is interesting!)

To get a bot to jump off a cliff of ANY height, simply add a liftexit and liftcenter, and connect them together via "LiftTag" (lift exit at the top where the bot starts, then a liftcenter where the bot should stand before jumping off, then a liftexit at the bottom).  If you don't want the bot to attempt to go back UP the cliff, then simply raise the last liftexit off the ground, and the bots will NOT attempt to go up (only down).  Here is an example of where I did this in my own "enhanced" Zahltag version:
Image
This trick only takes like 30 seconds to set up, and I have proven and tested it in dozens (maybe hundreds) of maps.

Liftexit/Liftcenter combos will always make a solid blue line, and they do NOT need to be connected to a mover.  In fact, you can use liftexit/liftcenter combos to get bots to jump across any gap, go up any ladder, and jump down/up any cliff.  Heck, you can literally force them to attempt anything with a good Liftexit/liftcenter combo.  They will even work underwater, or force bots to get through tight tunnels where the editor has trouble building paths automatically.  I use a lot of LiftExits and LiftCenters in my maps.  In my "enhanced" version of Zahltag, I used 60 LiftExits and 30 LiftCenters to get the bots to jump down from every building. 

You can also get bots to obtain items floating in the air with LiftExits/LiftCenters.  All you have to do is place a LiftExit and LiftCenter before the jump, then place a LiftExit at the EXACT same location as the item you want the bots to obtain. It will look like this:
Image

Your method of blocking paths is interesting, but you can also accomplish this by setting "bOneWaypath" to true in the 'NavigationPoint' properties, then set "bDirectional" to true in the advanced settings.  Finally, rotate the two opposing bot paths so the arrows are pointing away from each other.  They will no longer connect.  However, this method will not work if there is any inventory that will connect the paths (you cannot set inventory to bOneWayPath, due to InventorySpots being auto-generated).
Edit:  Another trick to use if you don't want navigation points connected is to once again use the LiftExit/LiftCenter Combo.  With some strategic placing, you can put the LiftCenter in a position that you don't want other path nodes to connect to (since LiftCenters do not draw paths). Here is a really lousy (and useless) example that should nonetheless get the point across:
Image

Another tip for bot pathing:  Kickers set to kick bots only (in kicked classes) can help bots perform any trick jump you desire.  In fact, you can even make them cheat and leap 5,000 feet in the air if you so desire...  You can even give them a LiftExit/LiftCenter combo to make them walk in to the bot-only kicker, and they will do it all on "purpose".

I could probably give hundreds of other tips (like adding an invisible "BotBonus" inventory actor with a high MaxDesireability to trick bots to visit areas that otherwise have no incentive - or using BlockMonsters to create invisible bot "stairs"), but I'm not sure I have the time to go over all that.   ;D
Last edited by Lightning_Hunter on Sat Jul 22, 2017 4:26 pm, edited 1 time in total.
For High-Res Unreal skins, click here.
Image
User avatar
Buster
Global Moderator
Posts: 1610
Joined: Wed Jun 08, 2005 3:02 am

Re: Define your paths - a few tricks

Post by Buster »

Lift Centers/Exits works for the big jumps etc. The main use for the collision hulls is mainly for preventing too many nodes connecting together, preventing the spiderweb effect.

Nice screenshots. Did you use my Zahltag to enhance? Just curious. I never did finish the path work for it. At least I got all the lighting, aligned textures and new skybox done.

I was going to mention the Lift Center/Exit trick next. You beat me to it. Lol

Too bad I'm not a master of anything. :P
Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
:-)_~
User avatar
Lightning_Hunter
OldUnreal Member
Posts: 279
Joined: Tue Mar 04, 2003 9:30 pm

Re: Define your paths - a few tricks

Post by Lightning_Hunter »

Nice screenshots. Did you use my Zahltag to enhance? Just curious. I never did finish the path work for it. At least I got all the lighting, aligned textures and new skybox done.
Well, the version I used is for UT99 (I never released it; I simply enhanced it for myself).  I can't remember which version I based it on, to be honest.  I can send it to you if you have UT99 so you can look at it and use whatever you wish.  I spent a lot of time pathing it for fun.  The bots literally visit every single and obtain all items.  I used my own custom "bot bonus" actor to get the bots to visit rooms they otherwise would ignore.
Too bad I'm not a master of anything.  :P
Haha, well - bot pathing is the only thing I probably "mastered", since I pathed thousands of maps for Unreal, UT99, Quake (with the Frikbots), and UT2k4 over the last 15+ years.  I just love messing with bots; the AI really fascinates me in these old games!  I don't think many people share the same interest in bots as I do...  It's nice that you seem to share that interest!
Lift Centers/Exits works for the big jumps etc. The main use for the collision hulls is mainly for preventing too many nodes connecting together, preventing the spiderweb effect.
By the way, I meant to ask you why exactly you don't like the "spiderweb" effect.  Of course, it's always a bad thing when there are too many pathnodes too close together (the fewer pathnodes there are, the better), but there are many circumstances in which a lot of pathnodes are necessary (especially when you add a lot of trick jumps, like in Zahltag).  The AI is smart enough to choose the best route, assuming there are no blatant errors like pathnodes on top of each other, too high off the ground, etc...  I always used a trial & error approach to simply make sure the bots visit all rooms, grab all powerups, and navigate the map thoroughly without EVER getting stuck.  This obviously means a lot of spectating (using slomo 3.0 or higher to speed up the game helps immensely).
Last edited by Lightning_Hunter on Sat Jul 22, 2017 10:05 pm, edited 1 time in total.
For High-Res Unreal skins, click here.
Image
User avatar
Buster
Global Moderator
Posts: 1610
Joined: Wed Jun 08, 2005 3:02 am

Re: Define your paths - a few tricks

Post by Buster »

Gotta love Ghost mode. Hide in the walls and watch the bots. I can't recall the hours I've spent doing that.

:)
Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
:-)_~
User avatar
Buster
Global Moderator
Posts: 1610
Joined: Wed Jun 08, 2005 3:02 am

Re: Define your paths - a few tricks

Post by Buster »

Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
:-)_~
User avatar
Lightning_Hunter
OldUnreal Member
Posts: 279
Joined: Tue Mar 04, 2003 9:30 pm

Re: Define your paths - a few tricks

Post by Lightning_Hunter »

Well, I'm not about to path the whole map over again (it took me a while the first time), but I guess you can technically copy/paste the paths I have from the other map if it's the same layout. How about I upload it for you? I'm sort of done with Zahltag and don't want to mess with it again!

Here is the bot-friendly version:
https://www.mediafire.com/?0qo96fco8xvxmdx

Please note that I made some other tweaks to it in order to be more bot friendly, such as a few faster lifts (otherwise bots get impatient on lifts), tweaked playerstarts, and other stuff I can't remember right now.
For High-Res Unreal skins, click here.
Image
User avatar
han
Global Moderator
Posts: 686
Joined: Wed Dec 10, 2014 12:38 am

Re: Define your paths - a few tricks

Post by han »

What does collision hulls mean? Those BlockMonsters/BlockPlayer/BlockAll? If so, and when their only purpose is to block during paths building, why not just make such an actor that would disappear during game startup?
Your method of blocking paths is interesting, but you can also accomplish this by setting "bOneWaypath" to true in the 'NavigationPoint' properties, then set "bDirectional" to true in the advanced settings.  Finally, rotate the two opposing bot paths so the arrows are pointing away from each other.  They will no longer connect.  However, this method will not work if there is any inventory that will connect the paths (you cannot set inventory to bOneWayPath, due to InventorySpots being auto-generated).
Might be an idea for 227 to eventually add some bNavigationPointOneWaypath into Inventory/WarpZone class and use this as bOneWaypath for the auto created navpoints for those. Eventually either copying of the Inventory/WarpZones rotation, or add another for it.
HX on Mod DB. Revision on Steam. Löffels on Patreon.
User avatar
Buster
Global Moderator
Posts: 1610
Joined: Wed Jun 08, 2005 3:02 am

Re: Define your paths - a few tricks

Post by Buster »

Here's a quick example of where I'd want to control the defined paths. But first why I'd want to.

Let's pretend there's a long staircase with 2 doors at the top (left and right sides) and 2 doors at the bottom (left and right sides). The stairs are long enough to need 3 apples (nodes) down it. Near to top, the middle, and near the bottom. Plus, there's a node at each of the doorways.

I want the bots to be able to go up or down the stairs, not just one way, just as a player would. But most players don't run down the middle of the staircase, nor cross from left to right in the middle. I usually will hug a wall. A good example is the outdoor staircase in the Zahltag maps.

So, I'd place 3 apples down the left side of the staircase and 3 down the right. When the paths are defined the apples in the middle will join up with all the others. To prevent the 2 nodes (left and right) in the middle of the stairs I'd use a small collision hull to block a blue line between the 2 middle nodes.

It's just a way to add a bit of control to which node joins with which, without limiting the direction the path can be taken.

Used in certain ways, it just adds to the realism of the bots movement. Most players don't run down the middle in the open, or will cross an area at certain places. Sometimes you'll need to prevent certain nodes from connecting.

I hope I'm explaining myself okay. I'm trying to.
Gatherstone - Unreal by Design
https://gatherstone.oldunreal.com

OK - he falls
Keep it Unreal !!
:-)_~
Post Reply

Return to “Unreal General Forum”