Sunday, December 4, 2011

SkiFree, Windows most nostalgic games for me


Currently I surfed on the net and found a nostalgic game from my past. I played this game when I get my first PC on 1998. This game come from Microsoft Entertainment Pack. SkiFree created by Chris Pirih when he was working as programmer at Microsoft at the time. The objective of this game is very simple, to ski down an endless slope and avoid obstacle.


Pirih had created SkiFree in C on his home computer for his own education and entertainment. The gane eventually attracted the atttention of a program manager for Microsoft Entertainment Pack when he noticed Pirih playing it at work.

Untill now, I never finish this game because there is a snow monster or we could called it yeti that would eat you when you reached some points. Now, with the power of Google, I just discovered we could pass the monster. How? Well, we just press "F" when we sight the monster and we will speed up and leave the monster behind. Easy, eh? Yea, not as easy as when I played it at elementary school.


The programmer wrote:
I wrote SkiFree in C on my home computer, entirely for my own education and entertainment. One day while I was playing with it at work, the program manager for Windows Entertainment Pack happened to look over my shoulder and immediately decided he had to have this game. I called it WinSki, but the Microsoft marketroids hated that and decided, for inscrutible marketroidal reasons, to call it SkiFree. After some token resistance I let them have their way. Since the program was not originally a Microsoft product, Microsoft licensed it from me and paid me some trivial one-time fee (something like 100 shares of MSFT stock, no royalties) for its use.

SkiFree was intended to run on a 386 PC with VGA display. Such computers were not very powerful, nothing like modern PCs that can do 3-D rendering at millions of textured polygons per second.... No, in those days there wasn't even any such thing as a "video accelerator" -- the VGA was just a dumb pixel buffer hanging off the excruciatingly slow ISA bus. This made it pretty challenging to get good performance out of even simple sprite-oriented animation! Windows didn't help matters any by introducing several layers of abstraction between the program and the video hardware.... I discovered that it was worth almost any amount of preprocessing (on the "fast" 386 CPU) to reduce the amount of video I/O (over the slow ISA), so I designed a fairly clever algorithm to combine overlapping objects/erasures and blt minimal regions in each frame. The result was perfectly flicker-free transparent sprite animation at reasonable speed even on very slow computers, such as an old 286/EGA machine I found in the testing lab. Nowadays one would probably just render the sprites back-to-front in a memory buffer and blt the entire window on each frame.


For those who want to play this game for nostalgia you could download it here, or visit the most officiales SkiFree home page.

1 comment: