logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Making Steampunk Environment in Unreal Engine

Maja Banas shared the workflow behind the Celestium steampunk environment, showing how the materials and steam were made in Unreal Engine and how the atmospheric lighting was set up.

Introduction 

Hello everyone! My name is Maja Banas, and I’m currently a second year student at Digital Arts & Entertainment (DAE) of Howest University of Applied Sciences, studying Game Graphic Production with a minor in Style. 

Before coming to this university, I had never done any sort of 3D, although my whole life I have been interested in art. At school and in my free time, I practiced lots of different variations of traditional art, but it was when I got my iPad and started to dabble in digital painting that a whole new world opened up to me. 

I instantly fell in love when I tried 3D for the first time at school. I found a new way to express myself creatively, and I was extremely excited to keep learning about all of these new possibilities.

I’ve just completed the first semester of my second year at university, and I've gained most of my skills from the courses provided. However, I really like how this university really pushes you to also learn outside of what it provides. I personally really like to push myself with projects and get the most out of them as I can; taking the initiative to go online or go to Discord servers in this community to learn from others has been very beneficial, and I’ve gained many extra skills thanks to this. Also, surrounding myself with extremely talented and hardworking people has really helped me improve rapidly. Being around those with the same mindset as me, it’s easier for us to help each other out and elevate our skills. 

As someone still new to the industry, I’m really excited to have this opportunity to share my process with you. In this article, I’ll walk you through how I approached and learned each step of this project, from concept to completion. I hope it offers some valuable insights and makes for an enjoyable read.

Celestium

This project was an assignment for my Environments 1 course at university. I had never worked with Unreal Engine before, so I knew it would be a big challenge, but I was ready to face it. My goal was to push myself as far as possible within the time I had, applying everything I learned throughout the course. I was determined to create everything from scratch, even if it meant spending extra time learning new software. I saw it as an opportunity to absorb as much as I could about level design, as ever since I had learned about 3D art, it was something I had always wanted to try and be good at.

We were given several themes to choose from, and I picked steampunk because it felt the most intriguing. At that point, though, I had no idea what I wanted to make. Coming up with ideas has always been a challenge for me, but I didn’t want that to hold me back. Instead of forcing it, I decided to dive deep into research to understand what steampunk really is at its core. I created a small document to jot down notes and collect reference images that stood out to me. 

During this process, I stumbled upon Niels van Hoeckel's project called “The Orrery.” 

I loved his work so much, I thought that it was such a great interpretation of steampunk and just quite a unique idea in general. After seeing this, I became very inspired and knew I wanted to do something along the lines of an observatory/space research facility.

While it was tempting to rush into production, especially seeing my classmates already building blockouts, I’m glad I took that extra time to figure things out more clearly for myself. It made the later stages of the project much smoother because I had a clear vision to follow.

Finding strong references was more challenging than I expected. A lot of the search results were cluttered with low-quality AI-generated images, those typical, chaotic visuals with floating objects and that unmistakable ‘AI noise.’ To get around this, I refined my search terms, trying to avoid the word ‘steampunk’ altogether. Through my research, I discovered that steampunk draws heavily from Victorian-era industrialism, so I focused on that instead. I gathered references from old abandoned factories, churches, steam engines, and observatories, gradually building a reference board that helped me shape my own interpretation of steampunk.

For the assignment, we had to create one corridor/small room and then a big main room. I already knew what I wanted for my main room, as after becoming inspired by the armillary sphere, I wanted to base my whole project around it, and so I knew I wanted that as the focal point of my main room. However, we were tasked to start off the project with a smaller room in order to get used to working with Unreal Engine. 

I started the process by making several small, very simple blockouts while very loosely looking at references. This way, I could get a rough idea of what I wanted my scene to look like. I complimented this with very simple lighting to try and set some sort of mood already, as I felt this would help me with the design of the whole room. I then chose two that I thought had the most potential and made some draw-overs so that I could better visualize each one. 

The blockouts were made directly in Unreal using 1m x 1m grid blocks to build them up. I took screenshots of these basic blockouts so that then I could put them into Photoshop to start on the draw-overs. I had collected some more detailed references for smaller props/details I could potentially scatter around the corridor. I used them to help me draw somewhat of a finished room to help me see what had more potential, as I find it difficult to visualize ideas only in my head.

Here’s my first before and after:

And the second one (which I chose):

Now, with the draw-over, I had more of a plan of what I wanted to place in the room and where. I was able to quite quickly set up placeholder meshes to see if the composition worked the same in 3D and thankfully, for the most part, it did. 

I then went back to my reference board and went on a search to find more specific references that I could use for all of my extra props and, most importantly, the big steam engine that I wanted to place in the middle.

I started building up the props one by one in Blender and placing them in my scene (at this point, these were pretty basic, not unwrapped meshes). I did it this way to make sure that I liked how everything looked in my scene first before fully committing to it. 

