In November, approximately 16 years ago, I gave myself the challenge to write a screensaver in time for Christmas. It gave the effect of falling snow over the desktop, at varying speeds and including wind and various speed settings. Each snow particle was to be stored individually, and contain it’s speed, colour and trajectory.
It was put together over a number of days, way in advance, and had so many features that could be added, and so much programming and mathematics, I’d found an excellent way to practice a variety of programming techniques, including memory management.
Originally written in GFA Basic (for the Atari ST), in the mid-1990s, it’s been rewritten in various languages, including QuickBasic in DOS soon after. Back then, many machines would struggle with many ‘particles’ of snow, and it was a skill to write something effective.
My previous attempt, in 2006, was written in Visual Basic 6 and used GDI for graphics. This uses the operating system to draw graphics, and did not make use of the latest hardware. This made it less than optimal and used a higher amount of CPU.
I’ve been using VB.net for some time, and since December is nearly upon us, it was time to rewrite with DirectX and newer tools. After some major headaches with Managed DirectX (it appears to be something else Microsoft have forgotten about); the results were astounding.
Using DirectX, it can have millions of particles (more than the screen itself can show) and uses little CPU; even on low-end computers. I’ve been able to add in a number of features, and had to limit some others. I hope to add in more features in future versions. Certainly, for next years’ version, I’m hoping for the ability to pile over the desktop windows and images.
It is still currently in beta; but it’s only real issue is that it requires a Direct 3D capable card.
The latest version, Snow 2011 is still in beta but available to download from our software page; and we’d love to hear any feedback – good or bad!
Download frag.co.uk Snow 2011 Screensaver