Ilya Ivanov shared a detailed breakdown of the DM_Outblack project, a custom map for Unreal Tournament, discussing visualizing sky, lighting, rocks, and architecture using Blender, Unreal Engine 5, ZBrush, Houdini, and Substance 3D.
Introduction
Hello! My name is Ilya Ivanov, and I'm a Senior Environment and Level Artist. You can check out my work on ArtStation. I'm a huge fan of First-Person Shooters, Level Design, Environment Art, and Indie Game Development. I have over nine years of experience as an Environment/Level Artist, working on various games, technologies, and styles. My passion for game development has never been stronger, and I hope to continue working in this field for many more years.
I currently work at NetEase Games in Tokyo, Japan. In addition to my main job, I mentor passionate artists and host streams dedicated to creating game graphics. I'm pleased to present the DM_Outblack map for the Unreal Tournament.
This large-scale project was created by a team that includes myself as the Environment Artist, Art Director, Level Designer Denis Kuandykov, and Concept Artist Dmitry Pronin, who joined during the architectural design stage.
Backstory
Unreal Tournament has always been the game I could play endlessly. The music, art style, and dynamics – everything was at an incredibly high level. UT2004 and UT3 are especially dear to me, as they bring back so many memories of LAN battles with friends, endless matches on Onslaught maps, and simply relaxing evenings spent playing with bots.
Back then, I wasn't very interested in 3D yet and had only heard that people were creating custom maps and even full mods.
When the new Unreal Tournament was announced, I was thrilled, like a child receiving a birthday gift! I followed every stage of development and every announcement. By that time, I was already working as a 3D Artist and increasingly dreamed of creating my own map or at least an asset for the game, especially since the developers wanted the community to actively participate in the process.
This is how I developed a huge interest in level design. I consumed all the resources and articles on the topic I could find, but due to my lack of experience with prototyping, I put the idea of creating a map on hold for later.
The Level Design for Games course by Emilia Schatz completely transformed my approach to level design. Huge thanks to Emilia for this course! It gave me confidence, showed me how essential design knowledge is for an environment artist, and helped me organize my scattered self-taught knowledge. I took the course with my good friend and amazing level designer Denis Kuandykov, who later developed the level design for DM_Outblack.
Inspired by a new idea, I got to work and created the map DM_LastBattle, influenced by the map designs from the Halo series. Unfortunately, my "last battle" with this map ended in losing all the source files halfway through development, and this story repeated itself when I was already working on DM_Outblack – the entire project was lost, leaving only WIP screenshots. So, friends, make backups as often as possible!
But it's not all bad! The project DM_Out black was born from DM_Last Battle, and that's what I want to tell you about. After all, this experience was not in vain!
It All Started with the Design
The most important element in creating an engaging and captivating map for any game is thoughtful level design. Here, I'll hand it over to Denis and the ideas he contributed to the project. During the development process, we spent countless hours playtesting to refine and validate both the basic and experimental principles. But most importantly, the map was truly fun and enjoyable!
The main idea of the level was an arcade design with a fast and "flowing" feel that creates a sense of continuous movement. It was more of an exploration of the possibilities of this type of spatial design. We focused on two key aspects: experimenting with the zoning of different types of arenas and creating a "smooth" movement throughout the level.
At the core of the level is a cross-shaped "Bridge" – a central strip that divides the space into left and right sides, connecting two arenas with different functions. One of them is the circular indoor arena Centrifuge, designed for fast-paced close combat. It features three "bottlenecks" for entry and exit, encouraging aggressive encounters. The second arena – the Open Area with the "Bridge" and water – is intended for long-range battles, with two small enclosed spaces at the edges.
These two zones are connected by a narrow "bottleneck" that unites the main gameplay routes on the map. On either side of the center are two nearly symmetrical areas that are perfect for mid-range battles. This zoning and variety of spaces make the map versatile and engaging for players with different play styles.
With this logic, we placed all the pickups and weapons around the map. At the ends of the Bridge, players can find sniper rifles, perfect for long-range combat in open areas. In the two symmetrical zones on the edges, there are miniguns, plasma rifles, and assault link guns, allowing for effective fire at mid-range. In the narrowest spots and within enclosed spaces, players can find rocket launchers, flak shotguns, and mortars, creating dynamic close-quarters engagements.
This placement makes the gameplay organic: the weapons available correspond to the surrounding space and help players effectively utilize them based on the situation.
The central straight Ridge is the most dangerous spot on the map, as it combines both open and enclosed spaces at close range. Here, players are constantly vulnerable to attacks, as opponents in the corresponding arenas can easily ambush them. On the ridge, players either expose themselves to sniper fire or are forced to "storm" narrow passages with weapons that may be ineffective at close range.
This trajectory is designed with the risk-reward principle in mind: the golden path where the most powerful pickups are located. On the ridge, players can find a mega health pack, an armor vest, a berserk, a damage multiplier, and, finally, the Redeemer. By racing along the ridge, a player can collect the entire set of bonuses at once. However, this requires high stamina and determination, as opponents along this path pose the greatest threat.
Players in various areas of the map can also gather pickups, although collecting the full set of all modifiers will take more time. For those who prefer a "health" strategy, there is a mega health pack located on the Bridge. Players can take advantage of this pickup by navigating across the map – either making a large loop around its perimeter or cutting through the center to regularly replenish their health. This route allows players to maintain survivability while playing more strategically, even if they aren't rushing to collect all the pickups at once.
This level not only combines the practice of organically merging various types of arenas but also serves as a testing ground for studying "flow." All zones and arenas are interconnected: players can engage in "fire dances" over a large radius of the arena or transition into a "combat mosh pit" in more compact map areas.
The pathways on the map have no dead ends and seamlessly transition into one another, thanks to open spaces and narrow passages (bottlenecks). This creates dynamic interactions between players and maintains active gameplay, allowing everyone to find their own fighting style based on the situation.
From the experimental gameplay and the risk-reward on the central Ridge, it's worth noting the unique dynamics of playing inside the Centrifuge and on the Bridge. The Centrifuge is aptly named: thanks to the movement mechanics in Unreal Tournament, it allows players to run endlessly around the edge of the ceiling, creating a vortex effect. This vortex not only adds dynamic but also serves as part of the trajectory for picking up health packs, allowing for a quick ambush on the Redeemer spawn. However, this approach is quite risky, as there is a chance of falling into the abyss.
The Bridge, on the other hand, is an open area that can be fully shot through. This is where the Invisibility power-up spawns, which can be enhanced by diving into the water – a player in the water is much harder to spot.
We organized a playtest of the level with several experienced designers, including Mikhail Kadikov and Vasily Skobelev. During the testing, they gave positive feedback on the movement within the map, noting its smoothness and unique features while also suggesting a few improvements that could help players better understand the map's functionality. Overall, the playtest atmosphere was engaging, at times distracting us from taking notes and making assessments.
Inspiration
I want to express my immense gratitude to the original teams behind Paragon and Unreal Tournament. Their work has been an endless source of inspiration for me, which I relied on when creating the style for this map.
From the project's beginning, I decided I wanted to create a gloomy and melancholic map. For the overall atmosphere, I chose locations in Iceland, and as a reference from a game, I used Death Stranding. These elements helped to create a unique and captivating environment where players can immerse themselves in the game's atmosphere.
In addition, concept art was developed on top of the main level blockout to capture the idea and visually represent the atmosphere and style of the map. This mood concept became an important tool in the development process, helping the team better understand the direction of the work and design details.
The combination of colors, atmospheric lighting, and thick, dense fog led to the use of a muted palette, which helps players stay focused on the battle and always see their opponents.
Since I was creating all the content alone, it was decided to establish a base of universal assets. This would allow for quick adjustments and changes if new ideas for level design emerged. The key was to adhere to all necessary metrics and not disrupt the blockout too much.
I began by working on the landscape, stone structures, and background. Why not start with the architecture? The reason is that at that time, there was no clear art direction, only references of how it could look. Changes in the level could also lead to changes in the design, so I focused on creating natural elements.
Production
The initial concept of the level was that it was set on an island, with a stone rock cut running through the center of the map, forming waterfalls. To put it simply, this concept served as the foundation for the design. I drew inspiration from how the original levels in Unreal Tournament were created, many of which are kind of islands where battles take place. The background can either be absent or hidden by thick fog, adding atmosphere and mystery.
I pondered for a long time how to add interest and make the area part of a cohesive whole. Ultimately, it was decided to create a tall wall of towers, a sort of dam carved into the rock. This allowed us to eliminate the sea and form a large waterfall in the place of the "beak," which became a beautiful focal point.
I decided to make it simple and utilize Water Materials from tharlevfx, which was tweaked to fit my needs and optimized for background use. I also created a simple water shader for the river in the background using two scrolling normal textures to convey the feel of moving water.
Drawing from references, I added several mountains to the background, aiming to create a layering effect. I sought to bring depth to the frame by utilizing atmospheric perspective and fog, making the atmosphere even more expressive and appealing to players.
Sky
To create the atmosphere and the main source of lighting, I used an HDRi map and added fake movement to the sky. This helped create the effect of a living, changing environment. It feels as though the clouds are constantly dissolving into themselves, and during gameplay, you might not notice it, but if you take a closer look, you'll be pleasantly surprised.
The trick involves creating a high-resolution square texture from the actual HDRi map and then modifying the texture using Polar Coordinates, resulting in a spherical texture. This is very easy to do using a filter in Photoshop, or in my case, I did it in Affinity Photo and then used a shader to convert the image from LDR to HDR. After that, I needed to create a Dome Shape object and map the UVs using Project From Top View across the entire width of the texture.
I also used Directional Light and multiple Fill Lights to illuminate areas of the location where there was insufficient light or where I wanted to highlight specific features. This helped create harmonious and balanced lighting, enhancing the details of the map and its atmosphere.
I developed several shaders for the sky. One of them is designed for a static HDRI map, allowing for easy management of its parameters and integration into the level's overall atmosphere.
Shader for fake cloud movement in the sky:
Material function to create fake motion in the shader:
In addition, I created a function to convert LDR images to HDR.
Materials and Terrain
I decided to use the Megascans library for the terrain and rocks to achieve a highly realistic look. However, during the process, I had to significantly adjust the materials to achieve a cohesive style, creating the impression that all materials were scanned from the same source.
As for the architecture, I used Substance 3D Designer, Substance 3D Painter, and Affinity Photo for photo manipulation. In creating these materials, I followed the principle "simpler equals better," which helped maintain the cleanliness of the design and avoid excessive clutter of elements.
All materials were applied at a resolution of 1K. Additional normal details for the stone blocks and detail roughness maps for the marble added the necessary intricacy.
The entire terrain was created based on Unreal Engine's built-in landscape system, which shaped the masses according to the design. Afterward, I converted the terrain into a static mesh and divided it into several pieces for optimization.
The shader was developed based on layering and blending through Height Maps, which allowed for a more complex and realistic visual effect.
The whole pipeline was based on material functions and different masking approaches. For the Landscape, it is height blending through vertex color.
Material Function for blending:
Material function for each material, allowing for settings adjustments:
Background and Rocks
Rocks and natural objects were created with an emphasis on versatility and modularity. Since this is not just an environment for a specific angle, I had to ensure that any assets I used would work from any viewpoint.
For the cliffs in the background, I used Gaea to create the basic shapes of the mountains, trying to match their appearance to references. Then, I simplified them in Blender and textured them in Substance 3D Painter as unique objects. This allowed for a harmonious blend with the other environmental elements.
The pipeline for creating rocks is based on the following steps:
- Creating blockouts in Blender.
- Subsequent sculpting in ZBrush.
- Returning to Blender to create UV maps.
- Using tiled materials from the Megascans library, as well as some edited in Substance 3D Designer.
- Developing a shader with world-aligned textures, which allows for blending materials through masks painted in Substance 3D Painter.
The shader also included moss for additional blending and adding color to the overall scene, as well as wetness to maintain the appearance of a wet environment.
Material function for moss:
The material function for the moss underlayer is my favorite. It adds an extra layer between the surface and the moss and works as intended.
Shader setup for meshes that use tiles and masks. I swapped some materials for architecture meshes, but overall, the shaders are the same.
The base material function for the tiling material that was used on rocks:
Shader for unique rock meshes:
The shader for skirts was based on the shader from the original UT content:
Material function for a dithering effect to blend meshes into the terrain:
I arranged the rocks to create sharp shapes and provide a layering effect based on the idea of fractures. Inside the map, all objects were carefully placed according to the blockout to avoid disrupting movement and obstructing players' paths.
To add variety to the chaotic, organic shapes, I decided to integrate straight basalt formations. This added structure to the environment and created contrast.
At this stage, I developed a significant number of material functions to create a modular system not only for assets but also for the shader. This allowed me to easily enable or disable specific functions as needed, providing flexibility and simplifying the material creation process.
Architecture
When there was no patch of empty land left on the map, only gray cubes sticking out, I began working on the architecture. I realized that without a clear vision, this process could take a huge amount of time. My friend, Concept Artist Dmitry Pronin, came to my aid, helping me bring my ideas to life on canvas. I'll hand it over to him.
The project turned out to be both interesting and challenging for me. We started with a gray box and the idea of combining the existing map designs from Unreal Tournament with elements from the game Paragon while conveying an atmosphere similar to Death Stranding. We reviewed references, discussed the plan, and got to work. While Ilya was modeling more detailed blocks, I searched for the basic shapes and necessary level of detail to speed up the work and avoid complicating things for both of us.
We started by designing the central tower with symmetrical walls on all sides. After several iterations, we arrived at a design that satisfied us: it turned out to be quite authentic and interesting.
During the process, it was important to consider the resulting language of forms and create a harmonious composition of elements within. We tried not to overload the objects with details, focusing on simple materials and shapes. This approach significantly sped up the process, given the large number of objects. Variability and iterations worked in our favor, allowing us to achieve the desired result.
When the main concept was settled, we started experimenting with a slightly different architectural design to add variety to the map. We developed concepts for houses and structures made of large stone blocks, which contrasted beautifully with the marble, elegant forms of the other buildings. This contrast added depth and visual interest, making the map more dynamic and vibrant.
Feedback, support, and constant communication turned out to be very valuable during the work process. They motivated us and helped resolve most of the dead-end situations we encountered.
This experience taught me a more thoughtful approach to developing similar projects, providing structure and understanding. Working as a team became a key skill that united and kept us constantly motivated. Huge thanks to Dima! More detailed concepts can be found on his page on ArtStation.
Let's Take a Look at How It Was Made
After refining the design and concept, the most important stage was modeling a considerable number of objects. Since they varied in design, different modeling principles were employed.
For the marble structures, I used mid poly geometry and RGB masks for material layering. I also added decals for drips to the overall architecture shader, inspired by an ensemble of stone blocks that I photographed near the office. These are white marble blocks with drips and dirty stains left by weather conditions. Copper was used as a contrasting element to support the entire structure. I decided not to use dirt and patina to avoid visually cluttering the image – this was a purely stylistic choice.
As an example of mid poly assets, the first model I made for the map is the central tower, and the last is the supporting columns for the centrifuge.
The main shader for the entire architecture contains a set of basic materials as Material Functions, as well as RGB masks with noise breakup to add details and additional roughness for extra oomph and leaks for the marble parts.
In the material function for leaks, I made some tweaks to the function in UT to serve my purpose:
For the design of the stone structures, I created a set of stone blocks. From them, I assembled the necessary elements for each building, determining what would be unique and what could be reused. This approach significantly sped up the work and allowed me to change the design on the fly if needed.
After the blocks were sculpted and the building elements were assembled, all the meshes were exported to Houdini for initial retopology and mesh breakdown for Vertex Color. In Houdini, I created several object processing chains, using either a simplified or full processing chain for each task.
The simplest example of converting HP to LP:
An example that I used on almost all such objects:
The idea is that objects made up of separate blocks are merged into a single cohesive mesh, which helps reduce the polygon count and clean up the model. Then, unnecessary vertices are removed from the flat areas, leaving only the important corners. Finally, the planes are evenly sliced into a grid with a specific spacing for Vertex Color.
After that, I export the object to Blender, where the final cleanup and polishing of the mesh take place, as well as the creation of the UVs. Then, the objects are exported to Substance 3D Painter for painting masks that will be used for material layering.
Many objects were ultimately reused, such as the large walls on the edges and the central square under the centrifuge in the central castle. This significantly sped up the development process and helped maintain style consistency throughout the map. Additionally, thanks to the modular approach, I could easily make changes and adapt elements to different parts of the level.
For the last example, I created a more complex system in Houdini.
Here, each block is selected using a for_each loop, and in the attribute_wrangler, the following code is written: if(@mask <= 0) { i@group_pa = 1; } to separate the planes from the masked corners.
Lighting and Additional Elements
Since the atmosphere is set by the sky, I only needed to support it with fog and fog maps, which I arranged to create a layered and deep effect in the frame. The Unreal Tournament editor provides a vast library of various effects, sounds, and decals that I used for this map.
I added dynamic elements like birds flying in circles around the arena, large clouds of mist from the waterfall, and several decals to diversify the uniformity of the rocks. The main thing was not to overdo it with effects and to remember that everything should run at a sufficiently high FPS to maintain a smooth gameplay.
I was arranging sounds on the map for the first time, and it turned out to be a very exciting experience. The map came to life, and I enthusiastically finished the last bugs, set up collisions, and configured Lightmaps and LODs.
The Unreal Tournament editor version 4.15 does not support many modern technologies, but this did not hinder the creation of a rich and beautiful image. The lighting is completely baked. I also used Point Lights as fill light and Reflection Probes for the metal. This helped create highlights and light in the most needed places, giving the rooms a more polished look. I was able to create a very impressive, atmospheric image with depth in the frame and good optimization.
Conclusion
Working on a map of this scale, especially alone, is a colossal effort that requires many years. Even if you try to optimize your process as much as I do, no one is immune to life's circumstances or unexpected obstacles.
Long periods of focus on numerous elements can be discouraging, and some may even think they will never take on something like this again in the future. But I can say that all the worries and negative thoughts fade away when you see other people enjoying your map. It's worth all the effort!
Along this journey, a lot of new things are learned and tested: software, ideas, and work methods. Teamwork is especially beneficial for maintaining enthusiasm and overall motivation. Iterations, revisions, and improvements become part of the process. The very fact that you are creating something that will have value for others, especially for your favorite game, is priceless. I am proud of the work I've done!
I want to express my immense respect to modders and map makers who enrich various games with their work, as well as to the developers who allow enthusiasts to create something new.
A special thanks to everyone who supported me, offered advice, and simply calmed me during moments when everything seemed overwhelming. Thank you to everyone who tested with us, who waited for its release, and who laughed and had fun playing it.
Thanks to 80 Level for the opportunity to write a breakdown article. If you have any questions or collaboration ideas, feel free to message me on ArtStation or connect with me on LinkedIn.
Cheers!