Michał Wawruch recently embarked on an exciting project: recreating Diablo 2's iconic Durance of Hate in Unreal Engine. He walks us through the technical steps of the project, covering modeling, texturing, lighting, and the use of Unreal Engine's Procedural Content Generation (PCG) system. His project is rich in detail and provides valuable insights for artists aiming to push the boundaries of real-time visualization.
About Michał Wawruch
Michał is an experienced real-time visualization artist with a background in creating high-end PC visualizations for real estate. His current focus is on the metaverse industry, optimizing complex scenes for various platforms such as Android and iOS. He also works extensively with game engines, starting with Unity in 2014, then moving to Unreal Engine 4 and 5 to take advantage of new technologies such as Nanite and Lumen. Inspired by the dark fantasy world of Diablo 2, Michał set out to bring the eerie Durance of Hate environment to life in a standalone Unreal Engine version.
The Realm of Hatred Project: Goals and Focus
With a love for Diablo II and countless hours spent hunting for elusive D2R Items, Michał chose to recreate the Realm of Hatred Level 3, known for its complex dungeon design and tense atmosphere. His goals included:
Creating an efficient asset pipeline using Nanite and Lumen.
Stress testing virtual shadow maps under strong lighting.
Experimenting with PCG for environmental detail and asset randomization.
Ensuring the project would run smoothly on mid-range GPUs like the GTX 1060.
By recreating a familiar level, he aimed to evoke nostalgia for Diablo II fans while pushing the capabilities of Unreal Engine in asset creation, lighting, and environment design.
Step-by-Step Process
Reference Collection
Michał relied on Diablo II: Resurrected as the primary visual reference. High-resolution screenshots captured the tilesets and structures, while Gray Rogers' concepts provided inspiration for the overall atmosphere. Elements from the film, like the summoned pillars of light, also influenced his recreation.
Sketchup phase
To lay the foundation, he separated all the unique assets within the Cage of Hatred and created rough sketches for them. He zoomed in on certain items, like skulls and torches, to maintain visibility when shooting from a distance. These temporary assets were then imported into Unreal Engine as USD files to be easily swapped with the finished models later.
Efficient modeling techniques
Michał employed a hybrid high-poly to low-poly workflow, leveraging Nanite technology while using tools like Blender and ZBrush for detailing. Despite the power of Nanite, he found that combining lean models with normal maps provided better visual quality and performance, especially in complex scenes.
Texturing with Substance 3D Painter
The texturing process was kept lean, relying on two smart materials: bronze and stone. A blood overlay adds depth and atmosphere, bringing the horror environment of the Cage of Hatred to life. Michał avoided complicating things with masks or vertex painting, focusing on a unified aesthetic.
PCG for Environment Enhancement
Unreal Engine 5.2's PCG played a vital role in creating non-repeating ground tiles and randomizing assets. This helped populate the environment with various elements, such as bone piles, damaged floor tiles, and scattered debris, adding to the eerie atmosphere that is essential for a space designed to evoke the horror of human sacrifice.
Blood and Visual Elements
To emphasize the terrifying background of the Cage of Hatred, Michał filled the environment with blood using textures from Quixel Bridge. He meticulously sculpted details in ZBrush and overlaid blood stains to create a memorable, lifelike scene. The result was a terrifying space that truly captured the essence of Diablo II's most terrifying environments.
Lighting and Performance Optimization
Michał's lighting strategy was designed to replicate the horror atmosphere of Diablo II. He used torches as the main light source and carefully managed shadow complexity to ensure smooth performance. With Lumen’s global illumination, he enhanced the indirect lighting effects to maintain visual fidelity and atmosphere without the need for traditional lightmap baking.
Conclusion
Michał's recreation of the Prison of Hatred is an inspiring example of how modern game development tools can breathe new life into beloved classics like Diablo II. By integrating advanced technologies like Nanite, Lumen, and PCG, he created an immersive environment that resonates with fans of the game. His focus on optimizing for low-end PCs ensured that the project would be accessible to a wide audience while being visually impressive.
Artists interested in trying Unreal Engine or creating complex environments should take note of Michał's workflow.