NICK.MOHILCHOCK  
Designer   
Main Page
Resume & Contact
Projects
Unreal Engine 3
F.E.A.R. 2
Project Offset
Call of Duty 3
Call of Duty 2: B.R.O.
Call of Duty: U.O.
Quake III Arena
Design
Miscellaneous
Downloads
F.A.Q.
Website Ver. 4.1
1024.768 [32bpp]
Unreal Editor 3 - Last Updated: April 27th, 2009   Checksum... OK

          Unreal Engine 3 is quickly becoming 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 accessible.   I've been spening a few months now working with Unreal Tournament 3, and during that time I've built several test worlds - learning as I go and studying the video tutorials on 3DBuzz.com.

          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" 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 few months 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.

Preview of "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.

          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.

Preview of "Thaw" - Creating Terrain
Preview of Thaw - Creating Terrain

          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 wanto 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).

          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 3, 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).

Preview of "Thaw" - Adding Detail
Preview of Thaw - Adding Detail

          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 hightening 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.

          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 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.

Preview of "Thaw" - Setting Up Lighting
Preview of Thaw - Setting Up Lighting

          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.

Preview of "Thaw" - Adding Particles
Preview of Thaw - Adding Particles

          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).

Preview of "Thaw" - Adjusting Performance
Preview of Thaw - Adjusting Performance

          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 a complete, playable level.   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 kinda proud of myself.   You can check out the finished level in the screenshots below, or you can be adventurous and download it from the Downloads page.   Enjoy!

"Thaw" By Nikolai Mohichock
Thaw
Thaw
Thaw
Thaw


"Sample Sity" - The Living Learning Level

          One of the first test levels I built was intended to be something comepletely different, but has since been my testing ground for all sorts of things.   It's a constantly changing, living, learning city block where I can try out all kinds of fun with Kismet, Matinee, and the other tools un the Unreal 3 toolbox.   I like to show it off - not because it plays great or is unique in any way - but rather to show off whats possible in just 2 days of work.

"Sample Sity" in The Unreal 3 Editor
Sample Sity Preview

          I took one of my existing incomplete Capture The Flag maps and re-tooled it into a "Sampler" - or rather, an example of different disciplines all exercised using the editor and it's assets.   What I started with was a general floor plan and a spawn point - no prefab objects, no textures, no lighting, nothing else.   The original idea of the level was to create a city block that would represent the base for one team (with streets that would allow vehicles), then mirror it to create a base for the opposing team.   First, I closed off all the streets and openings where the level was meant to join up with it's mirror image and began applying simple textures.   I began browsing through a number of assets that matched those textures and tones and began propagating the space with facade buildings, props, and decals.   Then I wanted to bring some life to the city; so I took a taxi cab prefab and used Matinee (the Unreal 3 cinematic editor) to animate a route that the vehicle would drive.   Next, I began lighting the space by playing around with different values using the real-time lighting system in the editor.   After that, I began placing all the game-specific objects into the world (weapons, health, path nodes, spawn points, etc,) and played through the space a few times.   Finally, I did a second detail pass and placed more props, decals, and non-essential lights into the scene - being mindful of performance.

Preview of "Sample Sity"
Sample Sity Preview

          While I'm not the biggest fan of speed mapping, I think this level is a good measure for potential in regard to what the editor is capable of (especially in the hands of a novice user like myself).   I'm continuing to work on the foundation I built, and learning more as I go.   As to whether I will eventually release a polished, public version of the level is so far unlikely.   However, you can check out some screenshots of the end result below.   Questions and comments are welcome as always.

"Sample Sity" After 2 Days
Sample Sity
Sample Sity
Sample Sity
Sample Sity

Back to top

Website contents © 2009 Nikolai Mohilchock