Rusty Sci Fi Mining Facility – Environment Breakdown

Filipp Sparak

Filipp Sparak


Filipp Sparak

3D Artist


Hello, my name is Filipp, I am a 3D Artist from Russia and in this article, I’ll talk about the sci-fi environment I made in Unreal. The goal for it was initially to make as detailed an environment as I can by applying different level art techniques that I learned from work as well as modeling techniques that I didn’t have much chance to master yet.


What I knew at first is that the scene must involve railroads, mines and sand and that it should be sci-fi and also quite run down. A little stylization and exaggeration here and there also make things a lot more fun in my opinion. I kept in mind games like Rage and Doom and most of the references consisted of photos of real-life mines, railroads and old industrial factories.

To begin with, I sketched out a general idea and then it was a bunch of sketches to figure out the general design languages I would be using for the assets. Somewhere halfway into creating this level I gave up on sketches as at that point I could just figure the designs for different assets as I modeled them.

Blockout / Assembly

I started the scene with a simple blockout in Max which I then proceeded to break down into rough modules.


I then continued to add more and more to make the scene become fully modular and textured some assets on the way to get a heads up on the aesthetic that I could refer to as I go further.

When I finished with the modules, I started work on the large, medium and then smaller props, I did some initial side-dressing with them to get a better feel for the context of the scene.

Because I did not plan everything from the start, the huge rotor mining thing came to the level quite late, but luckily placing it properly was not an issue thanks to the modular nature of the level.


When I was done with the composition, I created a few types of cables to be used with splines, and then I did a pass on the foliage. For foliage, I used rocks that I made while creating cliffs and reused a bunch of metal pieces from the props I made earlier. The grass is from Megascans.

Among the final steps was adding a grime decal pass to make the surfaces more believable as well as to give them some storytelling.


Then I drew some contextual decals and for the last step I sketched out a bunch of graffiti tags, some of which reflect the mood I had at some stages of creating this scene. And of course, the chonky boi on the wall set the final mood for the scene.


Modeling and Texturing

I modeled the majority of the assets in Max and textured them by using a double UV set approach: 1 set was specifically for the trim sheet I made and another was for a tile texture so that I could maintain a consistent texel around the whole level. I then broke down each asset into different material IDs to be able to easily assign multiple materials in Unreal. This is not the best approach, however, given the goals for this scene it saved me a lot of time. Most of the models are mid to high poly and the majority of details are modeled, the trim sheet just adds that edge wear and different surface details. I didn’t worry about keeping the wireframe clean either because as long as the shading on the model is correct, for static hard surface meshes it does not really matter. The final level of detail is added via vertex paint in Unreal to add the peeling paint effect.


From the get-go I created a customizable shader in Unreal for the hard surface stuff to be able to create a variety of materials just by tweaking the parameters. This way all the assets in the scene beside the rocks and cliffs are fully customizable and don’t rely on unique maps whatsoever. Although you could bake some and blend them for even more detail.

The cliff shaders are a bit different as they rely on unique maps rather than a trim sheet for customizability, but the overall idea is the same as with the hard surface shader.

For the terrain, I created a simple sand material that relies on displacement for grounding certain elements in the scene better as well as increasing the overall fidelity. I wanted to create more to blend them but I got too lazy so I relied mostly on foliage and props to make the ground look more interesting.


For the lighting, I knew that I wanted to make the scene as flexible as possible so dynamic was the way to go. I used a sky system that I bought from the marketplace a long time ago for its great customizability (Check out Ultra Dynamic Sky on Unreal Marketplace). I then turned on Unreal’s Distance Fields and used a few crutches to get the right lighting setup (by creating shadow planes in some areas to get rid of backface bleeding, to make certain areas darker and to fix the issues with Unreal’s lack of proper GI when working with dynamic lighting.


For the final stage I went around fixing material properties, closing holes, fixing decal order issues and tweaking the lighting just a bit, etc.


While this project took way longer than expected, I learned how to approach different things in Unreal that I only knew how to do with other editors. This project helped realize me the potential of this engine when it comes to creating complex shaders and getting very precise renders while also keeping everything real-time without doing much manual optimization.