As one of the environment artists working on our student-made game Tiris, my main responsibilities involved environment creation and in-engine implementation. One of my key tasks was co-developing our primary modular architectural tileset with Luis Arnosi — a collection of assets forming the foundation for all interior structures in Tiris.
.
We began by establishing the core metrics and overall measurements for the tileset. Collaborating closely with the Design team, we created various blockout pieces and conducted tests, ultimately defining an 8×8 meter grid as the standard for all modular structures and spaces. A secondary 4×4 meter metric was used for more intricate areas or small height variations. Walls were based on an 8-meter height standard, with auxiliary 2-meter and 4-meter quarter- and half-height versions to support vertical variation. Stair elements followed these same measurements to ensure full compatibility. To diversify room silhouettes—especially noticeable with our top-down camera—we also introduced curved and rounded pieces instead of relying solely on 90° and 45° angles.
.
The meshes were designed with V Rising and Diablo III & IV as our main stylistic and modeling references, while the artistic direction drew heavily from Valencian Gothic medieval architecture. The selection and variety of modular pieces were strongly inspired by top-down games like Diablo IV; we analyzed and categorized the essential components needed to build a flexible modular set within our time and resource constraints. This required adapting our concept art and architectural references to meet both environmental and gameplay needs.
.
All models were created with Unreal Engine’s Nanite system in mind, using mid-poly geometry with enough detail for our camera perspective, letting us in many cases work without the normal map(consuming less storage resources in-game) . Higher poly density was concentrated on key silhouettes and prominent features such as columns, arches, doors, and major entrances. Flatter surfaces—floors and walls—were kept lower in polycount, with most of their detail conveyed through textures. We used smoothing groups and weighted normals to achieve the intended shading and self-shadowing without relying on baking.
.
Textures were developed alongside the tileset pieces, ensuring that temporal WIP tileable materials and trim sheets matched the in-game models and measurements before finalizing assets and letting us iterate during the process. This approach allowed for constant testing and rapid feedback, helping us quickly identify issues or needed adjustments. After trying different textel density in-game, we decided to use 512 px textures targeting a density of 256 px/m, packed into Base Color, ARM, and Normal maps. Additional RGBA masks provided edge wear and variation, and an automatic vertical gradient was applied through our main Architecture Master Material. This allowed us to add all the detail needed that the camera view allowed to see, without consuming unnecessary resources and help the game optimization.