Construction Informational

-Disclaimer-
This is not a pure tutorial, merely an informational document that represents my opinions only, and not those of Silicon Ice Development.

Much of what I discuss here can also be done with properly placed hint brushes. However, I am not qualified to discuss that part of mapping. I find people understand this method much more then the seemingly complicated hint brush technique, so I thought I'd explain this method.


With that little bit out of the way, I wanted to discuss theories on map creation for Urban Terror. I will skip by texturing, gameflow, routes and layout issues and move straight to theory on q3 and what types of levels are best suited to be made in q3.

This document is broken up into 3 sections: the Casa example, the 3rd party map example and finally the hands-on example. First with Casa I show some screenshots of the methods I used in the creation of Casa that will hopefully help you out. The next section shows what I would do to a particularly open 3rd party map in order to adapt it to the technique I am discussing. Finally in the third section, I have a .map file and a .bsp file with screenshots so that you can open it up in Radiant/q3ut to see hands on how this approach works.

> The Casa example
> The 3rd party map
> The hands on example

 

THE CASA EXAMPLE


It is my opinion that quake3's strength lies in the creation of "room" style maps, levels created as a series of connected rooms of different sizes. These rooms can be extremely large, but the concept is still the same. The reason I say this is based on 2 reasons:

  1. Multiplayer maps need to have r_speeds in the 8-11k AVERAGE range, and it is easier to achieve a beautiful and detailed map if you limit the amount of the map that is rendered at once.
  2. Models in Urban Terror run around 1200 in triangles EACH, so on open maps you are most likely going to have more player models rendered at once then in a less open map, or a map with visibility between areas more properly broken up. It is extremely important to remember this.

So this leads me to my premise, that Urban Terror maps should be made as a set of connecting rooms. The important thing to remember is that this philosophy of layout does not mean you cannot make outdoor maps, in fact I suggest it for most people starting out. The thing to remember is that people playing your map don't know your map is a set of rooms because there are buildings forming the walls, and a sky above you. All of you who like large open maps don't freak out, because there is something to remember here. That is that you can still make open maps, because the size of the rooms can still be large. There is a relationship between the size of the rooms and the amount of detail however - larger rooms - less detail; smaller rooms - more detail.

Continuing this, I thought I would provide some examples of this method in action. It's something I learned from WetWired during the creation of ut_casa. Below are some images from GtkRadiant of Casa, and what I did to block the visibility between areas. Little known fact, I used ZERO hint brushes when making Casa, because they were not needed. (still dont really understand them damn things anyhow.)


Here you can see I have selected skybrushes that I created to form to fit EXACTLY to the tops of the building, and there is a skybrush above these brushes. It is important to note that there must be NO GAPS in this "sky wall" you make. If there are gaps, quake3 will draw things on the other side of this wall of buildings and sky.


Continuing on, I have hidden the top roof skybrush and you can see how I created blocks of sky on the rooftops, and made extremely thin walls connecting them. Even extremely thin skybrushes will block visibility if used properly. (Meaning no leaks or gaps.) Part of the reason I used thin skybrushes was to avoid dark/light splotches on the roofs due to the skybrush emitting light/creating shadows. In a few spots on Casa this is still noticeable however - but with the thinner brushes it is less apparent then with thicker ones. The x areas are not visible from each other, due to walls or a corridor that does not go straight through. I purposefully put a jag in the corridors on Casa to make sure you could not see straight through them. How big that jag is depends on a number of factors, the only way to make sure is to run through your map with "developer 1" and "r_showtris 1" on, so you can see the wireframe render to check what areas are loading at what points.


Another example of how these areas are blocked, with blue jag tunnels between areas. Remember that my main skybrush rests on top of all of this, creating a perfect seal with the top of the buildings and tops of skybrushes and skywalls.

 

 

THE 3RD PARTY MAP


I wanted to give more examples of this method in work on a current map, called "Stoneville." This is a 3rd party map that I chose based upon its construction, not because I think the map is "good" or "bad. I will first show a shot of the map, and then how I would go about building skybrush walls on roofs and walls to help break the map up into sections instead of being entirely open as it is now. Notice that my changes do not change a single bit of the gameplay - but would lower the maps 40,000 r_speeds by a large margin, making the map playable.


First shot, can see all the way across.


