The launch of Ender Magnolia: Bloom in the Mist marks a technical milestone for the studio, migrating from a traditional 2D engine to Unreal Engine 5. This transition not only implies a performance leap but a reinvention of the graphical pipeline. The team has managed to preserve the essence of Ender Lilies' hand-painted art while introducing dynamic lighting, complex materials, and a particle system that brings every scene to life. We analyze how the combination of Photoshop, ZBrush, and UE5 creates a unique visual hybrid in the Metroidvania genre. 🎮
Hybrid workflow: Photoshop, ZBrush, and Unreal Engine 5 🎨
The creative process of Ender Magnolia is divided into two key phases. First, concept artists generate the base textures and sprites in Adobe Photoshop, maintaining the distinctive painterly style of the saga. However, unlike its predecessor, these assets are not directly implemented as flat sprites. In ZBrush, the team sculpts low-poly geometry for key elements such as characters and architectural structures, then applying the 2D textures as albedo maps. The magic happens in Unreal Engine 5, where the Lumen global illumination system projects dynamic shadows onto these surfaces, breaking the rigidity of traditional 2D art. The result is a parallax and depth effect previously only achieved with forced layering techniques.
Technical lessons from the evolution compared to Ender Lilies 🛠️
Compared to Ender Lilies, which used a 2D engine with pre-calculated lighting, Ender Magnolia introduces substantial improvements in post-processing. The use of materials with PBR properties allows water, metal, and organic surfaces to react realistically to light sources. Additionally, the Niagara particle system replaces the old static smoke and fog effects, generating environments that change in real-time based on the player's position. This combination of tools not only elevates visual quality but establishes a new technical standard for small studios looking to scale their 2D art without losing their artistic identity.
As a developer, what specific technical challenges did you face when migrating traditional 2D sprites to Unreal Engine 5 to maintain the original aesthetic without losing the visual depth offered by the 3D engine?
(PS: game jams are like weddings: everyone is happy, nobody sleeps, and you end up crying)