Building a Snowy Little Town in Unreal Engine 4

Philip Klevestav talks about getting to know Unreal Engine and explains how to create breathtaking environments wisely without doing repetitive work.

Introduction

My name is Philip Klevestav, I grew up in Stockholm, Sweden where I lived until a little over 10 years ago when I moved to the US.

After high school, I spent roughly a year in the Swedish army and while there, I would make textures when home on the weekends and some of them would end up in the game Day of Defeat, that was the first time I made any money doing game art. However, it was not until shortly after I was done with the military service that I was lucky enough to land a job in the game industry at a company called GRIN. There I worked on two Ghost Recon games, a 3D version of Bionic Commando, and a few other titles including a few that were never released.

After this, I did some freelance work on Unknown Worlds' Natural Selection 2 and I spent some time at Starbreeze Studios working on an unreleased title and an FPS called Syndicate, and then I also had a short-term job at Fatshark in Sweden.

At this point, I got a job at Blizzard Entertainment (which was about 10 years ago) and I have worked there ever since. I have been on the same internal team at Blizzard Entertainment since starting there and after spending some time on the Titan project I was fortunate enough to be able to be part of the pretty small team starting out on Overwatch development. It has been an amazing experience seeing it grow from the very first ideas and tests to the game it is today!

Creating Snowy Little Town

Around the holidays this year, I really felt like I wanted to do some personal stuff again, I had been doing a few things here and there over the last few years but nothing that led anywhere. So I set out to try and create a few scenes in the first half year or so. This village project was one of them.

My inspiration for this one was really a bunch of different things, but I was definitely inspired by the amazing art and concept art of Tangled and the beautiful Klaus movie and really wanted to make something cozy-feeling with a bit of stylization in terms of shapes and materials.

All the projects I am and have been working on lately, including this one, have really been great practice and a good way for me to learn more of the tools and workflows in Unreal Engine as well as finally familiarize myself more with Substance Designer, although I barely used it for this particular scene.

Blockouts

I often just block in cubes and other primitive shapes at the very first stage, unfortunately, I did not have any of that before I started blocking out the buildings. For the ground, I usually intersect some planes at different angles to create a somewhat organic-feeling ground. Here are a couple of images of some of the earlier blockouts of the scene.

At this point, I had not figured out the town borders or anything, that grew out as I had more assets to work with.

I also changed up the layout a fair bit about halfway through the project. I felt the initial layout had some issues with buildings spread too far apart and the street getting too wide in some sections and I think the lighting just got less interesting because of it. By moving everything closer together I could do more fine-tuning on how shadows and light played off each other.

That brings up a point I think can be important when you work on any game art: while creating a strong blockout and trying to stick to it when finalizing is vital, sometimes you discover things later on that did not work out the way you wanted them to even though they seemed great in the blockout. I think it can be really important to never get too attached to anything you create, especially if you work on a game collaboratively. Keeping an open mind to changes (where they make sense of course!) will not only improve the game but will help you grow as an artist in the way you handle feedback, in how you approach changes, and how you come up with good compromise solutions.

I like to do large overarching passes on everything I work on so it will sort of get updated in phases throughout the project. I get much of the geometry assets in (super rough and ugly), a rough layout and placement, rough materials and textures and once all of that is there (usually this would be in the first day or so for something as small as this space), I move on to refining each of these things, which means I also constantly adjust everything as I go. I do not think this approach might work for everyone but I find it really fast personally. It means things might look pretty crappy for quite some time but in return, your entire space will be in a cohesive state and once you get to the final passes the whole scene or map starts coming together really fast!

When working on something larger like a full-on map or space in a game together with more people including designers this way of working really helps to solve most of the major issues early on as opposed to taking one small part of a map/space to near-completion and then having to tackle all the other areas from the ground up as soon as you move on to them.

Creating the Buildings

This is something I usually approach pretty differently depending on the type of game/scene I work on, the scope of the space, the art style, and so on. I do not think there is one way that always works in every situation.

