It took environment artist Paul Mader one year to build a realistic city in the game engine. He explains his workflow in this post.
It took environment artist Paul Mader one year to build a realistic city in the game engine. He explains his workflow in this talk.
I’m Paul Mader. I’m 33 years old, and I’m from Germany. I worked for a few small game companies in Germany as a level designer, and I made UT99 and UT2003 maps in my spare time. I won the “Best Level with Original Content” award in the Make Something Unreal Contest and was hired by EPIC GAMES soon after in 2005. However, I only had a J-1 visa at the time and was limited to working in the United States for 18 months. During that period, I worked on UT3, Gears of War, and Gears of War 2.
After, I returned to Germany to study interactive media while working at Rocksteady Studios, the developer of the Batman: Arkham series. At the time, the company didn’t need a level designer. Instead, Rocksteady gave me the chance to work as an environment artist. It worked out well and I ended up contributing to one of my favorite games and projects of all time: Batman: Arkham City. Once I had my bachelor’s degree, I was able to return to EPIC GAMES. This time, as an environment artist with the company, I worked on Gears of War: Judgment, Infiltrator, Content Examples, Zen Garden, Kite, Showdown, Fortnite, and Paragon.
Going back to the setting and style I explored in my short film “Dystopia” as a part of my bachelor thesis, I wanted to see how realistic I could make that film’s world with UE4. You can actually see the robot from the game in the scene guarding the entrance of the building. From the beginning, I wanted to work with something that could run on a VR device or on a PS4 budget. At work, we generally have very strict budgets, and I typically use a project like this as a testing ground to practice new techniques and workflows—essentially to understand what works and what doesn’t. I wanted to keep it below two million visible triangles on the screen. Most of it averages out at 1.3 million visible triangles with some extreme peaks at 1.6 million visible triangles. I haven’t yet performed any draw call optimization or LOD setup—I’ve still got plenty of work to do with this futuristic environment!
I started with the vista. At the time, I was testing different techniques for creating a cheap vista because the remaining Paragon budget primarily targeted performance problems within the project. As a result, projection matte painting onto simple geometry became the pragmatic way to move forward. And I figured since movies did it all the time, I could do the same in a video game! Next, I focused on one of the smaller buildings. I based the look off several real locations in Tokyo; I didn’t do a block out at first. If I’m the only one working on an environment, I can imagine it very well. Once I incorporated a few buildings into the environment, I used those to block in the scene.
It was a rather straight forward high poly, low poly, and bake down process. I wanted the scene to be realistic, or at least believable. Scale was instrumental in building this sense of authenticity. If your scale is off, even the most realistic materials and lighting won’t look credible to the human eye. The most frustrating aspect about this step of the workflow is the lack of support for more than one UV channel in Substance Painter. And many assets use a custom AO, Dirt, and Grime in the second UV channel. Don’t get me wrong—I love the Substance tools! But, this is a huge flaw in an otherwise great workflow.
The amount of unique and modular elements is about 50/50—I wanted to provide a more organic feel to this architectural landscape. Everything is curved or angled. Nothing in a city lines up 100% or is built in perfect 90 degree corners. To get that look, I had to use custom meshes and spline deformation in the game engine. Lastly, I assembled all the complex shapes by simple modular elements.
Bridges and Roads
The roads in the vista are actually the same meshes and textures I used in “Dystopia.”
The close-up pedestrian catwalk is also the highway overpass but scaled up with an additional rib element attached to it. Further, it’s just one straight piece that is deformed with a spline mesh blueprint. To lay them out, I dragged around the spline points. I spent 15 minutes setting up the blueprint and saved days in making custom meshes. With a little extra math in the blueprint, I didn’t even have to worry about tangents and stretching!
The material was created in Substance Painter. It’s one of the defining materials for the environment’s look. Once I had it, I made a smart material from it and used it as the base for a handful of other assets. In doing so, I always started with the same amount of grime and dirt.
Most materials couldn’t be more basic: 3 Textures, BaseColor, channel packed Masks (AO,Metallic,Roughness) and NormalMap.
I actually think I messed up the scale of the sci-fi towers in the vista. The windows aren’t quite right. I’ve always wanted to fix that scaling but if I tried fixing everything I’m not completely happy with, I’d still be working on the littlest of details years later! Sometimes, you just have to let it be and move on for the greater good. If you want to model a door, the scale is easy as you know it needs to be approximately 200 cm tall and 90 cm wide. And when I don’t know the standard dimensions of an object, I simply import high-resolution meshes into the engine before I bake them.
Well, signs, air conditioners, and wires are everywhere in Japanese cities. They’re a huge part of making the environment feel right. The signs are another detail I should have spent more time on…but hey, there’s a reason why so many advertising companies exist! It’s difficult work to come up with good graphic designs. On the other side, some of those real-life signs boast cheesy graphic designs and this is a part of that area’s charm. It’s really, really challenging to make both cheesy and quality graphic designs when tackling such a large space. And honestly, I’m usually happier if someone else takes care of the graphic designs! With the air conditioners, they’re essentially the same as those found from games since 2003. Definitely don’t have to reinvent the wheel with this object.
The wires were my favorite feature of the project. They were super cheap to create and contain plenty of detail. I used Ryan Brucks’ spline thickening technique to create a blueprint that connected all the wires automatically. The only work I manually did was to select the two meshes that were to be connected and to tweak the default tension value that looked wrong.
The lighting is simple Static Skylight and a Stationary Directional light. Nothing special! I Just made sure the color temperature for the sun was a realistic range for the time of day and weather in the game. Also, I made sure my sky matched the brightness of my skylight.
The biggest challenge was managing plenty of custom ambient occlusion bakes in Substance. This was difficult because I didn’t get my desired results initially from the lightmass bakes.
Rebuild times always get me. They are the most annoying part of the workflow and particularly frustrating when you don’t have a farm of build machines in the background.
The final build was around two hours on high lightmass quality settings with Indirect Light Quality 1.5 and Indirect Light Smoothing 0.75. I guess it’s not too bad, but even I hate it if a Substance bake takes longer than two minutes. With the asynchronous light rebuild and excellent new Sequencer workflow, I was able to complete the entire setup for the fly-through video while waiting for the final rebuild.
I made the first asset for it in February 2016—it’s been about one year. If you look at any of my older personal art projects, they’re usually about the same scope. Generally, I prefer working on and developing projects that take good chunks of time. But, I almost never have the motivation to work on personal art projects after I come home from a long day of work. As a result, it’s more of a weekend thing where I make a few assets over a few hours and then don’t look at them for three weeks. About 75% of this environment was done in the last three months. And then I hit my stride after coming home from a nice vacation. Sitting through a boring eight hour flight gives me the best ideas! Overall, the biggest challenge I overcame was actually finding the motivation and creating the time to work on this project and post it online.