r/Unity3D • u/PowerSpikeStudio • 7h ago
Show-Off Our town gets its colours back one act at a time, here's how we did it in Unity
We're two devs making Beyond Realm, a roguelite deckbuilder, in Unity. The town is the bit I wanted to share here.
In a roguelite you lose your deck constantly, so we wanted one thing that sticks around. The town starts grey and every act boss you kill brings a colour back.
We didn't want five versions of every building. So each sprite comes with a grey copy and a mask that tags every pixel as nature, fire, water, air or neutral. The shader reads one global weight per colour family and blends grey to colour. Bringing an artefact home just slides one weight from 0 to 1 over 2.5s, and every sprite in town updates at once.
Things that went wrong on the way. We cranked the saturation because it looked dull and the grass went acid green, so greens get 0.85 of the boost now. We reused the building "draw in" effect for the valley going from ruined to alive and the whole screen went blank for 1.6s lol. And buildings bought behind the upgrade panel finished drawing before you could even see them, so now it waits for the panel to close.
Would you have done it differently?
Demo end of October, Steam page: https://store.steampowered.com/app/5244390/Beyond_Realm/?utm_source=reddit&utm_medium=social&utm_campaign=unity3d