Maarten Hof who previously broke down his incredible project Grandpa’s Attic, this time talked about the stunning scene for Wild West Challenge made with Unity.
My first idea for this competition was to work from my own concept but I couldn’t come up with an idea that I knew I would stick with and finish. There were a lot of cool concepts made in the concept phase but the one by Aleksei Liakh really stood out to me. It got me super excited and motivated to enter the competition.
This challenge I wanted to pay extra attention to performance & optimization and have a more “professional” approach. This went fairly well as I progressed. Near the end, I kind of lost the track of these things. Next time this is going to be a big thing to pay attention to for me.
First Approach to the Scene
For this environment, I slightly changed my personal workflow based on what I learned at Massive so far. I made sure I had a rigid idea of what I had to do and how I needed to make this happen. This resulted in quite a systematic and controlled approach to building this environment. I usually just go with the flow and work on whatever I feel like and need to work on. This time I worked in layers and made sure I was on schedule. I first made sure to have a solid blockout and camera position. While I was doing this I was figuring out the way I wanted to texture the buildings. After some fiddling around I decided to go with tiling textures. Next, I started with basic infrastructures such as planks, beams, and larger props. From this, I worked my way down from macro to micro details. In between this I worked on lighting and made a benchmark area to see if I was heading in the right direction.
My main reference for this environment was the concept art by Aleksei Liakh and photographs from this era. In addition, western film sets were a nice reference. During the challenge, Christoffer Radsby showed me some awesome pictures of what seemed like model wild west buildings. These pictures helped greatly in building my environment. Unlike my previous challenge I didn’t want to copy the concept art exactly, this gave me enough room for creativity but also a nice backbone to fall back on.
Working on the Architecture
Once I decided I got my blockout down I moved the buildings one by one to a separate scene and started detailing it. One thing I learned here is that I should take a better look at references and make sure that I make the buildings visually interesting from the beginning. I ended up with almost identical buildings. They had the same porch, planks silhouettes etc. Going back to remake five buildings isn’t fun! This was definitely a big lesson for me. A good design can save a lot of time in the end.
I did not model the buildings symmetrically. I did this on purpose because in real life nothing is exactly symmetrical (especially not in this era) and actually creating two sides of a building made it look more real and grounded even though you don’t notice it at first glance. The only downside is that it took a bit longer to make the buildings. For the beams I used weighted normals, this gives a nice edge and makes the light fall smoothly across the surface. It also helps a bit with making a nice silhouette. You can read more about this technique in my other article about Grandpa’s attic.
I made sure all the buildings would fit the set of doors, windows, and stairs I made. Besides that, they all use the same set of textures and I could easily swap them to make the buildings look different. Working this way saved me a lot of time.
Decorating the Scene
The production of the props was fairly straightforward. Once the blockout started to look more solid I began thinking about what kind of props I needed. I started with the most obvious ones: barrels, fences, planks etc. From these bigger props, I worked my way down to the smaller props like a fork and a plate. Reusability was key in producing these props. Since the environment is quite big and there was not a lot of time I had to think about how I could reuse the props more than once. This meant that they had to look generic but not too generic. In other words: if I rotated it, it should look like a different instance of the same prop.
The sacks were the only soft surface props I had to make for this environment. I used the subdivide modifier in Blender to help me bend the sacks manually and give it a feeling of weight to it. After that I sculpted the folds in ZBrush, baked that down and textured them in Substance Painter. When producing these assets I tried to keep them in sets of 3 or 4 props on the same texture. This sped up the process and saved me draw calls in the end.
Materials & Textures
For the materials, I only used the standard shader from Unity. During the production Unity 2018 got released and in theory, I could switch to the new HD Render Pipeline with the new shader editor but I was too deep into the production. This was too risky. Plus some plugins that I use such as Beautify and HX Volumetric Lighting didn’t work with Unity 2018 yet. It’s not the most convenient way of using materials. For every different color of the wooden planks, I had to make a new material and change the color tint in the shader. In future environment productions, I will be looking into vertex painting or other smart ways to use less materials.
For dedicated textures for the props, I used Substance Painter. For the wooden walls, ground, planks, beams, roofs etc. I used Substance Designer in combination with textures from textures.com. This allowed me to make good looking textures really fast. The downside of this is that it is not as non-destructive as a texture that is completely made in Substance Designer. I ended up with 5 tiling textures for the wood: wooden planks, wooden planks painted, generic wood, generic wood painted and generic old wood. I made these in grayscale and then added color in Unity.
Substance Designer is not only a great tool to make textures but also a good tool to manage textures.
I started out with the lighting by first deciding in what kind of game my environment would fit. I decided it would be a linear game with a heavy focus on narrative. Knowing this I knew what kind of lighting setup I wanted. Since everything is scripted in these kind of games and you’re only in that particular environment at one time of the day (or another time later in the game) I decided to use baked lightmaps instead of a day and night cycle you see a lot in open world games.
During the production of this environment, I experimented a lot with lighting setup and what kind of settings would work best. I started out with fully baked lights, so no real time shadows. Only down side of this is that I was not able to get sharp shadows and that baking took a long time. After that, I tried a “mixed” lighting set up. This worked really well because I got sharp shadows and the baking time was not that long. But how do you make a scene look interesting and appealing with only the sunlight and one artificial light? This was one of the biggest challenges I faced during this contest. I struggled a lot with getting the lighting to look good. I learned that the sky can make a big difference in the believability of the lighting. Once got that going the scene looked way better.
For the ground fog I use a plugin called HX Volumetric Lighting and for the fog in the distance, I use the standard Unity fog. The ground fog especially did a great deal in tying the environment together.
I think the most challenging thing for me was that I hold onto doing something in a certain way because I know it works. I wanted to try out something different with this big scene. This resulted in frustration about decisions I made early on in the project: I had to finish the piece and work through the mistakes I made at the start of the project. This is one of the reasons why pre-production is so important. Another big challenge was the lighting, making a daylight scene look interesting is hard. Overall I am super happy with the result and I learned a lot.