Jump to content
The Dark Mod Forums

Newbie DarkRadiant Questions


demagogue
 Share

Recommended Posts

55 minutes ago, OrbWeaver said:

...But perhaps testing with r_showPortals and r_showTris would prove me wrong.

Perhaps you guys already know this but if not, idSoftware recommends this svars when testing visporteling:

Quote

To test the visibility in your own map, use the following cvars:

r_showTris 2

r_useScissor 0

r_showPortals 1

They really stress disabling scissoring, you can see it in bold at the page bottom.

Quote

Remember, always test your portals with scissors disabled!

 

Edited by HMart
Link to comment
Share on other sites

As I might be needing this to do some testing I figured I'd ask: Is there by chance a console command that can be used to trigger an entity on the map? So if for example I type "thetriggercommand trigger_relay_1" that relay fires as if triggered by a trigger_multiple entity for instance. Never heard of one but the team is intuitive so I imagine it might be there! It would be useful to test some effects before I have their proper triggers in place.

Link to comment
Share on other sites

5 hours ago, MirceaKitsune said:

As I might be needing this to do some testing I figured I'd ask: Is there by chance a console command that can be used to trigger an entity on the map? So if for example I type "thetriggercommand trigger_relay_1" that relay fires as if triggered by a trigger_multiple entity for instance. Never heard of one but the team is intuitive so I imagine it might be there! It would be useful to test some effects before I have their proper triggers in place.

It'd be new to me, but maybe you can write your own general-purpose script and call it from the console? So

void trigger_entity(entity e)
{
	sys.trigger(e);
}

And call it from the console with:

script trigger_entity($trigger_relay_1);

Would be interesting whether something like this works.
Note that once you call a script from the console, you can no longer save and load in that session.

 

@datiswous The startpack sounds like it'd still be relevant today, basically containing all those premade entities to use.

Another option you have is to use the mapper_tools prefabs, which are similar but less substantial in giving the mapper an array of things he might need.

  • Like 2
Link to comment
Share on other sites

Another one I forgot about: Is it possible to set an objective to become visible once another objective is failed or completed? I see that till now I had to trigger an atdm:target_setobjective_visibility to make new objectives appear after I complete existing ones, but it feels like this shouldn't have to be needed for inter-objective dependencies.

Link to comment
Share on other sites

Here's one I recently found very worth asking: During testing my maps, I find that a lot of func_static models will cause the AI to get teleported on top or bend in weird ways when touching the model or even break pathfinding. At the same time many func_statics will not cause any bad interaction with an AI. Is there a standard way or guidebook to knowing which do?

I mainly ask so I can easily know what I need to draw a monsterclip brush around. For instance I found I need to monsterclip several stairways and pillars and all other sorts of architecture, yet railings and some furniture are fine. I can't draw a brush around every single map model I place, so it would help to have a more standard prediction of what AI will have issues touching.

Edited by MirceaKitsune
Link to comment
Share on other sites

@MirceaKitsuneAIs can easily walk over things like plates and bottles lying on the floor, and they can automatically maneuver around moveables. Anything else has significant potential to hobble/teleport or even permanently snag AIs if a bit of it is sticking out of the MC. The good thing is you don't need to MC individual models, you can MC them as groups.

You can see how I do MC in Perilous Refuge, such as in the warehouse:

image.thumb.png.b5e0bb365ecc192dc5cd2dfe09d0c3c3.png

Basically the MC is drawn from floor to ceiling so that you don't have unnecessary pathing islands on top of them. Once you have the first brush in place, you can just copy it and adjust its dimensions on a 1 or 2 unit grid. The smallest gap or nook an AI get into is 33 units. Stair steps can be done simply as ramps.

If done well enough, the FM will thank you for it by not having severe pathing issues.

  • Like 2
Link to comment
Share on other sites

