One nifty win which I had yesterday was in getting shaders working. I had been having an issue for some time, which was this: My map is made of isometric tiles. When those tiles were solid colour, they looked super boring, and if I was moving around a large expanse with few structures, it was hard to tell what direction I was actually moving in. When those tiles had details on them, repetitive patterns formed which looked ugly and distracting.
So, I checked out Ashton. It took a little bit of playing around, because the examples in the Ashton project no longer work with the latest versions of all the things, but I was able to sort something out pretty quickly.
Compare the difference, with shader on the right, without on the left:
The shader itself is embarrassingly simple. On water, it uses a low resolution simplex noise function to multiply the pixel value on itself - basically making it more or less luminous based on noise. On grass, it does exactly the same thing, but it adds a second layer of high resolution noise, stretched in the y direction. That creates the mild, vertical streaks which look a little bit grassy.
The bonus is that this creates non-repeating patterns, so my eyes never pick out uncomfortable tiling glitches, it's completely seamless, and because of the variation, walking through huge fields of green now actually feels like you're moving.
You can check out the grass shader here on github, if anyone is suitably curious:
https://github.com/ericathegreat/marco7/blob/master/lib/marco/ui/fx/grass_noise.rb