Mikhail Beresten discussed the level design from the upcoming game Relieve and told us about a post-Soviet-looking game environment.
Hello everyone! My name is Mikhail Beresten, I am 20 years old, I was born and raised in Komsomolsk on Amur and now I live in Khabarovsk, Russia. I study at a local university, but it's not directly related to Environment Art.
I became interested in CG when I was 11 and my mom signed me up for the 3D modeling club. CG was just a hobby for me at that age, but one day I understood that I liked this, and my life would be associated with game development.
In 2016, I started my own game project – Relieve. The game will tell stories about people who are stuck between life and death in the place named the World of Agony. It looks like a semblance of the world of the living but filled with some horrors and obstacles. There is a chance to escape back to life, and the game's characters will try to use it. It will be the third-person game in the action thriller genre with impressive environments, a great atmosphere, and a dramatic plot.
The game events happen in the fictional Russian Far-Eastern town Krasnopol, that's why I needed to create apartments in a modern post-Soviet setting. The Russian Apartment project is an example of that.
To find references, I looked up my old photos, searched apartment ads, and surfed public collections of photos with specific aesthetics. When I finished the research, I had a large collection of such pictures.
To define room sizes and positions I used one of the most popular post-Soviet layouts and added some changes for gameplay purposes.
For more convenient movement I increased the size of rooms. Big areas also can be explained by the type of house, it is a Stalin-style building. Besides, I added a room at the left, it has its own narrative aim. Also, one of the rooms now has two entrances. It is not quite realistic from my point of view, but it makes the apartment more convenient to navigate.
After layout definition, I made a rough blockout to test composition.
Almost everything for this environment was modeled by myself, excluding the free balalaika 3D model from mrTorch and purchased backpack. For best understanding, I divided all assets into about 4 groups: furniture, cloth, modules, and small assets.
My main 3D modeling software was Blender, where I modeled everything except cloth meshes.
Almost every single piece of furniture in the apartment uses Trim Sheets. The essence of the method is that you can use the same texture multiple times for different objects.
As you can see in the picture below, in my project the most notable examples of the Trim Sheets' usage are:
- Varnished wood for different types of tables, cupboards, chairs, and many others (marked red),
- Painted wood for doors, entresols, plinths, and some furniture (marked yellow),
- Kitchen material (marked blue).
For interesting variations of wooden materials and dividing furniture into Soviet and modern styles, I implemented a material function that controls Saturation, Brightness, and Contrast of albedo. Also, I made simple Roughness and Specular control.
Cloth meshes were simulated in Marvelous Designer. By using this software, I got realistic shapes for blankets, pillows, rags, and tablecloths. But I still needed to make more wrinkles for better visual quality.
So, I opened ZBrush and sculpted these details by using cloth alphas and the DragRect option. After sculpting, I made low poly versions of different types of cloth with the Decimation Master tool in ZBrush and baked all wrinkles to a Normal Map in Substance Painter.
There are plans to create other locations by reusing a lot of assets that have been made for this apartment. With modular structures, I don't have to open 3D modeling software whenever it is needed to assemble another environment because I would already have premade pieces to construct as I want.
All modules use tileable textures. I added dirt blending through vertex painting to get more irregular surfaces.
Vertex painting needs more vertices to get flexible blending control. That's why I made such a grid-like topology for structures.
For creating soft-bevel corners I used a free Blender add-on Y.A.V.N.E. that allows getting awesome shading just by controlling faces normals.
The modern world is filled with a huge amount of different packings, so I needed to use them in my environment to make it look more realistic. I have downloaded a lot of packings and prepared them for use in Substance Painter.
Quite often I was able to find only photos of packings, that's why I used Perspective Transform in Photoshop to make parts of boxes rectangular. It can worsen the quality of textures but in my case, it wasn't noticeable.
The main goal in terms of understanding the context of the time was to let the player know that the events are taking place in the present day and not in Soviet times. The main signs of it were modern appliances, boxes for them, and an abundance of wires.
I also like how the blue box works for the composition, it is the most beautiful combination of Soviet and modern styles. It reflects the light falling on it and makes it blue. This is a wonderful example of color bleeding from my point.
I made presets that allowed me to get more flexible control of how the scene’s components look. To get better results, I can adjust dust, change intensities of Roughness, Normal, Specular. For tileable structure materials, I made an ability to control Normal Map's tiling separately because quite often there was a need to do so.
One of the rooms was supposed to have windows with curtains closed, so I thought about how I could create the window-shaped light coming through the non-translucent fabric. After series of failures with trying to get a fair result, I decided to fake this light.
I opened curtains in Substance Painter, projected window-shaped rectangles to them, and masked these rectangles with a baked Curvature Map. This way, I got Emissive Map for curtain material.
Also, I made curtains meshes two-sided. The side of the window gets all the skylight and reflects it to the walls nearby. The side of the room has this faked emissive and radiates it.
The apartment environment has the purpose to make players have such feelings as home comfort, nostalgia, and the feeling of the days gone by. There was a bright life in here, but it is in the past.
It was important to make the correct first impression for the moment when the player entries. I wanted to create an aspiration from the darkness behind to the light placed in front of the viewer’s face
To create an appropriate mood, I decided that I can only use the light coming from the windows. Here I had a challenge: to illuminate the dark corners sufficiently and not to overlight the windows. For such purpose, I placed Lightmass Portals in the windows and doorways. After this addition, I got a little bit better light distribution.
Then I added volumetric fog to make it look like there is some dust in the air.
I made light from the windows by baking of skylight. There was another challenge, especially for such type of lighting: to avoid light leaking in unexpected places. For this, I exported the level from Unreal Engine to Blender and modeled a special box with the shape of an apartment. Then, I placed this box in Unreal and kept it static, and the threat of light leaks was gone.
After baking the light, I had to place Sphere Reflection captures correctly. Positions and brightness of them may greatly affect the result.
I have started this environment at the end of the year and finished it on the 30th of April. Of course, I haven’t made all that was planned like clothes and shoes of characters, but I guess the result is good anyway.
There were about four months of experiments with master materials, PBR, lighting. I learned a lot of new methods and technical aspects that are going to be used for faster and better creation of new environments in my game.
I want to express my gratitude to the Russian-speaking community CG Allies and personally to Sergey Panin for their educational streams about environment art. Before watching them, I was making a lot of mistakes in my pipeline and was really confused about how to make technically correct and impressive levels, so these videos opened my eyes.
I also got a lot of knowledge about master materials and how they work by researching them in Dekogon's projects. It really helped me to quickly dive into the modern real-time environment pipeline.
It was a really large project. I spent twice as much time on it than I planned. But I hope that my new knowledge will let me make the next environments faster without sacrificing the quality.
You are welcome to add Relieve to your wishlist on Steam if you are interested.