Unreal Engine 3 is one of my favorite tools to work with. It has enormous flexibility (provided you know what you are doing) and makes other tasks outside of level design (such as particles and shaders) more manageable. I've been working with Unreal Engine 3 for several years now, and during that time I've built a number of multiplayer levels - as well as dozens of "lab" maps for experimentation. There are also tons of resources out there for people to learn and create their own games and content, sites like 3DBuzz.com and the Unreal Developer Network (which is run by Epic Games and where you'll often find the devs interacting with other members of the community.

Below you will find some of my levels for Unreal Tournament III, and a bit of insight as to how I went about creating them.

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw for Unreal Tournament III
My first Unreal Tournament III level: "Thaw"

I decided to make my first public release a small deathmatch/duel level loosely inspired by Fort Casey on Whidbey Island. The map features a WWII bunker on the coast of the Washington Sound in the approaching spring time. It would be a great way to try out a number of the engine's features (post-process volumes, terrain, foliage factory, etc.) and get acquainted with the games many available assets and editors (cascade, matinee, the material editor, and so on). I figured I could also write about my experience with it here for others to read and learn from. So, I did.

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw in The Unreal 3 Editor
Thaw in The Unreal 3 Editor

I was lucky to get a copy of Unreal Tournament 3 from a good friend a while back. After 20-plus hours of tutorials, I started playing with the editor weekly and experimenting with what it might be capable of. I built several test worlds (including an airlock, a tropical island, and several incomplete multiplayer levels) but nothing I'd consider publishing to the net. So, to really get some good background on what goes into making a deathmatch level for UT3 I opened up a number of the source maps that come with the game to pick them apart and see what makes them tick. In particular, I took a look at DM-Biohazard and DM-Gateway (since they both dealt with similar themes and materials). DM-Biohazard for the most part taught me how to think outside the box in terms of utilizing a number of the static meshes that come with the game for world geometry, and the difference a few decals can make. DM-Gateway taught me a bit about utilizing the material editor to create instances of other materials for that cool 'frozen' look, while also teaching me a bit about the post-process volumes and various effects (billboards, particles, etc.).

The BSP foundation came first - or the only portion of the level that would work as an occluder to either side of my bunker. I started by making the level an additive world and built the floor plan, then the walls, and finally the ceiling and second floor using additive brushes. I then began to carve out certain details in the floors and walls using subtractive brushes (mainly for the alcoves in the walls and the sub-floor maintenance area. Once the general floor plan was complete, I began texturing the bunker with variations of concrete until I found something that matched the bunkers at Fort Casey. I threw in a few simple lights and began working on the outside of the bunker - the first items of which were the water and sky.

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw - Building The BSP
Preview of Thaw - Building The BSP

I wanted to do something similar to DM-Gateway's frozen portion, which was to have a transition from natural rock to icy ocean, but I wanted to feature more of the water and make the island bunker feel more like a peninsula. So, as soon as I had a temporary water plane and sky sphere in place I began using static meshes of large, snow-covered rock walls as I had seen done in Gateway. This would be the foundation for which I would later drape terrain over. I needed some natural-looking player containment for the rear of the level, so I used some of the same rock meshes to form a cliff wall that extended out of both directions - creating a cape around the peninsula. Finally, I was ready to begin laying down the terrain.

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw - Sculpting the terrain
Preview of Thaw - Sculpting The Terrain

There are aspects of the terrain editor that still mystify me to this day... like how to I merge vertices, or is it possible to blend more than one material over another using alpha information per vertex like I've done in previous Call of Duty games. Despite those aspects I forged ahead and created the snow-covered landscape that connected the outside of the bunker to the rest of the world. I ended up creating several meshes by cutting and removing certain sections around the bunker and the landscape. I was happy to learn that when it came time to adjust the height and noise of my terrain that the painting tool was very intuitive - much like how I had done in the past with Call of Duty. With the floor plan and structure of my level complete, I was ready to move on to detail and item placement.

For gameplay, I wanted to keep players moving around the world for the best weapons and armor. I also wanted to associate the bunker with survival, so the medium health units are both found within the bunker's domain. Armor is usually more sought after, so I made sure to place it all on the outside of the bunker towards the edges of the terrain (except for one which is concealed as a reward for exploration). Ammo is always tricky... you don't want to over-saturate the game space with it, you don't want to under-supply the players, and you don't want to unintentionally shift the balance of the playing field to one end with one particular weapon. I ended up applying a rule to only provide three pick-ups for each type of ammunition, equally distributed around the level from the location of the weapon itself. This rule only varied when accounting for the expenditure of ammunition for specific weapons (like the Stinger and Link Gun for example).

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw - Adding Decals and Detail Geometry
Preview of Thaw - Adding Decals and Detail Geometry

Like many of the other locations in Unreal Tournament 3, I wanted my bunker to feel as though it had been re-purposed for entertaining combat. Also like Unreal Tournament III, I wanted to bring the location further into the future as the other locations are meant to feel. I spent a lot of time browsing through machinery and other decorative meshes - trying to settle on what a bunker would actually need, what would be the essentials. I focused on lighting, air ventilation, and water. I also settled on supply containers, which meant big reservoir tanks and the always popular crate & barrel supply. Pipes, ducts, and wires were also essential elements for the circulatory systems of the bunker. I kept the item list of decorative meshes for the exterior area to a minimum - primarily for preserving the barren, frozen theme of the landscape - but also to reduce the amount of objects drawing at once for performance. I chose a few rocks that I could use multiples of (with snow shaders applied), and a couple bushels of grasses (which I swapped the material for a dead variation). I ended up making a material instance of ocean water (because I needed an up-scaled version that could be stretched on my water plane mesh), another for a mesh that needed it's glowing colors changed, and two materials I made from scratch - a dark, rubbery-smooth material for the cables that would light well with reduced specular, and a red-glowing light source for this "gun light" mesh I found that looked really cool.

Placing the detail objects where they made sense - both in relation to the environment and gameplay - was challenging to say the least. In particular, making detail obvious but keeping it out of the way and making the pieces all fit without too much scaling was a hassle at times. I tried to re-use the same static mesh in as many ways as possible to extend it's usefulness throughout the level (no professional designer in their right mind wants to use an individual asset only once unless they absolutely must), and in some ways this really helped with thinking outside the box when it came to using a number of these decorations. I ended up mounting big tanks of liquid to the ceiling with the girders that some of the smaller tanks rest on, and using floor grates to cover a number of the walls with another texture behind them. I used a really detailed floor material to swap out with the one in use on the crates - one that didn't show up as dark and was a better match for the color scheme of the level. I also started using more subtractive brushes and did a good amount of clipping/splitting to add material details and trims to the otherwise flat BSP.

Decals were an obvious necessity, since the majority of the bunker's structure was flat BSP and not detailed static meshes. I used a number of default decals that were available, in particular the water stains and the default impact mark were great for using around pipes at spots where they met with the floor or walls. I also used one of the dirt decals to help distinguish one of the floor levels from the others.

On the outside of the bunker, I got an idea to use the same distorting icicle material as part of a "decal mesh" over a number of the existing static meshes. I managed to clone and offset these meshes by a few units, then apply the icicle material to them, making the rocks underneath look as though they were encased in a thick layer of ice. I also used the terrain to my advantage where it met up with the concrete floor tile meshes of the bunker by slightly elevating the snow to peek in between the cracks of the tiles. In addition to this, I used more of the "ice meshes" as transitional elements between snow and concrete (a trick I had seen done in DM-Gateway).

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw - Exterior Lighting
Preview of Thaw - Exterior Lighting

The next detail was lighting. One of my favorite views of Washington is in the morning when riding the ferry, and the weather is overcast. The wind is calm, fog rests on the water, and faint silhouettes of objects beyond are barely visible. This was going to require a collection of tricks which included multiple directional light sources, height fog, and a post process volume. The directional lights came first, orienting them all in a similar (but not parallel) orientation and with similar values of intensity and color (a cool grey). The height fog came next, setting the density and color to mimic light scattered through the air and allowing the sky to be barely visible in the background. I also added a number of simple 2D cards with fog materials applied to them to ad a cheap layer of density in certain areas (mainly around some of the cliff peaks and near the waterfall).

The last part of the puzzle was the post-process volume. I enabled the DOF (Depth Of Field) and blurred the horizon to give the fog a more realistic distortion. I also modified the color values - desaturating the scene and brightening some of the darker areas to remove some of the contrast that comes with looking through fog. This also meant that I had to place post-process volumes inside the bunker, to make the color and contrast more appropriate for indoor lighting. I shifter the colors to a warmer, more saturated feel, kept the settings I used for the DOF effect, and disabled the motion blur. I pushed the transition times for the volumes to 1.2 seconds, making the fade between indoors and outdoors less jarring and more natural.

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw - Interior and Bounce Lighting
Previer of Thaw - Interior and Bounce Lighting

Lighting the interior was less problematic. I still wanted to relay how cold the overall temperature was, but also to give the deeper interior of the bunker some warmth. I felt the best way to do this was to use cooler white fluorescent lights on the ceiling and around the upper levels (along with some small, cool red lights for accents), and use warmer yellow work lights and red-hued fluorescents for the lower areas close to the floor. This worked well as it allowed me to use the red-colored fluorescents as the guide lights for leading players to the lifts, as well as being the light sources on the dynamic channel to make them visible.

Bounce lighting was done as a second lighting pass, and I covered both the interior and exterior with small point lights near spots that I felt would be particularly reflective (i.e. ice). This meant that I could regain some of the contrast I had lost from desaturation and fog by introducing more colors reflected by water and frozen glacial rocks. I placed a number of these cool blue "highlights" just off the coast of the peninsula and in a couple of the water holes on the south-eastern side of the map, as well as near any face where ice was present. For the interior spaces, I pushed the falloff exponents higher and more focused to create hot spots from focused light sources.

Sounds and particles are often overlooked when making a map, but they are as vital to gameplay as lighting and as important to the environment as static meshes themselves. To start, I looked for particles that could relay how cold the atmosphere was, and what sorts of objects could be giving off particles. Certainly the vents from the air ducts could be pushing out condensation, and the waterfall could use some mist where it meets the ocean, but what about wind and snow? I decided to concentrate on the effects that helped relay the chill in the air. This meant placing particles on the vents, foggy cones of light in front of the major light fixtures, and rolling mist on the ocean where the waterfall pours in. As for other effects, I used simple sounds to relay water drips, machines humming, and gentle winds blowing between the craggy rocks around the shore.

"Thaw" (DM_Thaw - Multiplayer Map)

DM_Thaw for Unreal Tournament III
My first Unreal Tournament III level: "Thaw"

The last part of creating this level was collision and performance. Most of the collision work had been done for me, seeing that foliage factory meshes have none, and most of the meshes I used were either per-poly or had their own simplified collision models. However, there were a few instances where I went through and changed some objects to COLLISION_WeaponOnly and COLLISION_None just to simplify some of the indoor spaces. I did this as well to all of the background meshes and all of the ice coverings I had made. There were a few places where the player didn't traverse over terrain or objects as well as I'd hoped - and I wanted to smooth out collision over surfaces like stairs and the like - so in those locations I placed a blocker brush as a ramp for players to easily glide over.

Performance was a challenge, since there were a couple places (despite good effort) where you could see roughly 70% of the level. So I started going through groups of objects by type and manually setting the cull distance. This wasn't difficult since the map is small and the majority of different objects all resided within the bunker itself - especially small items like signs, cables, wall ornaments, pipes, and so on. It became more difficult when moving outdoors and setting these values to some of the landmark items around the terrain. Most of these objects had to have their cull distance values set manually, or set to zero and toggled to ignore culling volumes. After all that fuss, I placed a culling volume into the level anyway and set it to a value almost equal to the length of the peninsula, just to be cautious.

Beyond that, I also set the detail level for a number of objects so they would be excluded from rendering on low-end systems. The first items to be excluded to Medium and High detail settings were the floor tiles, signs, and particles. After that I excluded the ice meshes, cables, and several of the big metallic bolt plates on the walls and ceiling of the bunker. Soon I was down to individual pipe couplings and non-essentials like decals. This saved me about 5-10 frames-per-second in some areas (which is a lot considering how under-powered my PC is).

In the end, the level took a little over 3 weeks to complete. Breaking it down; it was about a week to get the BSP and meshes into the world, the second week spent on gameplay and details, and the last week on lighting and performance issues. Not bad for my first playable level, especially when you consider I scored a 70/100 at UT Unlimited. I imagine it would have taken a lot longer had I been creating my own assets (static meshes, textures, sounds, particles, etc.) from scratch, but in a standard production it takes anywhere from 6-to-12 months for a level to reach completion. So, yeah, I'm a little proud of myself. You can check out the finished level in the screenshots below, and check out the Downloads page for more free multiplayer maps to download. Enjoy!

DESCRIPTION: This is a multiplayer level for Unreal Tournament III. To play this level you must have Unreal Tournament III installed on your PC. Extract the ZIP file contents to the Unreal Tournament III CustomMaps folder:
(My Documents/My Games/Unreal Tournament 3/UTGame/Published/CookedPC/CustomMaps), and select the level from the Instant Action menus. This level is compatible with most game types and mutators included with Unreal Tournament III, but may potentially not function while running other modifications.

Shortly after creating Thaw, I felt the need to build something warmer and try creating a Subtractive BSP (Thaw was an Additive BSP) to get a feel for the difference in construction methods. A cavern was the simplest and obvious choice for me. There have been a number of limestone and granite caves that I have visited, as well as a couple abandoned mining shafts which were good reference for incorporating the look and feel of the level. In the past I'd been inspired by locations such as the abandoned Calico Mine in California (the actual mine, not the ride at Knott's Berry Farm - although that too ended up becoming part of the inspiration for some of the decorative aspects) and so I pulled from those references. The first thing I needed was the BSP, so I began by setting up a main room and two smaller rooms, then a few hallways to connect them once I felt the distance apart was good. Since most natural caves have fairly uneven walk-able surfaces, I offset the heights of the floors and ceilings by a minimum of 64 units and a maximum of 256 units.

Orechasm (DM_Orechasm - Multiplayer Map)

No screenshot for DM_Orechasm was available, so...
I don't currently have any screenshots up yet for this level, but you can check them out on UT Unlimited.

Next I would need to lay down some terrain for the floor so that I could navigate between all the rooms and their otherwise unreachable offsets. However, I was conscious of the fact that making the entire floor out of dirt would add to the repetitive quality of the overall map, and so I decided to leave one of the side rooms completely flat without terrain. I also planned on having other elements for the floor, such as bottomless pits, pools of water, and one-way only drop-offs that would offer tactical advantages in gameplay, as well as provide valuable landmarks for navigation. The bottomless pit would be the only portion o the mesh that would need any cutting, so it was a fairly simple task to get all the intended rooms and hallways connected and looking natural. The next phase would be the walls and ceiling.

I began doing what could almost be considered "research", looking at other levels in Unreal Tournament III that featured natural terrain and how it was built. I also took note of what assets were used so that I would have a pool of resources to choose from. There were a number of large and small rock meshes that could be scaled, flipped, and rotated for a number of unique combinations that were also a natural fit. I briefly played around with some of the "crystals" included with some of the cave elements but decided to leave them out, because they began to evoke a more "fantasy-like" feel than what I originally was shooting for (this turned out to complicate things later on). For the non-terrain room, a more artificial theme would be necessary to set it apart from the rest of the environment. I looked for a number of "utility" and "support structure" items that had a sub-structure quality to them... like plumbing under a building. There were a number of pipes, steel beams, supports, and some walk-ways that I figured would be good for elevating the path from the actual floor and allow me to network more elements underneath.

The next big hurdle would be lighting. Lighting is difficult without a primary source, and has the potential to look silly or very out of place. I had mentioned earlier that choosing to not use the crystals would complicate matters for me, and with regard to lighting this was definitely true. Those crystals would have very easily become consistent natural sources of light throughout the cave, but because I had chosen to go with a more realistic feel it was out of the question. Instead, I turned to the set dressing that the Calico Ghost Mine ride at Knott's Berry Farm in California used for a number of places around that themed area of the park - they incorporated a number of gas lamps and lanterns hung around from posts and support beams, as well as nailed to walls or even sitting on stacks of boxes and barrels. There is also a section of the Train Ride at Knott's through the mine where the cave is filled with bubbling pools of water, sulfer, and phosphorescent stone - which gave me some ideas for adding a little color to the lighting scheme and allowed me to get away with having some darker sections throughout the caves. For the structured interiors, I chose some basic spot lamps to embed and hang from the ceiling.

After the lighting situation was taken care of, the cave needed some ambiance. This required two basic elements; sound, and particles. The sound was easy enough, as UT3 has a fairly decent-sized audio library to pull from. Particles by themselves were also not a big deal, but the challenge for both would be to get them to work together to add some life to the caves. I had already placed a ventilation shaft into the map with a spinning fan to supply some movement to an otherwise static area, but I planned on having a variable-speed loop of a minor earthquake every 45-60 seconds throughout the entire level. During the quake, the camera would jitter, the earth would rumble, and dust would fall from the ceiling all at the same time. All of that would require some setting up in Kismet, which wasn't a problem. The "Camera Shake" was probably the most difficult thing to set up, because I had to hunt down where and how it was being called and used (which turns out you need a pre-recorded camera motion track to play).

Once the layout, details, lighting, sounds, particles, and other ambient elements were finished, it was time to start balancing the gameplay items and getting the bots to run through the level with confidence. Thankfully there were no lifts or complex navigation that would be difficult for pathing (not that setting up pathing on a lift is difficult, just annoying). Getting everything working and playing right took a couple of days play testing and making adjustments. Overall, the entire process took roughly 2 weeks. I even managed to get a decent review on UT Unlimited. You can download it from their site, or down below.

DESCRIPTION: This is a multiplayer level for Unreal Tournament III. To play this level you must have Unreal Tournament III installed on your PC. Extract the ZIP file contents to the Unreal Tournament III CustomMaps folder:
(My Documents/My Games/Unreal Tournament 3/UTGame/Published/CookedPC/CustomMaps), and select the level from the Instant Action menus. This level is compatible with most game types and mutators included with Unreal Tournament III, but may potentially not function while running other modifications.

You can also check out the Downloads page for more free levels and maps for other games. If you give it a try, send me an e-mail and let me know what you think!