Crafting a Realistic Open Scene in Unity
Djordy Donopawiro did a breakdown of the peaceful harbor scene made in Unity: terrain production, natural assets, lighting, and more.
My name is Djordy Donopawiro, I’m 24 years old from Zwolle, the Netherlands. I’m a 3rd-year student at Saxion University of Applied Sciences. As a kid, I always had a big imagination playing with wooden blocks, lego, etc. My parents often came home to see the whole house turned upside down as a result of my creative endeavors. For some reason, they always supported this weird behavior. Then, a friend introduced me to the game Unreal Tournament 2004 and told me that I could build cool maps in it and play together using Hamachi. So there I was, creating blocky levels within the Unreal editor and after many failed attempts I finally managed to get a level working. Of course, looking back at it, I know it was bad but at that moment it was the best thing ever since I made it myself. And that is how I became hooked by game development and 3D environments. Then it just went automatically, I started messing around with the editor in Gears of Warm then Unreal Tournament 3 came out and I also started uploading videos on youtube. Gradually, I got to know more people in the mod community and join some funny projects. Then, I started modeling using 3ds Max and using Unity. And here I am after 10 years.
Last semester, I decided to start with a minor called minor skilled. My goal was to create a game environment and learn more about creating environment assets. Initially, I wanted to make some sort of space elevator and I was busy working away on it collecting all the material I needed. But then also around that time, I was playing lots of Left 4 Dead 2 with a good friend and we stumbled upon a mod called the Bloody Moors. After playing the mod I instantly started doubting my initial idea and totally fell in love with the atmosphere that they achieved to put down. I began wondering what it would take to create something like that with my own twist. During that time I also stumbled upon an image that finally set the process. I found this picture on Pinterest and immediately fell in love with the composition of the landscape, the sweeping curves of the road and the water on the side.
This whole process was a big learning experience for me. I haven’t really done anything like this before so my workflow can be a bit unorthodox (or not). In the start of the project, my first idea was to start making the whole scene using the terrain system of Unity but that ended up with multiple terrains and was fairly inefficient. So instead, I decided to use a bit of a hybrid of meshes and terrains. First, there’s the main terrain mesh where the player actually walks. It is modeled by hand in Maya. I chose to do it this way because it allowed me to have better control over the shape of the landscape and was easier for me to add the roads, all the fences, and powerlines. Also, because I chose to use a mesh instead of a terrain I had to make a shader that could blend different materials together and add a bit of variety in the material. I put the mesh from Maya into Substance and created a splatmap based on angles and height. Later, I also painted in a bit of detail by hand.
Work in progress mesh:
Then, outside of the terrain, I used a simple mesh with some hills on it made with height information from that area. I retopologized that mesh and put it in Unity. Initially, I wanted to put that mesh in the “correct” spot but that resulted in a pretty flat background. So I started playing around with the mesh, resizing it, etc. until I was satisfied with the composition. Also, as noticed, I’ve been reusing a lot of assets and textures. A lot of the rocks I sculpted were used in the background as islands by simply scaling them around.
For this project, I couldn’t spend too much time on all the assets, so most of these assets are not even high poly models unless it was absolutely necessary, for example, for the wheels of the car. Rocks are sculpted in ZBrush, retopologized in Maya, and textured in Substance Painter
At the start of the project, I collected different types of samples of grass leaves and other types of foliage. I scanned these samples initially expecting to use them in my assets but ended up using them more as a type of reference. So all the foliage is painted by hand. Then just like the terrain, I started working on the shader to make sure it looked a bit more natural. I added hue variations based on world position and some basic wind movement based on the vertex colors.
In the day scene, I’m using an overcast HDRI combined with a really subtle directional light and some fog to create a bit of depth. The directional light is fairly warm and positioned fairly low to recreate a bit of a golden hour type of lighting situation. To get a bit more of a natural look I simulated an analog image by dropping the saturation based on the illumination in the color grading. Finally, I added subtle grain, bloom, vignette, chromatic aberration, and auto exposure. These effects added depth to the final image.
In the night scene, I’m using procedural skybox combined with volumetric lighting and a directional light that acts as the moon. I wanted the lighting to be scarce and filled with the lighting of the falling object burning in the atmosphere. The object carries a pointlight which I animated in Unity timeline to create the flashing effect.
The shockwave triggers the flashing car alarm that works well in attracting and guiding the player forward in the level.
The most challenging part was capturing the feeling of the location and adding its own twist. It was a challenge because I didn’t have the opportunity to actually go to the location, experience it, see the little details with my own eyes. So the scene was made with the limitation of being at home looking at images and interpreting the environment.