Thanks @Dragofer for that info! Which brings up one thing I should correct then: I drew monsterclip brushes to encompass the model and not up to the ceiling, might be best to bring it all the way up then. Still curious which models will generally require it, and which meshes are safe for AI... for instance I don't seem to need to MC handrails or door / window frames.

The real issue I have though is with complex meshes the AI is meant to navigate... namely stairs, and namely the large mansion stairs model at that (models/darkmod/architecture/stairs/mansion_stairs_01b.lwo). I tried placing paths on it once but the AI got stuck under the stair instead, can't go up or down those. At the moment I monsterclipped the whole thing which solves that, but if an AI tries to chase the player across floors it would become obvious they cannot.

Screenshot_20210620_145114.thumb.jpg.280c0b88e6545c3adeb6604cc326628d.jpg

Onto another little question too: I was wondering how you can make a human AI wonder around randomly without any path nodes, to give a bit of detail to civilians and other decorative AI's who don't need a predefined path. I tried the "animal patrol mode" setting which is the only one I'm aware of, but it has a very wrong pattern: The AI randomly walks and runs into all sorts of directions... it doesn't look like they're idly walking around but more like they're having a psychosis attack. Is there an additional option or an equivalent to animal_patrol but without the running and more suited for idle human characters?

Link to comment
Share on other sites

"Random Interesting Things".

Basically, from my understanding anyways, you set up path points, and the AI will go them pseudo randomly, like inspect a painting, stop in front of a clock, look at random shit.

I always assumed I'd taste like boot leather.

 

Link to comment
Share on other sites

@MirceaKitsuneAIs are not able to walk on top of entities unless there's something worldspawn (i.e. monsterclip) at most 30 units beneath the surface. So for those stairs you'll need to put in MC ramps for the steps and big MC blocks reaching up to the landings.

You'd want to MC the large majority of solid entities. Things like doorframes don't need it because they hardly stick out from the worldspawn walls and the AI's collisionmeshes aren't as wide as their AAS, but railings definitely, not least to protect AIs from falling off the stairs if they start running.

MC and worldspawn basically says where an AI may or may not go. If you tell an AI it can go to a space that's already occupied by a solid object, they have a good chance to get stuck on it.

  • Like 1
Link to comment
Share on other sites

RE stairs: I had been putting ladder textures as ramps on certain staircases where the AI was having difficulties climbing. But my beta testers clued me in that was the wrong thing to do, because of player behavior oddities.

So I could either go to:

1) Ramps of monsterclip, as Dragofer suggests here

2) Ramps of clip, to also ease player movement

3) Ramps of solid nodraw, which some prefabs have, to also ease player movement

4) Convert certain stairs back to worldspawn from func_static. I originally converted these to func_static to help avoid rendering problems when impinging adjacent worldspawn walls.

I'd of course like to make it easy for the player to both enter and leave an ascending staircase without having to do a jump. The ladder texture was contributing to this problem. But I've seen it without that texture too, typically in narrow, wall-hugging staircases. And there's always the question in my mind, is it best to extend the ramp fully from lower landng to lip of upper landing, or cut it shorter, from the protruding edge of the lowermost tread to the edge of the uppermost (non-landing) tread?

Thoughts?

Link to comment
Share on other sites

2 hours ago, Geep said:

3) Ramps of solid nodraw, which some prefabs have, to also ease player movement

Definitely this if the player is having trouble navigating the stairs or other map features, though for the player it's easier to have steps than a ramp: players need that for actual physics, while AIs only need MC ramps to tell them they're allowed to go there. Simply encase each step in a brush that reaches down to the step below.

You can keep the nodrawsolid steps as worldspawn, then you won't need to MC the steps anymore.

  • Like 2
Link to comment
Share on other sites

I know AI can't walk on entities, but was under the impression they can walk on top of func_static models. Granted they aren't overly complex in shape, that seems to be what's causing most issues. So should I assume anything func_static is not navigable, only brushes are?

