As we all know, a believable setting for a map is extremely important. Even if you've created a 31st century spaceship made entirely from transparent goo technology, it should ideally still come across as a believable location.
Something Counter-Strike does to assist with making a map feel more like a real location is allow level designers like us to give seperate areas in the map place names or "nav locations." These are the little names which appear below the radar, next to a teammate's voice comm or chat message and most fun of all - what bots will shout about.
Setting these locations up isn't especially difficult once you get your head around it, but it can be quite time consuming so go and make yourself a cup of coffee, grab a bun and get prepared to put in some effort.
Firstly, like cubemaps and bot navigation meshes, this part of the mapping process is done in the game engine. Start a private server, load up your map and activate
. It is important to note here that this tutorial assumes you already have a navigation mesh generated for your map. (
nav_generate in the console.) To save yourself some time later, if you've noticed while playing with bots that they dont use some parts of the map, go to these locations, look at the floor and type
nav_mark_walkable and then remake your navigation mesh.
Once in the game, make sure you have spawned and then proceed to type the following into the console:
If you've never done this before, what you will see when you close the console will make no sense to you at all. Don't worry. Move your player around a bit, looking at the floor. Do you see it's been devided up into squares?
This is what your map looks like to a bot.
The squares show what a bot considers to be walkable space. You might see some other shapes as well like triangles or diamonds. Don't concern yourself with them. They're just locations that bots will interact with differently by performing actions like crouching or jumping.
Anyway, move to your first location. Lets use CT spawn as an example.
Bring up the console and enter
. This command will take you into the nav location editor.
Now it's time to name your location. Use this console command: `nav_use_place [location]` where [location] is the place name. For this example, the command I entered was
Simple console commands are all you need.
Here's a complete list of possible place names. Sorry to say you can't make up your own.
Aim your cursor at the first rectangle you want to designate and enter
into the console. The square should turn green. Without typing anything else, move the the cursor to a different square. It will also change. In this painting mode, every square you look at will be designated simply by looking at it, allowing easy designation of even large areas.
Squares turn green when they're assigned a name
To leave paint mode, simply enter
To move onto your next zone, simply repeat the process from the
Once you're satisfied that every place which needs a name has one, enter
into the console and you're done. Test by starting a new server and running around.
To recap, the console commands to use, in order, are:
I can't see anything wrong with it!
And not just use a Brush-based Ent ?
you even included the par to make your bots less stupid. Bravo Hunter
And not just use a Brush-based Ent ?"
dude, just calm down, it ain't that hard...
i mean come on, it's very easy to use, not to mention how awesome it is to have a ingame editor. (kinda like with crysis's editor, sandbox 2)
if you find it too inconvenient to type in all the commands, just bind the commands, like i did, i bound delete to "nav_delete" so i can easily delete parts.
btw, nice tut, even though i already knew how to do this.