I had a great interest in creating realistic natural phenomena on my computer. I've spent hours trying to produce decent water-effects like waves, water-drops, mirrored images in the waters' surface, etc. or clouds, rain, fire, growing trees or mountain landscapes and valleys.
The story of the snow demo goes way back to 1990, where I've created the primordial version of this demo. In this version the snow just piled up on the ground until a limited height was reached. Additional to that the snow flakes stayed in one pixelline on the trees and any text or graphics above the ground.
I always wanted to enhance this demo so that the snow would really fall down all over the trees and color them completely white. So about two years later I re-programmed the whole demo. I made the original snow flake falling routines better and faster, so that I was able to animate up to 400 individual snow flakes without the program getting too slow.
I've used a special double buffer technique, where the clear landscape with green trees and grass was painted on the viewable screen and the same landscape covered by snow in an offscreen image. When the flakes were moved down it was tested, whether the flake hits something and then the according pixel from the offscreen image was copied to the viewport, so that when a snow flake hits a green or brown pixel on the viewable screen the according pixel from the snow covered landscape was copied.
To let the snow flakes move a little left and right by themselves a random generator calculated the direction of the movement for each flake and how many steps a flake would do in this direction, before it changes directions again. So the flakes go down the screen in a zigzag pattern.
Additional to that I've created random gusts of wind blow from the left or right and propel the zigzagging flakes additionally. Flakes that leave the screen area on the left or right just reappear on the other side, so that it looks like new flakes are blown onto the screen area from the invisible environment around the screen.
I've sent this demo to the last remaining German CPC Magazine "Schneider CPC International" and it got accepted to be put on the coverdisk of that magazine. Unfortunately it turned out that my program was published in the final issue ever and therefore I didn't get payed in money, but received a number of back issues and cover disks instead.
Some years later it was used as custom screen saver for Future OS and I added it as cheat part to my Plasma Demo (Hardwired) of the Divine Megademo.
To get to the "Snow Demo" you just have to press the "Y" key, when you can see the Hardwired picture. Enjoy!