I am a big fan of modularity, but it is a pretty loose term that can mean a whole lot of different things in my opinion. To me, it can be something as simple as something being reusable in a game/scene more than once.

In this scene, I approached making most things like buildings reusable, I simply made buildings that look a little different from each side and rotated them around to have it feel like you do not see the same thing all the time. Additionally, I created a few add-ons that I could place on the buildings such as balconies/wall extrusions, chimneys, dormers, wood beams, and so on. Technically the scene is still a work in progress so this is one of the things I would like to create a few more things for such as a few more fun attachments to buildings.

Here is a small selection of assets with one of the buildings and a few of the architecture add-ons.

I also created a few kits of things such as simple walls and pillars that I can place out pretty organically because the pillar pieces hide the gaps and intersections of the walls. There are also a few reusable props like crates, barrels, wheels, and such.

Then there are a few unique structures like the round tower, the more square tower-like building, and the little clock house. The ground is also uniquely made. All the things use the same tiles whether they are unique or reusable so the only thing different about them is that some of the unique structures would just look too recognizable to be used more than once, they help you give direction and define points of interest in your space. Sometimes it makes sense that these things make up a whole new building like here, while in other cases a cool unique sign or something like that could be enough to make a whole area feel different. 

Creating Materials

The materials are really very simple most of the time. It is almost all just a bunch of tiling textures with very geometric details. I modeled out the base for them first and just rendered those maps out in a high resolution, then I added some more detail and wear in Photoshop as well as painted out some of the harsher angles and weird intersections.

You can spend a lot more time in Photoshop and paint a lot of finer details by hand if you wish. I did not feel it was necessary for what I was doing here. It is also very possible to utilize Substance Designer for a lot of this sort of stuff. I am still new to that workflow so I am not quite ready to get the results I want just yet, but I am learning a lot about that tool currently and I am having a ton of fun learning it, you can do some really amazing stuff in it for sure (and wow... people really do!)

Here is an image of how far I usually take a texture in the model stage (not very advanced as you can see).

Of course, it all depends a lot on the scope and style of the stuff you are working on but personally, I have rarely felt that creating textures has been a bottleneck time-wise for me. I usually do not spend very much time at all on textures and I approach them the same as modeling, I just get something super rough out that I can map on my early blockouts, it does not have to be pretty at all. It is just to get a rough texture layout (especially on trims) and an idea of material separation in the area.

Here are a couple of tile samples from the scene too.

1 of 2
1 of 2

The snow is for the most part just a simple material blend with a mask and vertex color.

On the ground, I utilized Tessellation and Displacement to create more interesting intersections between buildings and the ground. I simply created a vertex blended material here as well, where one of the layers was just a regular non-displaced one and the other would use a mask for height displacement.

Here is an example of where the snow displacement has been painted up against the sides where buildings intersect.

The snow sparkles are very unscientific and are simply a little noise texture with small speckles that I multiply with a cloudy-looking mask that is camera-mapped.

This creates a simple effect of them sparkling as you move your camera. It is very simple but was sort of enough for what I needed it to do.

As for the snow particle effects in the air, I am very beginner-level in the Unreal Particle Editor and I followed this nice tutorial by Dean Ashford:

I think going back to some of the things I mentioned earlier, the whole process was very organic and I changed and iterated on each part of the scene up until pretty late on. The whole thing was more spread out early on and I kept extending streets and adding things but in the end, it started losing the cozy vibe I was going for and it would have required more unique things to start selling the different areas as well, I did not want it to feel just like a big generic-looking city. On top of that, I did not want to spend too much time wrapping this space up as I have several others I am working on that I would rather move on to than expanding any one of them too far.

Here is an image of how the town is laid out currently. It is mostly centered around the 3-way crossing by the large round tower but it has some back alleys and spaces that go between the buildings. The theme could certainly be expanded upon but I think for the goal I set out for it this felt like it was enough.

Rendering