With some work, the mapper could have split the map in half, and broke off the left portion into its own area. The passages between the areas might need a zig zag or a corner so you couldn't see straight through, but it would help tremendously. I would have brought the wall in the middle all the way over to the right with a passage instead of leaving it completely open.


Here we can see the area on the left I highlighted earlier. There is a passage under my left arm in this shot that goes over there. You cannot get on the roof between the 2 buildings, so why waste framerate seeing over top of it?


A skybrush to close it off would have been far more effective. On the right you can see where the brush on the wall in the previous shot would connect. With more planning ahead of time, this method is more effective as you can make the skywalls thicker and cover more of the roofs with sky walls.


Shot towards the middle of the map, open still. You cannot really shoot across the map since you cannot get inside any of the buildings or get up into any of them, so you are always on low streets looking upward at the buildings.


Another view of how to break the map in half, same wall shown in the first shot. The only issue would be if the mapper wanted people to get up high in a building on the left and shoot to the right. You can see through skybrushes most of the time if you get up high enough, so it is important to not let people get up eye level with these sky walls.


There is a middle section that you are unable to get up on to, so it is my recommendation that areas you cannot reach be modified so that you cannot see on top of them. There is no point to render things needlessly that people will never see in the course of normal play.


So, I would propose making the fence in the picture taller - and then doing something like this. Since this route is basically a tight area and people will not see over the houses/fences you might as well bring down some skybrushes/skywalls to ensure that this area is separate.


Once again an area that is too open, near the middle of the map.


Some creative skybrushes along the walls and breaking up the roofs would help quite a bit in this area.


Classic case of an area that renders too much. Below me you would NEVER see over the closest buildings, yet the area is left open rendering the ENTIRE back area.


Simply adding a skywall here (with the top sky brush coming down to the top of the skywalls) would eliminate almost all of the stuff that is rendered behind it.

This map was not the best example in many ways since the layout and creation was not geared towards this type of thing. But if you look at the Casa pictures, you can see how when you plan on doing this - with a little thinking this method can be VERY effective.

As a final note, this map was created on one giant flat brush, remember to vary your ground and elevation and not just plop down a flat rectangle and start putting buildings on it. Casa is good example of how to alter the ground and map elevations. Hopefully this will help you mappers plan and construct maps that are really just rooms connected, but do not appear to be. It is important to remember to create the map with enough L, Z and T shapes so that between these areas it is not a straight line of visibility. Try not to be so ambitious with your first maps, having everything be seen from everywhere is very poor map making in most cases. It is quite a bit harder to make an open map play and look well then it is to do the same with a slightly less open map. Be wary of adding too much brushwork, and ALWAYS keep an eye on your r_speeds. Remember that just one fully geared player adds about 1,200 to r_speeds, so if 15 are visible from one spot you will have a serious framerate hit.

 

 

THE HANDS-ON EXAMPLE


I'll keep this section short since most of you are probably getting bored by now :) The main thing I want to get you to do is download the .map and .bsp files and take a look for yourself in game and in editor at some of the things I am talking about. I created a simple map that has 2 mirrored sides accesable from your spawn, the left side is done the way most people make maps, the right side is the method I am trying to start getting people to use. If you truly and fully understand hint brushes this method is something that you wont use as much, but still can find some use out of - but if you are like the majority of mappers and do not fully understand hints, this method can be used to make a decent playable map with only a few tiny drawbacks. It does not work for all styles of maps etc etc, but the basic principles here should help.


In this first screenshot, I am in the left area of the map. Notice how there are trees/polygons rendered behind the building. This is because there is space above the roof between the roof and the skybrush. This does not seem like much, but look at the next screenshot.


Here I have raised my point of view only slightly, and you can see how much more is rendered. Granted this problem could be solved with hint brushes, but this problem can also be solved with my sky wall technique.


On the right area, the skywall that I brought down on top of the roof completely blocks everything on the other side from being rendered. This happens in *most* cases, sometimes visual errors occur if people get up too high and are looking down and through a skybrush. But in this and most instances you can see that the person would never get high enough to do so. With clip brushes or simply the way the map is made - one must prevent people from being at eye level with the skywalls.

Take a run through the .map file in GtkRadiant to see how I built this if you are confused. Hopefully this informational guide will help you, please e-mail comments to mercjohns@hotmail.com.

--
SweetnutZ
May 21, 2002