As for random interesting things, I think I already use that: I target many path_corner's to multiple path_corner's, which has a random possibility of going to one or the other.

Link to comment
Share on other sites

@MirceaKitsune func_statics are entities, so there's no distinction there. AIs can only walk on anything that's an entity if there's some kind of solid worldspawn brushes reasonably close to the surface, i.e. MC or nodrawsolid or a solid visible texture. Brushes converted to func_static will be counted as entities.

RIT is basically so that you place central nodes (usually a path_wait with wait 0 and wait_max 0) that target multiple different nodes in a room representing various activities i.e. sit in a chair, look at a painting, warm hands at a fireplace. This means whenever the AI goes into that room it does something different, usually, from the last time so that they appear more human.

  • Like 1
Link to comment
Share on other sites

That gives me the full picture, thanks @Dragofer for the detailed clarification! Only one more thing I should probably know on that: Do worldspawn patch meshes count to the pathfinding algorithm or just brushes? Asking since I use patch terrain... of course I have a normal brush right under it so it should work regardless but it doesn't hurt to know.

As for RIT that sounds like what I've been doing all along so I didn't miss out. I do it by having paths target multiple paths which results in random actions, often times the AI going to different rooms or looking at different things in each room. I don't feel like placing paths for some decorative AI that only need to wonder around however, could still use an alternative to animal patrol mode for random movements (without the running around like crazy).

Link to comment
Share on other sites

2 hours ago, MirceaKitsune said:

As for RIT that sounds like what I've been doing all along so I didn't miss out. I do it by having paths target multiple paths which results in random actions, often times the AI going to different rooms or looking at different things in each room. I don't feel like placing paths for some decorative AI that only need to wonder around however, could still use an alternative to animal patrol mode for random movements (without the running around like crazy).

I know what you have in mind, but there is no equivalent property for human AI.  The best you can do is the RIT method as recommended in the posts above (and you seemingly have already applied the method yourself), but that requires you to use many path entities that you obviously want to avoid.

However, if there was a patrol mode property for human AI,  it would cause a serious gameplay problem:  players could not learn the human AI behaviour anymore and that would lead to a lot of frustration when trying to ghost the mission.

Link to comment
Share on other sites

5 hours ago, JackFarmer said:

and that would lead to a lot of frustration when trying to ghost the mission.

I suppose you could just have more ways in the environment to circumvent the psychotic characters. Would be tougher if used in really tight areas, but then it's a map design conundrum. Would be interesting to try out a level with such AI.

I wonder how many mappers even make a conscious effort to support ghosting. It's not an aspect that matters to me, since I don't ghost unless I'm forced to, but it's something I thought about when watching some of these mapping tutorials.

Edited by roygato
Link to comment
Share on other sites

I only intended to use random patrols for friendly AI as an easy decoration. As far as the psychotic movement that occurs when you set animal patrol mode on a human AI, thinking I might be able to make use of that anyway... for instance to have a prisoner that lost his mind in a cell or something! Will see what I might do with it.

  • Like 1
Link to comment
Share on other sites

Answered my own question: The path finder will ignore patch meshes as well. Noticed as the AI didn't attempt to chase me down a taller slope, just stopped and started throwing rocks as if something was in the way. Luckily this was easy to fix by simply adding a diagonal surface under the patch, AI chased me properly afterward.

Screenshot_20210622_055916.thumb.jpg.8a8be0e6e50ba17bd35ea88543decd5a.jpg

Link to comment
Share on other sites

3 hours ago, MirceaKitsune said:

Answered my own question: The path finder will ignore patch meshes as well. Noticed as the AI didn't attempt to chase me down a taller slope, just stopped and started throwing rocks as if something was in the way. Luckily this was easy to fix by simply adding a diagonal surface under the patch, AI chased me properly afterward.

 

Must have overread this. Using MCs is the better choice, see running time 25:00:

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...