Hi-
I was wondering if anyone could help me out with a problem I'm facing. I've added many weather effects into my project, it all seems to work well, except I was hoping for a bit more of simulated realism when it comes to affecting turfs and objects with weather like snow.
Other than looping through every single turf in game (and effectively crashing the server in the process) what are some creative ideas for simulating weather changes?
Ideally I'd like at-least the ground, and maybe some structures to be covered in snow while it's snowing or during the winter months.
This is currently the look, but as you can see it's a bit odd.

My ideas so far are:
As the player walks around to stimulate the tiles to slowly produce an overlay of snow. Even then that would require overhead I'm not entirely sure I want.
The second idea is a "scrubber", (what I call it anyway)- an object that moves from map to map and stimulates the tiles to show a snowy overlay. This would of course take time.
The third idea is changing blocks at a time via code, but I don't really have an idea how to do that. I'm open to other suggestions though.
Every time a player moves, you need to check the bounding-box of their viewport plus the size of the extra buffer distance against the cells at the edge of this boundary. Loop through each cell on the edge of the boundary. Add the player to that cell's observer list. If the player has gone out of range of a cell that they are currently keeping loaded, remove the player from that cell's observer list.
That way, you will only have to update every visible cell instantly, and you can avoid updating the rest of the map over time.
My advice would be to make your cells no bigger than 32x32 in size. That's 1024 turfs per cell.
Then again, I'd also probably advise you to not even bother. Dynamic weather is one of those pipe dreams that's just a really bad idea. It doesn't really add much to gameplay, requires a lot of programming skill to do it efficiently, and increases the burden on your graphic art pipeline for almost no gain.