A quick update on the Dungeon Runner game, with screenshots!
Most of the work recently has been focused around getting the new art-style up and running in-engine, this includes the terrain based floor system, which I’ll explain briefly below.
Terrain Based Flooring
The floor system has progressed somewhat dramatically since we first started on the game.
- Initially we had the floor as part of the base mesh for each tile piece. This had the unfortunate side effect that when you rotated a tile piece you would end up with clear texture seams visible.
- We then separated the floor into its own object that was placed with the tile piece. We then had the floor not rotating with the tile piece, thus preserving the tiling texture on it when lined up against other tile pieces. Alas this made things very dull and you still couldn’t do anything like paths etc.
- The current (final?) system now utilises Unity’s Terrain system and a collection of Splat Map textures
Each tile piece now defines a matching splat map that is “stamped” on to the terrain at runtime in the correct location as per the tile piece. The data from a splat map is defined by the RGBA channels in a simple, very small, texture (currently only 20×20 pixels in size).
Each channel represents a different texture to be blended into the terrain, thus providing the path looks you see in the screenshots above. This particular texture is used in any situations that we have a T-Junction style collection of tiles. You can clearly see the blue channel is creating the path and the green channel is providing the “base” floor texture.
The whole system is very compact in terms of code and it reduced our draw calls by a fair chunk too.