Dmitrii Mukhortov did a breakdown of his Think Tank graduation project Aurora Island made with UE4, Substance Designer, and Maya.
Hi everyone, my name is Dmitrii Mukhortov and I’ve been in the game industry for a while now. I started my career as a Level Designer in Russian studio Allods Team where I worked on Allods Online game. This was an amazing 5 years experience and I really enjoyed working alongside talented developers and dedicated professionals. Then I moved to Canada where I graduated from Think Tank Training Centre specializing in Game Environments. The visual component of the game development process was always most appealing to me and finally, I decided to focus exclusively on it.
Aurora Island is my graduation project at Think Tank.
Oh man, picking the right concept is hard. Avoiding making your own is even harder. Seriously, you want to spend most of your time making a scene and showing your skills but not figuring out the main idea. One of my goals was to show my level design skills and make my scene look like it’s a screenshot from a real game level. This is when Simon Kopp’s concepts from Airborne game came to my mind.
I’ve been following Simon’s works for quite a while and I was always amazed by how he makes his artworks look visually impressive and very functional from a level design standpoint at the same time. Most of his environments have very clearly defined pathways and many different repetitive elements which are great for modularity.
I picked Housing Panorama as the main concept mostly because it is 360. It gave me a better idea of the overall atmosphere and scale. As a bonus (which turned out to be a huge help in the middle of production) it’s just one from a series of concepts dedicated to Ice Setting. That was a jackpot. Instead of one concept, I’ve got the whole bunch of different environments and even characters. It helped me to get a better representation of the entire settings. Also, I could pick cool design elements from different scenes and they all worked together just perfect.
I was aiming for strong silhouettes and it’s damn hard to get with environments. One concept had an object hanging in the clouds that created contrast with a relatively bright sky. It gave me a well-readable silhouette along the entire main scene.
Plus floating island was a nice flash back to my previous job on Allods Online game. The entire world of this game is placed on gigantic floating archipelagos.
Everything started getting really wired. I had to deal with a huge metal castle floating above the clouds. Try to search it on Pinterest or google photos, and you won’t find many useful references. Keeping everything consistent and making sense seemed challenging. To clarify the situation I had to come up with some backstory which covered the main rules of the fantasy world and Island itself. Most of these ideas came from Simons’s concepts and from rewatching “Castle in the Sky” by Hayao Miyazaki.
- I established the design and technological level equivalent to the middle of the 20th century.
- The main source of power – gasoline.
- Some rocks have magic ability to float in the sky.
- People fly around the world on different types of ship-planes very similar to what you can see at artworks by Ian McQue.
- The Island is built out of parts of these ships.
- Plus, I thought of some other more particular facts about the castle and people who lived there.
Most of these facts didn’t have a strong impact on the look of the scene but it helped me automatically answer the design and art questions appeared later on all stages of production.
I always like to have pictures of real-world objects as a reference for any element of the scene. Most of the time you don’t need too many reference photos. One main picture and 4-5 additional are enough to get an idea. Having too many contradictory details doesn’t help and just distracts your imagination.
Knowing that my environment is set in the middle of the 20th century helped me a lot to narrow down my search.
One of my mentors at Think Tank, Jude Godin, shared my love for the retro-futuristic world. He helped me a lot with the main ideas of the future environment.
Also, I had to figure out the background and clouds. Castle on the concept seems placed inside a huge storm cloud (hello, Castle in the Sky). Fortunately, I found some pictures of storm clouds taken from the plane. It helped a lot to get an idea of how this situation could look like.
Later I changed the background to be less dramatic and more bright in order to attract attention to the main scene.
For organizing my references I used PureRef. It’s helpful if you want to keep them all together on one board. It’s very similar to have all your references laid out on a huge desk where you can organize them and have visual access to each picture. Usually, I split all references to groups based on the assets.
Right from the beginning I was going to show the Island from the distance and have some close-ups to show more details. On the stage of the original blockout, I realized that Island looked boring from the distance. It was just a single object in almost an empty space. I decided to add three satellites and additional groups of rocks floating around. It gave me the freedom to play with composition and bring more interest to the overall silhouette.
Most of the games you play are built with modular elements. It allows the creation of huge worlds by using a very limited number of assets. If I wanted my environment to look like a game level, modularity was a way to go. Also as I mentioned before, Simon’s concepts fit great to the modular approach.
First of all, I had to break down the scene to the base elements. Concept showed very similar rectangular buildings made out of wood and covered with metal plates. Sidewalks looked like something you can see at any construction site. Roofs were much more tricky. They reminded me of classic Japanese buildings and I studied a lot of references to figure out their construction and key elements that could become modular.
I decided to make windows and doors as separate objects that I could stick to the walls wherever I want. Later, I broke down doors to a subset of objects that I could reuse in any combination.
For pipes, I used spline setup. It gave me some flexibility and I didn’t need to model many different pipe segments.
Also, there were lots of small things like barrels, crates, ropes and different bindings. I considered them as props that don’t need much modularity.
As a next step, I established some metrics. I chose 25cm as my base size (UE4 world space based on centimeters). So each modular object was supposed to have dimensions multiple to 25cm. For example, the base plank size is 200×25 cm, while long and wide planks could have size 400×50 cm. Stylized art style allowed me to exaggerate some proportions.
Using metrics allowed me to combine objects much easier and reuse different elements across the entire scene. As a downside, the environment could potentially start looking blocky and repetitive. Later, I realized that finding a good balance between elements based on metrics and ones that don’t really need it is the key.
In this scene, I used metric rules for buildings, pipes and most of the wooden constructions.
Kevin Meek, who also was my mentor at TTC, helped me a lot with modularity and asset production techniques.
Initial concept has many chaotic wooden elements. They all share the same shapes and materials. It would be a huge waste to make each of them from scratch. At the same time, I didn’t want to use trim pages, mostly because I would lose that soft handmade look I was aiming for.
Instead, I made 4 sets of unique wooden parts like planks, boards, and bars. Each set was sculpted, baked and textured individually. Then I built all bigger modular elements like sidewalks, roof supports, and platforms out of these parts in Maya. I think this process is similar to how somebody would build it in real life. In the end, I just had to bring all my modular elements in Unreal and apply textures that I made for my initial sets. They fit perfect because UVs stayed the same.
Each building has a unique shell with very simple geometry and tileable texture applied to it. On top, I slammed metal plates. Originally I’ve blocked out metal plates based on my 25 cm rule. This way I wanted to make sure that they fit well on the walls.
Quickly, I realized that it didn’t give me that random handmade look that you can see on the concept. I ended up modeling big sheets of metal that follow metric rules and cut them into random pieces. It helped me to fit plates into rectangular space on the walls (somehow), but keep them look random.
The material function is a cool feature in Unreal Engine 4.
It helps to combine different types of surfaces inside master material using material masks. In my case, it was especially useful because I was able to control tiling of each surface inside shader and get crisp and sharp texture details even on big objects. Also, it helps to reuse the same material across the entire project keeping my surfaces consistent.
I created all the materials for this project in Substance Designer. Beside importing them in Painter, I brought some of the materials in Unreal as material functions and used them in shaders. This way dirt that I painted using vertex painting on the wall looks the same as the one in puddle decal on the floor.
Metal Plates & Rocks
These guys were just huge and it was a problem. I really wanted to get as many unique details (like damage and weathering) as possible, but I got to keep my texel density consistent. And to do this I would need textures of some ridiculous size.
This was the perfect case to use material functions, but I still needed material masks to separate functions and get the final look. Potentially, I could texture each plate and rock in Painter and bring in Unreal only masks. But what the hell, we live in procedural times.
I made a graph in Substance Designer that generates material mask using baked maps. I just had to drug my plates through this graph and I got my assets textured. Same was for rocks. This is something similar to using smart materials in Painter. I just feel that Designer is more flexible in this case and it allows to get better control over the final picture of the masks.
Now I could combine material function using masks and get almost limitless texel density by simply tiling each material function independently inside master material.
I used vertex painting setup that allowed me to paint different masks based on 4 ranges of grey values. For plates, I implemented 3 planar projection inside the vertex paint setup. That way water drips always have vertical direction.
Vertex painting masks are using 3 planar projection:
Most of the assets had very similar vertex painting setup. This way I could paint them all together seamlessly. I used red chanel for paint and blue chanel for dirt.
Vertex paint works across different assets:
Making everything from 2 sets of planks was a great idea, but I got lots of repetitions. It was always the same planks everywhere. This is where my other mentor, incredibly talented surface artist Johnny Malcolm, came to help.
He suggested dealing with it by utilizing the second UV set. Each kit of planks is using 2 types of textures. The first one has sculpted details and unique damage, the second is just tileable wood represented by the material function. I assigned each of them to different UV sets and combined inside the shader in Unreal.
Look at that! Now I can just offset UVs of tileable material while all unique details and damage stay where they are. It gave me almost limitless variations of the planks by just using different offset values per each material instance.
Offsetting tileable textures using 2nd UV set:
Lighting was quite tricky. First of all, I had to lit entire Island as a single object to have it nice-looking in far shots. I used intensive white directional light for that. The huge breach in the sky, the one you see in the concept, was a nice excuse. Regular skylight with cloudy HDRI picture became my fill light for the entire scene.
At the same time, I needed many warm local lights for my close-ups. I placed them in the shadows and made slightly brighter than my skylight. This way they turned out to be local keys that created an appealing contrast with cold directional light and cold shadows. I liked that look so much that eventually decided to create even more shadows by moving floating rocks around the castle.
Here is a detailed article by Richard Yot which helped me to understand the basic concepts of outdoor lighting.
At some point, I decided to go with fully dynamic lighting setup. It’s much faster to iterate and requires less preparation because you don’t need to bake lightmaps. The main downside of dynamic lighting is lack of Global Illumination. IGI is achievable in Unreal only through LightMass and backed light. Fortunately, my environment was stylized and mostly outdoor so I didn’t need fancy GI with many bounces. Later, I faked additional bounces by using soft spotlights in very few areas where I needed them.
Unreal Engine 4 is an amazing tool that offers users an incredible set of high-end technologies in just a few clicks. Here a few features that helped me to improve my dynamic lighting.
- Distance field shadow maps – give you nice looking soft shadows.
- Distance field ambient occlusion – allows you to get much better shadowing in occluded areas.
- Contact shadows – work great with detailed geometry or even materials that are using Parallax occlusion mapping.
Aurora Island became a really big part of my life. Here are the most important lessons I’ve learned during this project.
- Working with references and concepts is key. The human brain can’t imagine anything if it hasn’t seen something similar before. Our imagination is fed on emotions and impressions that we get from our surroundings. They call this process Inspiration and it allows us to bring a character in every small detail of the artwork.
- Finding a good balance between schedule and quality of work is crucial. It’s always better to have it done somehow than leaving it unfinished. This was the challenge I almost failed.
- Personal projects are different from production, and the final result of the work isn’t a real video game. It’s mostly screenshots and videos. Spending more time on presentation can help to get the more appealing final picture. Also, it’s always a good idea to establish the main shots as soon as possible.