How to Create a Nostalgic and Abandoned Environment for VR Survival Shooter
Stanislav Petrushin talked about creating the Abandoned Dacha Environment for Into the Radius 2, explaining how he approached the texturing process in three layers and sharing the challenges of creating environment art for a VR game.
Introduction
Hi everyone! My name is Stanislav Petrushin. I'm a Senior Environment Artist with over seven years in the industry. My background ranges from AAA titles like Call of Duty to immersive VR projects like Into the Radius. Video games have fascinated me since childhood, but the realization that I could become part of the industry came quite late. At 29, I was working in marketing. I did my job honestly and diligently, but I absolutely hated it.
Every day, I was haunted by the feeling that my life was heading in the wrong direction, and my inner drive for creativity wouldn't leave me alone. There was no point in waiting any longer. I handed in my resignation and quit into "nowhere". By that time, I had firmly decided to pursue 3D graphics, even though I knew absolutely nothing about it. I only knew that Blender existed and was taking my first clumsy steps in it.
I literally locked myself at home, dedicating 12 hours a day to studying without exception. I absorbed everything I could get my hands on: video tutorials, forums, local communities, and breakdowns on 80 Level and Polycount. Let's be honest: I was driven not only by a fanatical interest but also by a very real fear. My savings wouldn't even last a year of modest living. At some point, I started posting my progress in local communities and launched streams. The plan was simple: if I publicly promised to show results, I wouldn't be able to quit, because people were waiting, and I am used to keeping my word.
And it worked! It was then that I realized game development has many paths, but I was captivated by the idea of creating entire worlds. The aesthetics of the post-apocalypse, abandoned places, and dark fantasy became my main focus. After three months of this routine, I started sending out resumes with a couple of raw portfolio pieces. The replies were either polite rejections or complete silence. When I finally landed an interview and received an art test from a small local studio, I failed it miserably.
But that only spurred me on. There were a few failures later, but I kept coming back to the work, analyzing my mistakes, and moving forward. By my sixth month of studying, my money had almost run out. I was seriously considering getting a job at a local cafe just so I wouldn't have to give up 3D and return to my past life. And then, one of the outsourcing giants replied. This was my last chance. I poured everything I had absorbed during that time into the art test. Taking all my past mistakes into account, I submitted the work on time.
After two weeks of agonizing waiting, I received an offer. It was sheer delight, mixed with the fear of the unknown and a huge sense of responsibility. I joined the studio as a Junior Artist, and the more I worked, the more clearly I saw the gaps in my knowledge. Self-education is a tricky thing: you might understand the most complex details but lack basic terminology. Nevertheless, the pace paid off. After three months, I became a Mid-level Artist, and seven months later, I was offered the role of Team Lead. After trying out this role, I realized I was returning to management, spreadsheets, and endless calls.
Even though I was great at it, I consciously stepped down from the position, choosing to develop specifically as an artist. That's how I became a Senior Artist in a year. This success became my "personal curse". I developed massive imposter syndrome: it felt like everything happening was some sort of mistake, considering I knew nothing just a short while ago. To drown out this fear, I started studying even more fanatically. As a result, I disappeared from social media and the public space for seven years, fully immersing myself in production.
During this time, I managed to work on projects like Enlisted and CRSED: Cuisine Royale, as well as heavyweights like Call of Duty: Warzone and Modern Warfare II. I've dedicated the last three years to Into the Radius 2 – a technically complex VR survival shooter set in an anomalous post-apocalyptic world, where I could apply all my accumulated experience.
Abandoned Dacha
One of my initial tasks on Into the Radius 2 was the creation of modular dacha houses with fully accessible interiors. Environment art in VR is less about painting and more about engineering. Working in virtual reality is like walking on a razor's edge. It is a technical hell where every decision must be calculated ten steps ahead. Strict performance requirements (high resolution across two displays plus a stable frame rate) leave no room for error, and due to texture compression and simplified graphics, everything inevitably looks a bit simpler in the headset than you'd like.
Because of this, I decided to showcase these assets in my portfolio without any technical compromises. I built a dedicated scene in Unreal Engine 5 using the original project assets, but powered by Lumen lighting and native texture resolutions. My goal was to reveal the "true face" of this architecture, while carefully preserving the project's aesthetic. This is how the "Abandoned Dacha" render came to be.
Let's take a look at how it all started.
References and VR Blockout
I began by meticulously analyzing references to identify the key architectural elements of that era and region. My research with the material was incredibly thorough: hundreds of photos of abandoned villages and dozens of urban exploration videos. It was important for me to understand not just the exterior aesthetics, but also the construction: how these houses are built inside, how they age, and how they decay over decades.
In VR, everything begins with how the environment feels from inside the headset. I started with a simple scale box prototype to validate proportions and spatial feel from the player's perspective. I checked every fundamental metric: wall thickness, ceiling height, and doorway width.
Only after these dimensions were finalized did I move on to creating the modular kit: walls, roofs, foundations, and decor. This approach allowed us to efficiently assemble a vast array of unique building variations while significantly cutting down on production time.
There is always room for the unexpected in development. During the blockout stage, the player dimensions were still being tweaked. At some point, the game designers increased the character's height, and suddenly, the player no longer fit in the attic. The capsule was hitting the sloped roof. You had to crouch just to move forward. We caught this during the blockout stage and fixed it quickly. The main lesson here is: test everything in the headset constantly. The demand for "architectural truth" in VR is much stricter than in flat games.
Tools and the Pipeline
My primary tool has always been Blender. Over my career, I've worked in 3ds Max and Maya, but Blender's flexibility and speed perfectly suit my needs. That said, I'm a firm believer in being tool-agnostic. My arsenal includes ZBrush for organic sculpting and Marvelous Designer for cloth simulations. I always choose the tool that gets the job done fastest and with the highest quality. Another indispensable part of my workflow is the game engine. Throughout my career, I've worked with various proprietary studio engines, but my professional path eventually led me to Unreal Engine.
It serves as the definitive stage of production. It's where I go beyond simply importing assets and textures to focus on material setup, level art, and performance optimization. When creating modules, I stick to strict project hygiene: perfect grid snapping, precisely placed pivots, and clean naming conventions. To me, this is a matter of professional ethics: a clean project is my way of saying "thank you" to the colleagues who will be working with my assets after me.
I implemented a flexible workflow, blending the mid-poly approach I used back at Call of Duty with the harsh realities of VR. In virtual reality, players can inspect any corner up close, so a flawless silhouette is the priority. We completely ditched heavy features like Parallax Occlusion Mapping (POM), displacement, or complex shaders. I had to find the "sweet spot": dense enough geometry for smooth shapes, but keeping the overall polycount to a minimum.
You can't rely solely on aggressive LODs in VR. The headset is extremely sensitive to their transitions (LOD popping), which instantly kills immersion. With this approach, there's no need for complex high-poly sculpting, lengthy baking, or subsequent retopology. The mid-poly pipeline provides the necessary believability of forms, saving a ton of time.
Texturing
For texturing large surfaces, I used tileable texture blending. At the studio, we use Layered Materials and custom internal tools to reveal layers, but the core principle is identical to traditional Vertex Color blending.
For the dacha houses, I prepared a set of three base layers:
- Wooden planks with traces of old paint.
- The same planks, but with heavy damage and peeling paint.
- Old, darkened wood with barely noticeable paint remnants.
I took a clean, Normal map of straight wooden planks from the Megascans library. This allowed me to instantly get a perfect base. Everything else, like layers of paint, chips, traces of years of wear and tear, and the unique texture of decay, I built up manually in Substance 3D Painter, using a 2x2 meter plane as a canvas.
Why did I choose Substance 3D Painter over Substance 3D Designer? In this specific case, Substance 3D Painter gives much more freedom for artistic refinement. It allows you to instantly add unique details using stencils and manual painting, which is critical for creating the natural look of abandoned places. While I frequently utilize Substance 3D Designer for creating complex procedural materials from scratch, there was no point in "reinventing the wheel" here. If a high-quality base exists, using it saves massive production time that is better spent on detailing.
Decor and small modular elements use Trim textures created following the same principles. This approach makes it possible to assemble entire villages where each house looks unique while maintaining an extremely high texel density. In VR, this is a critical parameter: a player can shove their face into a surface at any moment, and it must remain as sharp as possible.
Having built this strong technical foundation for the game, I wanted to showcase all these assets outside of VR constraints. For my portfolio, I needed complete control over every centimeter of the frame and highly concentrated storytelling. This is impossible to achieve within a massive open world and its gameplay limitations, so I built a scene from scratch for the final renders.
The inspiration came from the idea of a "cozy apocalypse". Usually, abandoned places are depicted as cold and frightening, but I wanted to evoke melancholy and nostalgia in the viewer. That is exactly why I abandoned the usual gray tones in favor of warm sunlight. It was important for me to show that even amidst decay, a fraction of homely warmth and frozen time can remain.
At this stage, I needed additional references, but emotional ones rather than technical. I analyzed the visual language of genre masters like The Last of Us, Metro, and S.T.A.L.K.E.R. This helped me fill the scene with "silent stories" told through environmental details. As a starting point, I took the assets created for the project and began placing them, iteratively building the scene – from large shapes to small details.
Meanwhile, I searched for camera angles, experimenting with the camera and lighting until I found the perfect balance between the building's geometry and the sun's rays. The composition was built around the story: I arranged props so that every frame looked like a scene from a life that had suddenly frozen many years ago.
Since my main goal was to showcase the architecture, modularity, and textures, I used foliage assets made by my colleagues on the project, along with the Megascans library. In real production environments, it is crucial to know how to prioritize: it's foolish to make everything from scratch if high-quality ready-made solutions are available. This allowed me to focus entirely on the core elements.
Lighting
On Into the Radius 2, I worked with baked light, primarily focusing on technical optimization. For the "Dacha", however, I used the Lumen system. To be honest, this was my first experience fully setting up artistic, rather than technical, lighting, and I was learning on the fly.
My setup consisted of the standard Unreal Engine 5 toolset, without any third-party plugins or custom solutions:
- Directional Light: the main source of warm sunlight.
- Sky Light & Sky Atmosphere: to create soft fill lighting and a realistic sky.
- Exponential Height Fog: to add depth and aerial perspective.
- Post Process Volume: the final touch. Here, I paid special attention to Color Grading, the Bloom effect, and exposure settings.
Using the default UE5 toolset proves once again: you don't always need complex technical tricks to create a compelling atmosphere. It is enough to understand the basics and have a clear artistic vision.
The Specifics of VR Development
As I mentioned earlier, Environment art in VR production means working within extremely rigid boundaries. We do not have access to heavy technologies like Lumen, Nanite, or complex Displacement. And under these conditions, we had to create a massive open world, which in itself is a rarity for VR. If I were to structure the main challenges I faced, the list would be as follows:
- Draw Calls: In an open world, every actor counts. As an artist, I want to make a beautiful window frame with individual sashes and a modular shattered glass system so the shard pattern doesn't repeat. But in harsh reality, each modular window consists of 8-11 separate objects. When there are dozens of them on a facade, performance simply dies from the number of draw calls. You constantly have to find a balance, aggressively merge geometry, and combine materials.
- The "Shell & Box" Approach and Lightmaps: The project required 7 main building configurations, each needing multiple interior layout variations that could be quickly swapped based on gameplay needs. I decided to fundamentally separate the exterior from the interior. To achieve this, I merged the final house facades into unified "Shells", while assembling the interiors as separate, interchangeable "Boxes" (single-sided geometry with inverted normals).
These interior boxes have a micro-offset from the shell's inner walls, just enough to prevent z-fighting while still allowing bullet decals to project correctly. I intentionally kept the inner polygons of the exterior shell rather than deleting them, as they act as crucial plugs to prevent light leaks. This modular split also brought massive optimization benefits: merging the facades drastically reduced the actor count and eliminated lightmap seam artifacts. Additionally, it allowed me to smartly distribute the lightmap budget.
The interior boxes, where players spend most of their time, received high-resolution shadows. Meanwhile, the exterior shells do not require such high-resolution lightmaps because there are far fewer shadow-casting details outside. When packing the lightmap for the shell, I allocated the maximum available density to its outer faces, while the hidden inner walls were packed using a residual principle, scaled down to minimal resolution just to fill the leftover space.
– Collisions: In flat-screen games, geometry and collisions often forgive inaccuracies. In VR, a player can walk right up to, touch, or push any surface. Sloppy collision is instantly perceived as fake and completely shatters the suspension of disbelief. You have to spend a lot of time meticulously hand-tuning the physical boundaries of objects so that they feel exactly the way they look.
That said, there's a smart way to save time here. Unreal Engine allows you to use an existing LOD mesh as collision geometry via the "LOD for Collision" setting in the Static Mesh Editor. Often, the second-to-last LOD works perfectly for this purpose. It's simplified enough to be performance-friendly, yet detailed enough to maintain physical accuracy in VR. This is especially effective for complex shapes that would otherwise require hours of manual collision modeling.
– Material Budget and Shader Complexity: Layered Materials are an excellent tool for architecture, enabling rapid variations, but they must be handled with caution. Under the hood, they can easily become a performance trap if used without discipline. For example, if a room is "clean" in terms of gameplay and only requires a basic surface, it is a huge mistake to leave a 3-layer shader on it just for convenience.
Even if those layers aren't visible on the surface, the engine still calculates the full multi-layer shader cost much more expensive. On a massive VR map where the scene is rendered for each eye at high resolution, the cost of these heavy instructions accumulates rapidly. Therefore, aggressively swapping out heavy layered instances for the absolute cheapest standard alternatives wherever applicable is a fundamental optimization step.
As an Environment Artist, always remember that your goal isn't just to make things look good – it's to make them work, especially in VR. Performance is the foundation of player comfort. Every wasted instruction or redundant actor is a potential hit to the experience.
Time, the Main Production Challenge, and Advice
It is difficult to calculate the exact time spent creating the modular kit itself within the studio production. It took long months of iterations, testing, and revisions. As for the "Abandoned Dacha" project, it took about 100 hours of pure work. Since the base assets and materials were already in place, the bulk of the time was dedicated to experimenting with Lumen lighting, refining the composition, and polishing every frame to achieve the desired mood.
In the previous section, I described the harsh constraints of VR, but the biggest challenge of the overall production was an entire urban block. The task was to create a dense environment of multi-story brick buildings where practically any apartment could be accessible to the player. The system had to allow game designers to toggle playable interiors in any part of any building.
This was further complicated by the absence of intact glass in the windows, which ruled out the classic, cheap trick of using fake Parallax interiors. Designing such a flexible and optimized system within VR's rigid limits was a significant engineering puzzle. But I will talk more about that some other time.
You can catch a glimpse of this location in action in the Into the Radius 2 teaser below:
When it comes to what I like or dislike about the workflow, it's hard to pick just one thing. Overall, I am lucky: my hobby is my profession. Of course, there is routine work that I genuinely dislike, such as modeling windows or messing around with foliage. But even that fades into the background the moment disparate modules and textures come together into a cohesive picture.
When you compare your initial gray blockouts with the final result and realize the colossal amount of work that has been done, you get that feeling: "Yeah, this is exactly what I envisioned". And, of course, receiving support from the community and industry colleagues is its own special kind of pleasure.
As for advice for beginners and useful tutorials, over my years of working, I've learned one thing: it is best to look for information tailored to a specific request. There is a ton of material online, and I don't see the point in giving random lists. Furthermore, if you have questions about modular architecture, materials in Unreal Engine, or working in Substance 3D, etc., do not hesitate to DM me on social media. I will gladly share the necessary information if it's a topic I understand.
But if I were to highlight a fundamental base that everyone should study:
- Johannes Itten, "Elements of Color": An absolute classic for understanding color theory.
- 80 Level and Polycount: Without exaggeration, these resources shaped me as a professional. Read breakdowns and articles. They hold invaluable practical experience.
- YouTube: You can find the answer to practically any question there. But I would specifically like to highlight the 51Daedalus (Lighting Academy) channel. Some might find the information outdated, but this is the real foundation. They don't just teach "artistic lighting" but rather the physics of light in Unreal. What is expensive for the engine and what is not.
- Community and Feedback: Don't work in a vacuum. Share your work, join art communities, and actively seek critiques. Remember, feedback is not a verdict on your talent, but a shortcut to improvement. Learning not to take criticism personally and instead treating it as a resource for growth is a vital skill for your professional development.
And my most important piece of advice: play games. Choose projects in the genre you want to develop in, and carefully analyze them: How did the developers arrange the props? How does the frame composition work? How is the lighting set up, and how do the silhouettes read? Your visual library is your best teacher.
Game development is a team sport. Even though I personally assembled and lit the "Abandoned Dacha" scene, it wouldn't be so alive without the props and decor elements from my talented colleagues. A huge thank you to the CM Games art team!