For lighting, I just used a simple Movable Directional Light and a Sky Light. I did not really do anything fancy with them in terms of settings. The Directional Light has a bit upped Indirect Lighting Saturation that I set to 1.5 and a slightly warm/yellow tint. For the Sky Light, I exaggerated the light color to be bluer than it should have been to enhance the colder feel, but since the directional light was already so warm I tried to balance them as much as I could to get the inviting feeling I was looking for. In general, I probably changed these colors and values slightly every time I ran a light bake just to see if I improved or destroyed the scene. It was always easy enough to go back to something that worked better if it started getting too extreme in any way.

Fog also plays a big part in this. I was playing around with the fog settings a lot to try and understand them better. The map really only uses an Exponential Height Fog with a general blue tint and a yellow tint for the Directional Inscattering Color, close to the same balance of colors that I have going on with the Sky Light and Directional Light. On top of this, I created a few fog planes that I placed around, they are very subtle and fade out as you get closer to them but I could not quite get the Exponential Height Fog to do all that I wanted alone. I am definitely still finding better ways to set the fog up but I think for what I was trying to do with this scene it generally worked out pretty well. I wish the views where I have the sun in the back would feel a little more interesting fog-wise but I could not quite figure it out with the fog entity without ruining the other views.

I also created a custom Skydome Mesh with my own sun and haze. It was a very simple setup similar to the basic Skydome you get with Unreal Engine where you can tweak gradient colors and intensity. I did not have any cloud layers or so (I did place some cloud planes manually but you do not see much of that).

The reason I did not use the standard sky was that I could not quite get the sun to feel as warm and intense as I wanted it to be. So by creating my own sky with the 3 elements of sky color/gradients, sun haze, and sun where each had intensity and scale values I could tweak I had the light that was a lot more directional than what it would be with the basic sky. So basically the overall sky is very blue and the sun is really strong intensity-wise but also very small, this way I get a strong directional capture in my indirect light sort of softening the whole scene more and you can see there is a warm and cold side to everything.

As for post-processing, I am not generally a fan of doing a lot of editing. I like to think of it as some small final adjustments to the visuals. I did not do any color adjustments. I normally set the exposure to something very flat, in this case, I believe it was set to min 0.8 and max 1.0. Other than that I usually just tweak the screen space AO and Reflections a little bit. 

The Timing and the Main Challenges

I have worked so sporadically on this thing while also working on some other personal projects that it has been very back and forth. I usually spend 5 to 8 hours or so per week at most but with all the pauses and other things I did I think all in all it came to 2 or 3 weeks worth of work if I would have worked on it as a full-time job? I might be a bit off on that though!

I think there were a lot of challenges for me to be honest. Throughout the years I have never really worked properly in Unreal Engine so I had to get familiar with a lot of the workflows and tools in there. I think I had an OK understanding of the basics of it before starting this scene, but there was still a lot to learn. I got a lot more familiar with the Material Editor and even had a little bit of exposure to the Particle Editor and how the lighting setup works in Unreal Engine. Thanks to a lot of the nice documentation and a lot of great tutorials!

Tips for Beginners

As for tricks, I think there are a lot of things to be said to any specific style, but if I were to go a bit broader I think keeping things as simple as you can in all aspects will help you finish things and stay out of the trap where something becomes so complicated you can no longer change it if it did not turn out the way you wanted it to. I hope that sentiment has been a red thread throughout this interview. Almost all things I do can be scaled down to really simple elements. I do not really do anything revolutionary in any way and there are a lot better modelers, texture artists, and lighting artists out there than me.

What I always try to concentrate on is the cohesiveness of things. I believe that no part of a game or a scene has to look absolutely stunning by itself, it is about the sum of all these components: lighting/mood, silhouette, composition, materials, textures and readability. I do not think you have to strive to be the best in the world in any one of those to create nice art. If you can have a good understanding of all those parts you will be able to balance your work in a really nice and cohesive way, and I think that is in the end what creates an appealing environment, where everything feels like it belongs there. 

Philip Klevestav, Principal Environment Artist 

Interview conducted by Arti Sergeev

Join discussion

Comments 1

  • Anonymous user

    Great breakdown! Thanks Philip and Arti.

    0

    Anonymous user

    ·a year ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more