Simultaneously, I was also messing around a bit with the lighting. I played around with contrasting colors and strengths, but eventually, I settled for the blue and orange combination as I felt it complimented my scene the best.

For the main room, I had more of an idea of what I wanted from it at the start, so I didn't really feel the need to make a draw-over like I did for my corridor. I knew I wanted a dome, so all I did was a few iterations, with some quick blockout meshes, on how I could lay out the interior.

I had less time to work on this main room, so I wanted to keep the layout simple but effective; and also make sure I can reuse a lot of my previous meshes. Although I wasn't 100% set on the layout at this point, I thought it was important for me to set up some lighting again. I do this as I feel it helps me a lot with design and composition, as lighting has a big impact. However, I will talk about my lighting in more detail later on.

Texturing

I used a few different methods for texturing during this project. Like I said earlier, I really wanted this to be a challenge for myself, so I wanted to learn about Substance 3D Designer to create the main materials for my scene. Of course, I couldn't go in completely blind, so I watched a couple of tutorials to get started.

After learning the basics, I went on to create my own concrete, brick, and wood materials inside of Substance 3D Designer. I had worked with Substance 3D Painter before, but working with the nodes in Substance 3D Designer was quite a bit more complex, especially to learn right off the bat because of how much there was. However, after a bit of practice and some very good tutorials on YouTube, I managed to get some nice results.

I used tutorials to help me build up a simple base for each material, changing things up later on so the materials fit my needs and aesthetics more. I mainly used simple nodes and tried not to overcomplicate my node networks. I built up the simple shapes first, the visible cracks and crevices that made the materials identifiable. Then, I moved on to adjusting the roughness and finally changing the colors so that they all fit my scene and stayed cohesive.

Here's a showcase of my brick material:

I then set up some shaders in Unreal Engine to customize and tone in these materials a bit more so they would fit in perfectly. I created a vertex painting setup so I could switch between my concrete and brick material to create a more realistic-looking wall. I also added some moist concrete in another channel, as this was an engine room in which there was plenty of steam, so I thought it could elevate this material even further. 

For my unique textures, I used Substance 3D Painter only on the focal points in my scene, such as the door and steam engine in my corridor. I chose to do this because I thought this was an easy and quick way to break up the textures and to add better material localization on the areas that would hopefully be looked at the most.

All the other metals you can see in my scene are tiling materials that I had also made in Substance 3D Painter and imported into Unreal, adding parameters so that I could adjust each instance. 

I thought it would be nice to add some more localization to some of the meshes that used these tileable metals, for example, on my beams. To do this, I decided to work with 2 UV sets. The process itself is pretty simple. First, I created a second UV unwrap for the beam in Blender, I then put this mesh into Substance 3D Painter, and then I used a basic metal edgewear generator to create some edgewear. I made this edgewear fully blue (RGB 0,0,1). I then repeated this step with the red channel to create some localized dirt. 

Then in Unreal Engine, I used this RGB mask in a lerp (linear incorporate) to change the material on the selected parts. In this case, I could add edge highlights and make the areas with the dirt rougher, which made the whole prop come to life more without having to fully retexture it.

Materials

I also wanted to create a special material for the main ball of the armillary sphere. I wanted it to seem almost magical and not be completely solid so that it stood out.

To do this, I decided to make the materials in Unreal itself. For the orb, in total, I made 2 different materials and used them together at the end to create my final effect.

For the first material, which would become the main part of the orb, I used multiple grunge textures and panning nodes to create overlapping movements. Then by multiplying the vertex normals with the final texture map, I was able to create uneven edges on the sphere. I also made a few parameters to control the contrast, saturation, and emmissiveness of the material.

The second material was a bit different, I wanted some circulating speckles that would move around and throughout the orb. To make this, I took a texture and panned it from the center. I then had to convert the UV coordinates into radial data so that the panning node could move the texture in a circular motion. I could control how much of these “speckles” were visible by adjusting the opacity. 

I then combined these materials in the Niagara system. I used 2 variations of the vortex material and 1 main orb material. I also added a subtle glow to complete my desired effect. I placed the main material on the center sphere and then added the Niagara system on top of that to get the final result.

Another material that I think would be beneficial to mention is my steam material. I really wanted to add this to my scene because not only would it create a very nice atmosphere, but it would also make my scene more believable, and in general, I thought it was a necessary addition. I didn’t know how to approach this kind of material at all, so I watched this tutorial:

Although it was made for fog, thanks to the end material being so customizable, I was able to easily adjust parameters to create a believable steam material that I could place around my scene.

Lighting

When lighting the scene, I really wanted to convey the certain mood I had in mind. At first, this was a big struggle since I never really lit anything before, I had previously set up some basic lighting, but it wasn't what I wanted. I noticed it could get very messy quickly when I started placing lights everywhere. I learned that it’s important to think about where I place the lights and how. Every light has to have its own purpose and meaning, and thinking about this in a more functional way instantly helped my approach to the lighting.

