Franek Leszczynski guided us through the Fisherman House project, detailing his workflows, from modular kits to materials, used to craft this atmospheric environment.
Introduction
Hi everyone! I'm Franek Leszczynski, a self-taught 3D Environment Artist from Poland specializing in creating realistic environments and props.
I've been into games for as long as I can remember, and I was always curious about how they were made and what goes into bringing them to life. My journey with 3D art kicked off about 6 years ago, when I was 13. At first, I had no clear direction, just messing around in Unreal Engine using marketplace assets. Eventually, environment creation was what hooked me the most, so I decided to learn modeling, texturing, and other tools and workflows to push my skills further.
My main source of learning was a variety of courses, and then once I felt more confident in my fundamentals, I started exploring and experimenting on my own. My journey in professional game development began with freelance projects at around 14, which later led to my first full-time studio role at the beginning of last year, right after high school.
Inspiration
I took a bit of a break from personal work over the last year, but when the creative spark came back, I wanted to dive into something that would really push me out of my comfort zone.
That’s when I came across a concept by Lucas Leger. It had a strong focus on wood and a challenging composition, so I felt it was the perfect pick, since I wasn't comfortable with wood that much or handling more complex structures at the time.
Lucas Leger
Getting Started
I started by gathering references and putting together an asset list. I find this step super helpful, it lets me track the overall progress of the scene, makes the asset creation process more efficient, and also helps me stay motivated and organized throughout the project.
Blockout
After putting together a rough plan, I started blocking out the scene to lock in the base composition and camera angle. For this stage, I kept it simple, just using scaled cubes and cylinders inside Unreal Engine 5.
This part was pretty time-consuming due to the tricky composition, and I found myself going back and forth a lot. Still, it's the kind of step where you just have to push through until you’re happy with the result, because you'll be building the rest on top of it later.
Once I felt good about the base and had the camera locked, I moved on to blocking out the most crucial to the composition, individual structures in Blender, using the asset list I've prepared earlier.
Asset Creation
My approach to the modeling workflow was to take advantage of Nanite, which allowed me to keep assets highly detailed in the geometry without worrying about poly counts.
However, if an asset didn't need much geo detail, I kept it mid or low-poly. The modeling workflow for most of the assets looked like this:
Modularity
The scene's structures were built using a small modular kit.
I also put together a plank kit, which ended up being a huge time saver, because I didn't need to sculpt straight, basic planks for every asset individually.
For example, it allowed me to quickly assemble the house's walls. This approach not only saved time but also gave me more flexibility and room for making tweaks later on if necessary.
Materials & Texturing
Almost every asset was textured using, or at least used as a base, this tileable material I created in Substance 3D Designer. Since I didn't have much experience with procedural wood textures, I followed a tutorial by Derk Elshof and then adjusted the material to fit my needs.
For variation, I used an RGB mask workflow, which gave me a lot of control and flexibility directly inside the engine. I set up the masks in Substance 3D Painter and reused them across assets, making changes when needed. This workflow was especially useful for modular pieces like the planks and walls that use the tileable material.
Here's an example and breakdown:
I then set up a layered material shader in Unreal that used the RGB masks to drive the variation. This gave me a lot of flexibility to quickly break up repetition and make each asset feel unique, even though they shared the same base material.
Base Material Layer:
- Texture maps: Base Color and ORMH (Ambient Occlusion, Roughness, Metallic, Height/Displacement) and a Normal map;
- Controls for tint, brightness, and saturation of the Base Color;
- Roughness and displacement intensity/contrast controls for the ORMH;
- Blending between the tileable texture normal map, baked normal, and a detail normal, with parameters to adjust their intensity;
- Tiling controls.
I also made use of multiple UV channels for the baked normal map. This was especially useful for assets built with the plank kit mentioned earlier, since it let me pack UVs for the masks while keeping a separate channel for the baked normals.
Material Blend for RGB Masks:
- An RGB mask texture map;
- Mask channel selection;
- Controls for the intensity and contrast of the mask;
- An overall blend intensity parameter.
On top of that, I added a simple mask breakup that sharpened the mask using a grunge texture. This was especially useful for lower-resolution masks, since it helped them appear a bit sharper and less blurry.
I also used Nanite Displacement to add extra surface detail to the meshes. Even the low-poly ones gained more depth and looked more complex without any extra sculpting.
A good example is the stone wall mesh, Nanite Displacement added depth and definition, making it feel much richer, while the sculpt itself was kept at a simple silhouette.
Props
I modeled the mid-poly meshes for the barrel and the boat, and then did a sculpting pass in ZBrush. The boat was decimated afterward, but I kept the barrel mid-poly, since the amount of wear was subtle enough to be baked into the texture instead of being represented in the geometry.
For the lamp, I modeled it and did a pass in ZBrush to get a smooth high-poly using DynaMesh and Polish, and to cut in the holes with the Live Boolean feature. The crab cage was kept mid-poly and didn’t require a high-poly pass after modeling.
Renders and wireframes:
After UV unwrapping, I baked the assets from high poly in Marmoset Toolbag 5. The process was pretty straightforward. Then I went and textured everything in Substance 3D Painter.
Here's an example with the barrel showing my texturing approach:
The master material for the props in Unreal was pretty much a cut-down version of the one I showed earlier, with the only addition being an emissive texture setup.
Set Dressing
For natural elements such as trees and rocks, I relied on the Megascans library, which greatly sped up the set dressing process and made it easier to quickly iterate on the design.
Here's one of the early WIP shots showing the scene after I placed the nature assets:
Lighting & Atmosphere
The lighting setup was pretty simple. The base consists of a low-intensity Directional Light combined with a slightly stronger Sky Light. I also tweaked the Sky Atmosphere to get that overcast, stormy look.
A few Rect Lights were placed as fill lights to add extra highlights and bring out more detail.
I also made a simple fish model, using a photo texture converted to PBR in Substance 3D Sampler. The fish piles were hand-placed, with variation added through Proportional Editing in Blender.
Lighting & Atmosphere
The lighting setup was pretty simple. The base consists of a low-intensity Directional Light combined with a slightly stronger Sky Light. I also tweaked the Sky Atmosphere to get that overcast, stormy look.
A few Rect Lights were placed as fill lights to add extra highlights and bring out more detail.
For the rain and fog cards, I used Easy Rain and Easy Fog by William Faucher. These tools were very straightforward to set up and ready to use out of the box. The rain tool also included a material function that gave the surfaces a wet look, with leaks and droplets. The rain particle system is also extremely customizable and user-friendly.
Post-Production
After wrapping up the scene in Unreal, I exported the video through Movie Render Queue as an .EXR image sequence. This way, I didn't lose any color information and had full control during the color grading process.
For the color correction, I used DaVinci Resolve. It was my first time working with it, and I've gotta say, it's amazing!
Here's the before and after:
As a little bonus, if anyone's curious, once the grading was done, I moved on to sound design to help sell the mood of the scene. For the sound effects, I used the Soundly library. It's a great tool with a lot of free sounds to choose from.
Conclusion
The scene took me around 3 months from start to finish. Along the way, I learned a ton and came out feeling a lot more confident with complex compositions, planning, and especially working with wooden surfaces and sculpting them. The biggest challenge was definitely balancing all the elements: materials, framing, and lighting, to make everything feel grounded and belong in the scene and be close to the concept.
If I had to give advice to artists starting out, it would be this: trust the process and the skills you've built. There were so many times I felt discouraged and frustrated because the scene wasn't matching what I had in mind, but pushing through those moments and learning from them is what gets you to the end. Also, take breaks if you need them, recovering from burnout takes way longer than the break itself. Don't compare yourself too hard to others, everyone's journey looks different, with its own ups and downs. Focus on your own growth, and you'll get where you wanna be. You are not others, and others are not you!
Thank you so much for reading!