Against the Storm is not just a construction game; it is a case study on how to integrate disparate tools under a single visual umbrella. The Unity engine manages the perpetual rain and dynamic lighting of a dark fantasy setting, while Autodesk Maya sculpts the silhouette of each race and Substance Designer provides the organic texture that cohesively unifies the steampunk style. We analyze the pipeline that makes this isometric aesthetic possible. 🎮
Isometric optimization and racial modeling in Maya 🏗️
Modeling in Maya for Against the Storm focuses on readability from a fixed top-down view. The buildings of the different races vary not only in silhouette but also in the level of detail of their roofs and facades, as these are the most visible elements. For the human race, straight lines and solid volumes evoking industry were prioritized. In contrast, the more organic factions required curved and asymmetrical geometry. The key was to maintain a low polygon count so that Unity could render hundreds of structures simultaneously without sacrificing the visual identity of each faction. Rigging is minimal, as buildings are static, but pivots were optimized for construction animations.
Organic materials and the controlled chaos of Substance Designer 🌿
Substance Designer was the logical choice for organic construction materials, as it allows generating procedural variations without saturating memory. Instead of hand-painting each texture of rotten wood or mossy stone, the team created node graphs that simulate wear from the game's eternal rain. This ensures that, although each building shares a base material, the moisture and dirt patterns are unique per instance. Integration with Unity was achieved through normal and roughness maps that respond to the dynamic lighting of the weather, making the steampunk feel alive and not merely decorative.
How does the Against the Storm pipeline manage to synchronize in real-time the assets generated in Maya and textured in Substance with the Unity engine without breaking the artists' workflow during the constant iteration of a procedural game?
(PS: 90% of development time is polishing, the other 90% is fixing bugs)