Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
(+1)

Thanks! To get the effect - I made a created a custom alpha-cutoff shader that uses a custom perlin noise function that varies with time for the alpha. The dungeon version of the shader uses (1 minus noise) for the alpha. There are separate mesh renderers / game objects for the mall and dungeon versions of things, and just one camera. The mall and dungeon mesh renderers lie on different Unity layers, and the lighting and shadows that come from the mall or the dungeon is set to only affect things on its layers.

The shaders also had some triplanar shading so all I really needed to make mesh-wise for the walls were very simple block stuff and then let the shader do the work. For the dungeon, I then added some extra noise to the vertex function of the shaders that move the vertices consistently based on where they are in world space to give the walls added roughness/irregularity that still remains seamless across separate game objects.

I also made particle effect versions of the shaders for the lightning effect that comes from the smites so that the smite would show up only in the dungeon regions.

Having the shaders be GPU instanced shaders really cut down on the draw calls and helped performance.

The noise function is also replicated on the C# side so that each character/pickup knows whether it is in the mall or the dungeon when it comes to behaviour and collisions/triggers.

I'm glad you picked up on how the dead enemies from the dungeon became phone zombies in the mall! It's a subtle thing that some players didn't understand.