Francesco Furneri showed us how he built a mysterious mansion for his upcoming adventure game, offering tips and best practices on everything from asset creation and texturing to lighting and rendering the environment.
Introduction
Hello everyone! My name is Francesco Furneri, a professional 3D Texture Artist from Italy. For those who don't know me yet, I have previously collaborated with the great team of 80 Level, showcasing a couple of projects focused on a 3D character and procedural material creation.
I hold a bachelor's degree in Computer Science and a postgraduate qualification in Virtual Reality and Multimedia. Subsequently, I moved to the UK, where I pursued and completed a Master of Science in 3D Computer Animation at the University of Kent.
My previous work, featured on 80 Level, focused on creating a 3D steak entirely within Substance 3D Designer. The way I produced the model was totally procedural: that means I didn't use any traditional modeling techniques, but every single aspect was crafted through nodes, showcasing the power and flexibility of procedural design. Here you can see a few rendered images and, in addition, the whole 3D Designer graph.
Over time, I’ve collaborated on a range of commissioned projects for various studios, with a particular focus on crafting detailed 3D props for games and cinematic shorts.
In addition, I’ve written several articles and tutorials on 3D production for TurboSquid and Shutterstock. If you’re curious, you can find the links on my LinkedIn profile.
I’ve also worked as an instructor in 3D Lighting and Rendering at a post-secondary school in the U.S. - more information is available on my LinkedIn as well.
You can take a closer look at the techniques I used in the project by visiting the following link. Prior to this breakdown, I supported the community by sharing another article. This time, I discussed the complete workflow behind creating a rigged 3D crocodile, from visual concept and reference gathering, through texturing, all the way to the final rendering. The full interview can be accessed at the following link.
I'm really happy with how it turned out, and I'm thankful to 80 Level for helping spread the word about the breakdown.
Alongside other commissions, in the last couple of years, I spent some time exploring the latest Unreal Engine 5 features, keeping myself up to date while working on a few smaller projects. I participated in the XSolla Metasite project, producing an interactive 3D mountain environment within Unreal Engine 5. This experience allowed me to further develop my skills with the engine. This is a quick look at the project:
Apart from that, I created other Unreal Engine experiences in order to enrich my portfolio on ArtStation. I was inspired by some visuals from The Last of Us and developed this recent work:
The more I practiced building 3D environments, the more I felt ready to challenge myself with a bigger and more captivating project, not just another traditional environment, but something that could truly engage the community.
The Mansion Project
One of my biggest and most ambitious dreams in my life has always been to develop a 3D graphic adventure. As a big fan of iconic games by LucasArts, such as The Secret of Monkey Island and Grim Fandango, I've always been fascinated by their storytelling, atmosphere, puzzles, and sense of humor.
The Mansion Project draws inspiration from classic adventure games, while offering players the chance to solve puzzles, manage an inventory system, enjoy a rich narrative, and get involved in unexpected plot twists. In short, I wanted to create a story-driven experience that combined exploration and atmosphere.
On the artistic side, I'm practically done; only minor additions here and there will be made when the time is right. However, I'm in the middle of developing the whole programming side by using a mix of Blueprints and C++.
Here is a quick taste of the main plot:
"The story follows the main character who has inherited a property from his uncle. Along with the villa, the uncle claimed to have left behind a special and sentimental item for his nephew to find. The nephew is ready to reach his uncle's mansion and is prompted to begin the adventure. The villa reveals memories as well as a series of puzzles and challenges, but the atmosphere holds secrets waiting to be uncovered."
That said, all the action takes place in the mansion, giving the main character a vast space to explore. Here is a sneak peek at a few rendered images from the game environment:
Reference Gathering
This step is crucial for creating a robust 3D environment. My process always begins with collecting some reference images from the web. During this phase, I usually group the images intentionally based on their function or purpose.
With the help of a tool called PureRef, I started by gathering images that captured the mood I wanted to convey.
In my case, I searched for visuals inspired by Victorian-style architecture, where each asset plays a distinctive role. I specifically looked for images with strong contrast, well-defined shadows, and a touch of mystery, elements that accompany the character throughout the adventure.
What helps me most when planning my moodboard is organizing images into groups, based on their purpose. For instance, the Ref & Mood section is used to convey the overall atmosphere and environment, while the Patterns & Props section focuses on the types of potential assets involved.
In addition, using AI to generate images can sometimes be helpful in better visualizing the mood, especially when a well-crafted prompt can produce a strong reference in a short amount of time. That said, it should be used sparingly, applied selectively, and with clear intent.
Here's a little tip: gathering references can easily turn into a lengthy process if you don't approach it wisely. Start by collecting a wide range of images, then gradually refine your selection to focus only on the most relevant ones. Organizing them into groups can also make the whole process much smoother.
Initial Composition
Before getting straight into the creation of the environment, I had to study the visuals by considering the project from a game designer's perspective. It's not just about the scene elements being important; they also have to tell a story suitable for the game's plot.
At first, I had to plan the whole game aspects by writing the Game Design Document, a.k.a. GDD. The document serves as a main guide and is continuously updated throughout development, considering everything from plot, game mechanics, user Interfaces to art assets and, of course, the environment. I also took advantage of flow charts to describe the player's interactions while performing specific behaviors. However, let's now focus on scene creation, which is a vital part of the process.
The definition of spaces and volumes for each room of the mansion was one of the first aspects I considered, along with the furniture. Despite sometimes being underrated, the blockout phase is vital when designing any 3D environment, both for games and films. It might take some time to complete it, but in the end, it gives you a much clearer idea of how your spatial layout is organized.
In my workflow, blocking out the environment is a simple and straightforward process:
- I define the outer wall, floor, and ceiling of the room;
- I use simple, primitive shapes mainly to define volumes;
- I employ simple meshes from my model library, when available, which helps give a sense of scale and environmental context;
- As a final but sometimes extra step, I add some very basic lighting setups, which also justify the presence of practical mesh lights, for example, a cone mesh projecting from the ceiling to indicate where a potential lampshade might go.
Of course, this preliminary step is fundamental, and your blockout remains flexible; you can always revisit it, making changes such as adding, removing, or refining elements as needed. It can serve as a foundation for defining the mood in the next stage of development.
Once I see that the layout works for the intended scene, I begin incrementally adding and replacing some of the basic shapes with more refined models and adjusting their placement as needed. My recommendation is not to rush this phase, as it's essentially about building the foundation of your entire environment.
A word of advice: in order to speed up the blockout phase, you might rely on the Unreal's Modeling Toolkit, which has been available since version 5. By using simple geometries and tools, you can create some basic shapes with ease. Alternatively, there are other options like the Blockout Tools Plugin, available on Fab.
Modular Approach
We discussed the space definition, but we didn't go into much detail about how to manage the walls. It depends on the specific situation, but a good practice is to start blocking out the walls or any perimeter elements by using a modular approach. This means working with a set of modular pieces that fit perfectly together, allowing you to build the room's perimeter efficiently and consistently.
You can create them in any 3D software, as long as they’re seamless and can snap together properly. I used a mix of custom-made modules and a few assets from the Fab marketplace, which helped speed up the process, both during the blockout phase and in later stages of development.
With just a set of twelve to fifteen modular pieces, you can imagine the countless combinations that can be achieved. The map is designed to be thoroughly explored, ensuring that the player never feels overwhelmed or bored. Using the same modular approach, I was able to rapidly build an interactive 3D map that serves as the game's environment.
As you can see from the following image, the highlighted blocks represent individual modular pieces. To expand the range of possibilities when designing your layout, I recommend incorporating some angled geometry, which adds variety and helps achieve a more visually appealing result compared to simply creating boring flat walls with basic 90-degree angles and no baseboard or molding.
Without revealing too much, the mansion isn't laid out on a single level, instead, it extends across multiple floors, allowing the player to move around and interact with the environment. Thanks to the use of modular pieces, I was able to build the basic structure of the entire mansion in a much shorter time.
The modular approach is not limited to walls but is ideal for any element involving repetition across large surfaces, such as floors. Both in game design and as a general best practice, using a modular approach for repetitive elements like walls and floors is beneficial because of:
- Asset reuse. A single module can be used across different levels and for various purposes, making development more efficient and consistent;
- Memory Optimization and performance improvement. Using HISM (hierarchical instanced Static Meshes) in Unreal helps reduce draw calls, as multiple instances of the same mesh are grouped and sent as a single draw call, instead of one per mesh. A draw call is an instruction sent from the CPU to the GPU to render objects and materials: The more draw calls there are, the lower the performance tends to be;
- Improved global illumination quality through Lumen. Unreal Engine's dynamic lighting system relies on "cards" positioned on meshes to calculate the surface cache, where the size and resolution of these cards directly affect lighting accuracy. Therefore, having modular pieces simplifies the placement and sizing of these cards, consequently improving overall lighting quality;
- Fast environment creation. Using modular meshes reduces the time needed to build complex perimeters. Furthermore, they can be easily detached and recombined to create different variants quickly, useful during the blockout stage and beyond;
- More control over Texel Density and UVs. The presence of smaller modular pieces improves the UV layout and texel density. This approach is beneficial for texturing with the use of trim sheets where needed, and results in better overall texture resolution.
The challenges (or rather, the requirements) when dealing with modular meshes include different aspects. Even though the modules and their textures are designed to be tileable, visible repetition across large surfaces can become distracting and make the scene look unnatural. That is mostly part of the texturing process, but it’s worth mentioning here as it directly affects how modular assets are perceived within the environment.
It's clear that repeating the same texture over a large surface can cause visible seams if not properly handled. There are several strategies to mitigate this effect, such as applying procedural noise, overlay textures, and decals to break up the uniformity and reduce tiling artifacts. We'll cover some tips on texture overlays later on.
Another common practice is to scatter actual meshes on the floor, if it makes sense for the scene. In the previous example, the wall includes glass shards, books, cables, and micro details that enhance the variety and overall quality of the wooden surface. Furthermore, Unreal offers tools and features for texture work, like vertex painting, which allows you to blend different textures by painting directly on geometry vertices. Vertex painting is widely used for terrain generation as well.
Another key consideration is the construction of each modular mesh, which typically begins with a flat plane.
When working with external 3D software such as Maya or 3ds Max, make sure to:
- Set the pivot point of the geometry to a vertex that aligns with the connection point between tiles. This way, you can manage the tiles with ease inside the Unreal Editor. If you decide, for any reason, to modify the pivot point, you can also do it directly in Unreal Engine without having to go back and forth between 3D applications: the Unreal Modeling Mode comes to the rescue;
- Properly set your UVs in the modeling software, and work with correct scaling;
- Be sure to snap the UV coordinates to the grid in your UV Editor to avoid visible seams and imperfections between tiles, the input texture has to be square;
- Use Unreal's snapping to grid tool to correctly stitch modular tiles together and build the entire scene.
P.S. In relation to Maya, a good practice is to snap the tile to the grid so that the bottom left corner of the geometry aligns exactly with the UV coordinates [0,0]. This ensures that the texture tiles perfectly. Additionally, if your texture appears too large for a single tile and you don’t want to scale it externally (e.g., in Photoshop), you can adjust the UV pivot point (Transform > Pivot) and apply the appropriate scaling, for example, using the Scale tool with a value of 2.
When you import the tile into Unreal, the snapping to the grid tool allows you to choose snap sizes, making it easy to stitch modular pieces together. To sum up, the blockout and the use of a modular approach for walls, floors, and ceilings essentially made up the first step in building the entire environment. Now, let's move on to asset creation!
Scene Assets
For the mansion project, I decided to adopt a hybrid workflow that combines custom-made assets with a selection of pre-existing models sourced from licensed libraries or downloaded from the Fab marketplace. This dual approach allows me to maintain full creative control where it matters most, while also optimizing production time when possible.
Considering the nature of the project as a game environment, I chose to dedicate more time and attention to hero assets, focusing heavily on modeling and texturing to give them a strong visual identity and narrative weight. These key elements are entirely custom-made, allowing me to shape their design in line with the artistic direction and gameplay needs.
On the other hand, secondary assets or filler props, those that play a supporting role in the scene, are sourced from third-party libraries or platforms like Fab. I usually tweak their textures and, when needed, make small adjustments to better integrate them into the overall aesthetic of the environment. This approach lets me maintain a high visual standard without compromising production efficiency.
Overall, my workflow for this part of the project includes the following activities:
- Creating a sheet with a detailed list of props, including their descriptions and functions, based on previous references, blockouts, or design concepts;
- Developing custom props and selecting third-party content for set dressing. The stove shown in the following render was created entirely from scratch, along with the wall, floor tiles, and several other elements. Conversely, some of the assets were sourced from external libraries such as Fab;
- Testing their appearance within the scene. If, for any reason, the layout needs to be adjusted and differs slightly from the original blockout, that's perfectly normal, simply reposition the assets and evaluate the result in context.
Working with Assets
As mentioned, I regularly model and texture custom assets using workflows commonly adopted in the industry. For the stove prop, and generally for most of my models. I employed the following software:
- Maya for modeling and UV mapping;
- Substance 3D Painter for texturing;
- Marmoset Toolbag to quickly test the quality of the resulting materials.
I really like using Substance 3D Designer for creating seamless, tileable materials in my projects. ZBrush is also a great tool for sculpting details in my assets.
Managing a 3D prop within a game environment is quite different from presenting it as a standalone portfolio piece. Unlike polished showcase renders, in-game models must perform reliably under a wide range of lighting conditions, since they are lit by the environment they're placed in. Marmoset Toolbag, for instance, has a huge variety of HDR maps to work with.
For most of my 3D assets, I created a turntable setup and tested them using several environment maps, that's a quick and practical way to evaluate your textures and apply tweaks and fixes when required. Check out the turntable animation of the stove right here:
How Asset Usage Defines Your Workflow
When creating custom assets for games, the role each model plays within the environment is crucial, as it might directly influence your workflow. To make it simple, there might be some aspects to consider.
For instance, if the player can interact with a model as well as examine it at 360 degrees at close distance:
- A higher level of detail is required in both modeling and texturing;
- All angles must be properly refined, since the player can freely rotate and inspect the object from any perspective;
- Lighting should work well from all directions to make sure the materials look realistic when seen up close;
- Proper pivot points need to be set in case of animations enabled during the inspection (e.g., a padlock that opens when the password is correct);
On the other hand, you might be working with 3D models that don't have as much impact as the main ones. For this reason, you can:
- Omit elements that are not visible from the camera's perspective;
- Reduce the modeling and texturing details for distant objects;
- Reuse the same model with different rotations or scales in other parts of the game, if it's an environment asset and not crucial for gameplay, like barrels, rocks, plants, this reduces time spent on modeling a myriad of assets that aren't really needed.
Example of an Interactive 3D Model
Among the different produced assets, I would like to share a simple custom model with which the player can interact. I started off with a simple 3D polygonal model in Maya, representing a wooden object that is part of the puzzles the player needs to solve. With the help of simple brushes like dam standard, polish, slash, and the use of alphas, I was able to sculpt the necessary details within ZBrush.
When I finished my wooden model, I had to bake the and work on the texturing afterwards. Which software to use for baking is really up to you. I personally feel confident using Marmoset Toolbag 5's internal baker, but in this case, I opted for Substance 3D Painter.
The baking process was quick and precise, and allowed me to use a metal/roughness workflow with the presence of utility maps for the texturing. Maps like curvature and ambient occlusion are crucial for adding detail in crevices and occluded areas, as they generate appropriate masks for those regions. This is the final look of the wooden piece during the texturing process.
My workflow for texturing 3D props generally starts with a base material and incrementally builds up layered details. In this step, there are no rules: just observation from references, creativity, and the addition of small details to enhance realism.
The goal was to achieve an old and worn look, elements like patina, dust, dirt, and edge dents help convey that sense of age and use. Substance 3D Painter has cool features and tools like smart masks and materials, grunge maps, anchor points, and generators, which help during the entire process. These subtle details help tell the story and convey emotional depth to the player. In the end, the asset is ready for Unreal!
Being an interactive prop, pickup logic needs to be implemented so the player can examine the 3D model from any angle and in greater detail. Here is an example of the examination system in action within the game, the wooden piece can be inspected from any angle in search of additional clues:
Fab Assets
Last but not least, the new marketplace serves as a valuable library of professional 3D assets of all kinds. Fab helps speed up the environment creation, allowing you to focus on other aspects of the game as well. In my project, a few environment assets were sourced from Fab and other third-party libraries under license.
One thing I really liked about using Fab was the quality and flexibility of the assets. They are ready to use, with quality textures and PBR materials that fit easily into my scene. This meant I didn't have to spend much time adjusting them, apart from a few tweaks in the textures when necessary. Whether I needed bricks or small props to fill the environment, Fab made it easy to find what I needed without slowing down the project or breaking the visual style.
If I need to create copies of the same mesh without making them look too repetitive, I usually modify the existing textures by changing their color. For elements like labels, it's easy to create quick variations this way.
Another advantage of using assets from Fab was the ability to quickly prototype ideas. Having access to a wide range of ready-made elements allowed me to test different layout options and visual styles without getting stuck in long modeling sessions.
Scene Composition and Visual Details
- We now have almost every element needed to build the scene:
- Modular Assets necessary to create the structure (walls, floors, ceiling);
- Hero Assets, such as the wooden object shown earlier, play a pivotal role in the game;
- Secondary Assets, which have a less central role but are still essential for supporting the narrative (e.g., a table where the player finds something useful);
- Environment Assets like plants or pieces of furniture that help fill the space and enhance the overall aesthetic.
This gives us nearly everything we need to build the environment. Still, there are a few additional touches that can enhance the overall appearance of the scene and tie everything together more effectively.
The first point may seem obvious, but it's often overlooked: it refers to how we place and arrange props to visually dress the environment. There are no strict rules, of course, but it's important to avoid falling into unnatural layouts. For example, instead of placing all the books perfectly aligned on a shelf, slightly tilting some of them or adding a few scattered papers nearby can make the scene feel more lived-in and believable. Let me show this by an example.
Aligning books that way makes the environment look staged and artificial. Conversely, arranging the props in a more natural manner is definitely the right direction to take. Here, we changed the size, flipped the layout horizontally, and added different books, props, files, and folders. By introducing slight rotations, we ensured the composition feels more dynamic and natural.
The same considerations apply to prop scattering. It doesn't matter if you have to change the layout more and more, as long as it looks more convincing in support of the overall narrative. Remember, the environment itself tells part of the story, the layout sets the mood, and helps explain what happened in the scene.
Composition goes beyond simply placing props in a scene; it's about guiding the viewer's eye by tiny details and considering the usage of the location, among other things. As an artist, it's time to take a step forward and start making it more convincing.
A powerful feature within Unreal Engine is its decal system. Decals are special textures or materials that can be projected onto surfaces within a 3D environment without modifying the underlying geometry. In Unreal Engine, decals are widely used to add details such as dirt, scratches, blood splatters, or signage directly onto walls, floors, and objects, enhancing visual realism and storytelling.
Without decals, the environment appears unfinished and too clean, missing the imperfections that make it believable. As for 3D models, these materials can be either created from scratch and assigned to a Decal actor or downloaded from external libraries like Fab.
In the image below, the presence of 3 decal actors projected onto the floor creates the necessary details and color variations for this kind of environment, we almost perceive an additional muddy layer generating over the floor tiles. Nevertheless, the effect is the result of the decal's normal map.
The true power of decals lies in their ability to slide across surfaces and in the control they offer over intensity, allowing artists to create either subtle or more pronounced effects.
In addition to their use as a tool for adding imperfections, decals are also employed to apply decorations and patterns. In the example, an ornamental motif is projected onto the wall, it's not part of the wall's geometry or material texture.
Earlier, we mentioned texture overlay as a way to minimize noticeable tiling in large surface areas. Unlike decals, they are not projected onto surfaces but are implemented directly within the material. They are intended to create broader, large-scale effects rather than localized details. If you want to add some global variations to a surface and control it through parameters, you can build a generic material graph like this one.
As you probably guessed, this material acts as a base for other material instances and exposes a set of customizable parameters for each of them. We have controls over UV offset and tiling, but also parameters for roughness, metalness, and so on.
What really matters in this network is the texture overlay subgraph. The overall idea is straightforward: using a bitmap (noise map) connected to a World Align Texture node, we can easily blend additional maps onto any surface, even on meshes without UV mapping. The World Align Texture node works similarly to a triplanar projection. The projected noise represents the mask for the Lerp node (linear interpolation), where the first input defines a custom color and the second provides the texture color.
By modifying the Noise Strength parameter, we tweak the blending and so the influence of the noise. The texture overlay subgraph can be disabled as well. In fact, the use of Switch parameters provides flexibility by allowing specific parts of the graph to be enabled or disabled as needed. Consequently, we can apply noise only to selected surfaces, keeping other material instances cleaner.
Starting from a clean texture, you can easily obtain variations, the carpet has its hue shifted toward red tones and features dust and stains driven by the noise map.
Similar noise maps can be projected onto walls or floors to break up visible repetitions. Another important compositional element is the environment outside as seen through the windows. At first, I considered adding curtains or frosted glass to obscure the view outside. However, I realized that allowing a glimpse through the window added a sense of curiosity and helped suggest a much larger surrounding area. There are a few spots where the player can look outside.
The composition considers:
- An inner-walled courtyard with a limited view of the surrounding areas. This section is built through a modular approach, with a mix of overlay textures and vertex painting techniques for texture blending;
- Some foliage located outside the courtyard suggests the presence of a potential wood with hilly terrain and scattered vegetation;
- The background, which is essentially a series of billboards (flat planes) surrounding the entire mansion. The challenge here is to hide potential seams between a plane and another when looking out of the windows, trees are perfect for this purpose.
This render presents a carefully composed outdoor scene designed to create a natural sense of depth and separation. The foreground includes a mix of grass and flowers to add visual variety and avoid repetition. A thick hedge defines the midground and helps hide any hard transitions between the playable area and the background elements.
Lighting Setup
After completing the modeling, layout, and composition, the next crucial step is to dive into the lighting setup. Working with lighting can start with scene assembly, continue through completion, or even start at earlier stages to express the initial direction. By this, I don't mean that lighting has to be sophisticated from the start, but having a proper plan helps convey the scene’s mood and guides the overall direction from the very beginning.
Based on my experience and personal taste, I aim to balance realism and atmosphere by combining a physically based rendering with careful light placement. Furthermore, the collected references are my starting point to block out the lighting.
My rendering pipeline was entirely real-time using Unreal Engine 5. I used Lumen for dynamic global illumination and reflections, combined with movable lights for full artistic control. Post-processing included manual exposure control, subtle bloom, and color grading.
The first thing I consider is the mood that I want to convey: the mansion project is an adventure game where the story suggests a bit of drama and mystery. For this reason, I decided to use lighting setups based on middle/strong contrasts with the presence of shadows from artificial and natural lighting to enhance the atmosphere. Warm, dim lights create intimate and tense spaces, the presence of candles, while cooler tones emphasize emptiness and isolation. This approach helps immerse the player and supports the narrative's emotional moments.
Nevertheless, I decided not to turn it into a horror game with very dark areas or creepy environments because I wanted to maintain a balance between mystery and investigation. I chose to use controlled lighting by adjusting how harsh or soft the shadows are and the colors of the lights to create a tense atmosphere. This way, the scene stays clear and easy to understand for the player, while still giving a feeling of mystery and a sense of an old house.
My workflow started with a basic lighting setup and the use of Lumen for real-time global illumination. I created a scene with a directional light and a sky light. I added the sky atmosphere and used the exponential height fog to manage the light attenuation at the horizon, mountains are affected by that, and this gives more depth to the scene.
However, the real challenge involved the lighting setup inside the mansion. To accomplish a compelling lighting result, I had to carefully balance artificial light sources and environmental lighting, making sure each room had its own mood while maintaining visual consistency across the entire scene.
The approach I used to light the following scene takes care of a strong directional lighting from the windows, projecting light and shadows onto part of the bed and floor, and a soft, warm light from the ceiling lampshade, which helps enhance the contrast with the darker areas of the room.
Overall, there is a natural light decay, especially noticeable on the right side of the scene, where the illumination gradually fades into shadow. The rest of the light bounces is being managed by Lumen.
The presence of post-processing settings, like tone mapping and color temperature, improved the sense of mystery. In addition, soft volumetric lighting and subtle dust particles in the air contribute to a sense that the room has been left untouched for a long time.
Let's consider another lighting scenario. If you want to use lighting like a professional, it’s not just about relying on realistic light sources, sometimes, you need to apply a few tricks to guide the viewer's eye and enhance the composition. One common technique is to add supporting lights in specific areas of the scene that are either too dark or particularly important for the narrative or visual balance.
In the previous scene, there is just one artificial light, but I opted for a more artistic control by adding three other supporting lights.
- Spot Light 1 is aimed at the ceiling to simulate the glow from the lampshade;
- Spot Light 2 is used to highlight the table, this is a common trick to guide the viewer’s attention toward specific areas;
- Spot Light 3 acts as a fill light for the left wall, maintaining balance in the composition;
- Point Light with a limited attenuation radius is placed near the statues and the door, giving just enough illumination to make that area visually relevant without overpowering the rest of the lighting setup.
Each room tells its own story and was designed to be lit with a specific purpose in mind, closely tied to both the narrative and the gameplay experience.
The old desk shot is an in-game sequence with the same lighting setup as in the gameplay. Due to its purpose, I deliberately added a DOF (Depth of Field) effect which impacts the foreground and background portions, with an on-focus area at the center of the desk. Other effects, such as film grain were added to give the shot a more cinematic look.
An off-screen light acts as a fill, visible on the chair's backrest, and all the ambient illumination comes from Lumen's bounced lighting. The practical light, besides enhancing the desk area, plays a key role in the overall look of the scene by revealing subtle details in the specular blurred reflections (the desk, the piece of wood, the diary, and the surrounding elements).
In addition to light placement, I treat light color as a fundamental tool to shape the mood and direct the player's focus within the scene. Let's consider this example:
According to light theory, using complementary colors within the same composition helps create stronger contrast, visual interest, and a sense of harmony.
In this scene, a warm orange-toned light is paired with a cool blue light. The contrast between these two hues not only enhances the depth of the environment but also reinforces the mood, suggesting both comfort and tension within the same space. The player wants to look deeper and proceed downstairs, but the cold darkness makes him hesitate. The walls are worn out, with cracks and peeling plaster, which helps to tell the story of decay. Spider webs hanging in the corners increase the overall tension as well.
Conclusion
The entire project took approximately six to eight months to complete, working on it in between client commissions, and including game design, concept development, asset preparation, composition, and the final lighting and mood setup.
One of the main challenges was creating believable decay and visual details on the walls, such as cracks, peeling plaster, which required careful attention to texture work and placement to avoid distracting the player while still enriching the environment.
Another challenge I'm still working on is optimizing the lighting using Unreal Engine 5's Lumen system to maintain good performance while achieving high visual fidelity. When developing a game, there are many things to consider, but ensuring a stable frame rate across a wide range of hardware is definitely one of the top priorities.
From the very beginning, I also started working on the story and described the game mechanics through user interactions, UI, inventory system, and everything that should be planned in advance. During the game development, I’ve continued refining different sections of my Game Design Document, constantly adapting it to new ideas and evolving needs as the project progresses.
At the moment, I'm implementing the coding and programming part by testing gameplay interactions, setting up triggers, and refining the logic behind key mechanics. This includes things like opening doors, managing the inventory system, and controlling player interactions with the environment. I'm also prototyping puzzle elements and making sure each action feels intuitive and well-integrated with the overall atmosphere of the game.
I strongly invite you to follow me on ArtStation and LinkedIn for more news about the game development to come.
For Environment Artists who want to learn or improve their lighting skills in UE5, I recommend starting with Unreal Engine's official tutorials on Lumen and global illumination, as they provide a solid technical foundation. Another interesting resource, like William Faucher's Lighting in Unreal Engine 5 for Beginners, explains the lighting fundamentals applied to examples.
Finally, if you want to dive deeper and master environmental lighting in UE5, Creating Natural Lighting in Unreal Engine: A Step-by-Step Guide by Karim Abou Shousha is an excellent next step.
I'd like to thank 80 Level for giving me the opportunity to share this project with you!