Shadows of Doubt is an indie title that redefines urban simulation through a unique visual style: Voxel-Noir. Developed in Unity, the game presents a completely procedurally generated world, where each detailed block is part of a living and oppressive city. The dynamic lighting and constant rain not only reinforce the film noir atmosphere but also demonstrate an intelligent use of graphical resources to achieve immersion without sacrificing performance.
Asset Pipeline: From MagicaVoxel to Qubicle and Unity 🧱
The asset creation process in Shadows of Doubt combines two key tools from the voxel ecosystem: MagicaVoxel and Qubicle. MagicaVoxel is used for the prototyping and artistic design phase, allowing developers to quickly sculpt blocks with lighting and color. Subsequently, Qubicle optimizes these models for real-time, reducing polygon counts and organizing geometry into efficient chunks. Unity integrates these assets through a pooling and LOD (Level of Detail) system, where distant blocks are simplified without losing the pixelated aesthetic. The procedural generation of the map is based on Perlin noise and social simulation rules, assigning each building a unique interior with furniture, objects, and clues. The result is a world that feels infinite and detailed, but loads in real-time thanks to asynchronous sector loading.
Lighting and Rain: Keys to Technical Immersion 🌧️
The atmosphere of Shadows of Doubt depends on two technical systems in Unity: dynamic lighting and the rain particle system. The light is not static; streetlights, windows, and shadows update in real-time, creating contrast between lit and dark areas, essential for noir. The constant rain is not a simple visual effect: it uses particles with light physics and a positional sound system that varies depending on the player's proximity to awnings or interiors. To maintain performance, developers limit the range of dynamic lights and use precomputed cubemaps for reflections. This approach demonstrates that in indie development, optimization is not at odds with artistic ambition, but rather the foundation for achieving a believable and immersive urban simulation.
As a developer looking to implement a procedural city in Unity, what voxel geometry generation techniques and noir lighting systems would you recommend to replicate the unique visual style of Shadows of Doubt without sacrificing real-time performance?
(PS: 90% of development time is polishing, the other 90% is fixing bugs)