Kevin Ventovaara and Jacob Odding shared a comprehensive breakdown of the Crucible of the First flame project, explaining how the WoW-inspired scene was made with Unreal Engine.
Greetings, our names are Jacob and Kevin, and we’re game artists from Sweden with a big passion for stylized fantasy and worldbuilding. It all started as a conversation between the two of us. What if we created our own fantasy world where we were free to create whatever we wanted?
Having previously worked together and enjoyed working on projects with each other we started discussing the idea of doing something bigger in scale. Our shared love for fantasy was the driving force of creating our own high-fantasy world. This project is the first piece set in that world. The first step to this elaborate project was to start fleshing out a world for our characters and locations to exist in.
Crafting a Fantasy World
We knew what we liked. High fantasy with very stylized visuals. Using inspiration from different fantasy games like World of Warcraft, League of Legends, Battlerite, Runescape, and more as inspiration while constructing our own style.
Writing stories and starting to flesh out a fantasy world was a daunting task. It took several months before we found a theme that we liked and what really helped was focusing on what core concepts we wanted the world to reflect. We landed on the idea of a world living in the remains of former deities and the results of their absence. We started fleshing out some of these gods and what their role in the world was.
Aetherion, the Grand Architect was one of them and the one we wanted to focus on as we saw an opportunity to do something unique with him. We started writing some stories around the grand constructs he created before his absence and the Crucible of the First Flame was one of these. The next step was developing the visual of the projects. Something we as artists looked forward to too.
It took a while before we settled for a specific visual style for our first god. We had some core values we wanted to be portrayed in the visuals, for example: Rigid, Order, Symmetry, and Function were some of the core values that we wanted to reflect. Narrowing down the design to the core values really helps when trying to create a fitting design for a character. The architecture should almost speak for the character or people itself. Something that was extra important for us since the character would not be present in this project.
These are some early concepts of that progress:
After iterating and landing on a style that we saw fit for the character we started focusing on adding those elements to the story. We had the gigantic spire as the final destination but before that, the player would need to activate two constructs that would function as keys to the final destination.
After narrowing down the style of the architecture we started to really dive deep into what the final scene could look like. We looked at the style of texturing we wanted as well as some a bit more polished 2D concepts for the environment. This would serve as the reference for 3D in the blockout and texturing stage. After we had the story written and some more detailed and final concepts we felt ready to move on to production.
Before production, we set some requirements. We knew we wanted to make an environment but a big goal for us was to tell a story. We’ll go into this more later but a cinematic in the form of a trailer was something that we were really excited to do but something that none of us had done before. We felt the story and atmosphere was equally important as the art itself.
We also had some technical requirements. We knew we wanted to make a very hand painterly aesthetic but we did not want to go full unlit since that would remove the possibility of using lighting which was a big element for composition and atmosphere. We also wanted the metal to have reflections but we felt that the standard metallic PBR result was not what we wanted. The metallic shader uses a Matcap texture that is projected in view-space. With this, we were able to choose the specific color and texture of the reflections which helped get a very stylized look on the metallic parts.
With the foundation created we started doing early drafts of the first part of the story and starting the blockout progress in-engine.
We took progress images frequently and placed them next to each other on an image viewer software like Miro. This really helps to both track the progress but also look back and see if you missed anything in the former iterations. This also made it easier to make bold changes as comparing it to the previous version was really easy.
Since the environment was in a forest setting we knew that creating an asset pack of different resources would be to our benefit. We created a vast variety of rocks, trees, bushes, and other foliage. We tried to give the assets an interesting silhouette from all angles so we could reduce the amount and increase the versatility of the assets. This is how the kit ended up. Having big, medium, and small assets really helps get an interesting variation.
We also created a shader for the grass and foliage that projects a texture in worldspace to affect the color and get more variation. As shown in the video we were able to change the tiling, contrast, and amount of variation per instance which helped get some more color variation in the scenes.
We also had a lot of different ground textures and used Unreal Engine’s landscape-painting tool to create variation in the landscape. Having textures with small variations like grass and grass with flowers really help to make the environment feel more alive and lush. We had World of Warcraft's most recent expansion ‘’Dragonflight’’ as a big inspiration for the foliage and ground textures.
Credit to Kelli Hoover. I had many of WoW’s ground textures as reference but I believe this was the one I looked at the most.
A really helpful trick to achieve ‘’volume’’ in your landscape is having details baked into the ground textures. For example, we had branches and flowers baked into the textures but we also had mesh variants of these. This made it so that we could give the feeling of volume without having to use too much geometry.
At first, we planned on faking the background by having a 2D illustration projected on a plane as the skybox. But we realized that we would like the level to be experienced outside of the main camera and therefore decided to make a proper skybox instead. Here is a rough breakdown of how we created the skybox:
We had two components. The skydome and the vortex that would swirl around the beam bursting from the tower. The vortex is made from a few simple meshes that use alpha-transparency and flowmaps for movement. We also partially painted the vortex into the skysphere to make the mesh blend into the skysphere. We had a rotation function for the shader so moving the vortex and skybox was not an issue.
When painting the textures themselves, a UV map is limited to a square but if you want a long texture on that UV map you can paint it wide and then compress it to a square, and when the texture is on the mesh the stretching returns it to its natural ratio. This makes it easier to visualize the skybox texture when painting it since you can have a more natural ratio and after you’re finished compress it.
Flowmap Setup Shader
To put it simply, you distort two textures over time with the help of flowmaps and then blend them together and you get the illusion of movement.
How a flowmap works is pretty simple, red is the channel for movement in the X-axis and green in the Y-axis. So by painting these values on a texture you can achieve controlled distortion. The software we used to paint these was Flowmap Painter and we added them to our custom skybox shader.
After we had all the components gathered it was time to lay out the cinematic. The goal of the cinematic was to entice the viewer by setting a mood of tension. We did a very rough storyboard that would help us visualize how everything should be set up. We used separate scenes for the different shot sequences and composited everything in Premiere Pro adding fades and minor tweaks to the footage.
Here’s how the video turned out:
One of the bigger learnings we had was to work more procedural next time. All the assets were handmade which gave a fidelity which we liked but a lot of the assets could be streamlined by using trim sheets and other tools to get a still good and much faster result. By the end of the day, we’re really happy with the result and we are both excited to share more of this world in the future.