I really wanted to make the world of Verdant Skies beautiful- and as a developer, I figured the best way I could contribute was with fancy graphical effects like these reflections.
I wrote the reflection shader with the help of Scott (thanks Scott!). At first, it started as just a way to animate the water, so the first thing to add was the rippling pattern that occurs on the surface. I won’t get too technical here, but if you’re interested in details, the core idea is using a normal map to displace your UV texture lookup.
In order to actually generate the reflections, we select everything that is “reflect-able” and draw it separately. We also draw the background color, which represents the color of the sky that is reflected by the water:
Then we composite that reflection map on top of the water that we’re drawing.
The animated reflections are looking pretty cool, but it doesn’t really look like water.. kind of like a shimmery mirror. So we blend in a texture as the last step. Have you ever noticed that when you look across a big body of water and see a reflection, that moving doesn’t really change what’s reflected there? There’s a pretty constant gradient because of how the sky is reflecting in the angle of the water.
In the 2D world of verdant skies, we simulate that by blending in a hand-painted water texture. The final result gives you a nice subtle color and texture difference from top to bottom:
In other Verdant Skies news: Beth has been hard at work doing the level design for the real map. I’ve got a huge list of mostly small usability bugs to fix. Lizzy has been working on the art for the player- there’s a lot of art to make for our fully customizable characters! More to come about that in a later post…