I also learned it’s okay to fake lighting in some areas, working with gradients from back to front, leading the viewer’s eyes to the focal point, helping with composition and improving the final image. These small tricks all helped push the scene to the next level. 

When playing with the colors of lights, it's also really important to see the impact it makes. I worked with contrasting orange/blue colors in my scene, which gave it that extra pop. I played around with other colors, such as green and white. However, I felt they gave off too much of a different atmosphere than what I wanted. I wanted my scene to feel mysterious and magical, and I thought purple was the best color to portray this. 

Smoke and fog also add a lot to the lighting and atmosphere. For example, in my main room, for quite a while, I thought something was missing, and it was quite dark, but then I added some fog that was lit up with a bright light coming from the dome windows. I felt this change really made my scene pop and made the overall atmosphere more magical. 

I probably worked on lighting the most during this project, as I knew it was essential to creating a good scene. I feel like working on the lighting gradually whilst simultaneously building up my scene was a good way to work because it really helped me see what needed to change after I opened my project each time. 

Details

I feel like close to the end, my level was looking quite nice, however, adding that final detailing always helps push the scene that little bit more. 

One of my favorite last steps was adding the cables. I feel like they are a nice and easy way to break up sharp lines and also fill up space without making the scene look overly busy. Also, a great way to add additional leading lines to your composition. 

I also made a few smaller meshes to dot around my scene to fill up some empty wall spaces – mainly extra pipes, vents, and the small circular doors. 

Another final detail that I loved and thought really completed my scene was the dust particles. I got the suggestion after asking for some feedback on my project on a Discord server, and it really made a difference. Although subtle, it added to the scene making it seem more realistic as the air wasn’t perfectly clean anymore, and really brought the whole thing together at the end. 

And finally at the end, I rendered my images. I used Unreal Engine 5’s movie render queue, this is, of course, pretty simple, so I could just place my cameras, make the sequences, and render it out. I did a small amount of post-processing in Photoshop on my images and edited my videos in Adobe Premiere Pro to make everything ready for posting. 

Gameplay

As a part of our assignment, we also had to implement a small amount of “gameplay”. This was mainly done to make sure that our levels were walkable and to give us an opportunity to learn how to work with simple blueprints. 

I had quite a specific vision of how I wanted my scene to come to life. I did want to keep it quite simple as I felt my level already had quite a bit going on, so I decided on easy mechanisms with flashing lights and opening doors.

To start this off, I had to adjust certain bounding boxes of my meshes to make the level walkable. In general I didn't have to change too much for this. I also adjusted the incline the player could walk up so that they could walk up and down the stairs. 

Once this was done, I could start on the blueprints. For my corridor, I created a flashing light at the control desk that was triggered at the start. Then with the use of player proximity, when the player went close enough to the control desk, the main door would open, revealing the main room.

Once entering this main room, the player will encounter another flashing light placed at the control desk just in front of the armillary sphere. Using the same trigger mechanism as previously, this would cause the Armillary sphere to come to life right in front of the player.

Conclusion

I worked on this project throughout the whole of the first semester and spent a week polishing it after my exams. I didn't keep track of how many hours I spent working on it, but I finished it over the span of 4 months, and I’m quite proud of what I managed to produce and learn during this time. 

One of the biggest challenges I faced was trying to learn and accomplish everything I envisioned within the limited time frame. Since I was new to many of the tools, I had to start by getting comfortable with the basics, which took time and patience. That said, I’m proud of how I pushed myself, especially when it came to diving into Substance 3D Designer. It was daunting at first, but it showed me just how powerful the software can be, and I’m excited to continue exploring it in future projects.

Another significant challenge was overcoming my own self-criticism. This project taught me the importance of trusting myself and my skills, and that mindset shift has been just as valuable as the technical lessons I’ve learned. I plan to carry this confidence forward into everything I create in the future.

If I had to give advice to other beginner artists, I would say, don’t be too hard on yourself. Allow yourself the space to learn and make mistakes because that’s an essential part of growth. Setbacks aren’t failures, they’re opportunities to improve. And don’t be afraid to ask for help. I’ve always found it difficult to reach out to people I don’t know, but this year, I challenged myself to ask for help when I needed it. The art community is full of welcoming, kind individuals who’ve likely faced the same struggles you’re experiencing now. No one will judge you for asking questions. Don’t let fear hold you back; you never know what connections or insights might come from simply reaching out.

Lastly, I want to take a moment to thank everyone who supported me and provided feedback throughout this project, I truly appreciate it. This journey has been transformative, pushing me to grow both technically and creatively. As I move on to new projects, I’m excited to carry these lessons I have learned with me and continue growing as an artist. Thanks for reading!

Maja Banas, 3D Artist

Interview conducted by Gloria Levine

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more