Snake

A.D. 1989

Overview

In this well-known game, the player takes control of a worm (or snake) which is constantly moving forward, eating mushrooms. The player can use the arrow keys to turn the worm, but must take care not to run into the surrounding walls, the obstacles, or the worm itself. Once the worm has eaten 5 regular mushrooms, doors open in the walls, through which the player can advance to the next level.

Every time the worm eats something, it grows and goes a little faster. Special items can also increase or decrease the worm speed, give extra lives, and so on. For special items, the increase in speed is proportional to the benefit otherwise gained from the item.

The game features 52 levels, which take about 40 minutes to complete.

Prerequisites

Technology

Adjustable worm speed allows playing this game on machines of different speeds, in theory even Pentiums. The legendary CGA graphics card could display 16 different colors at the same time in text mode. A monochrome mode was still available if needed by the physical display.

The game maintains its runtime status in video memory. In other words, there is no abstract representation of the level other than what is stored in video memory. In theory, you could actually cheat by having a TSR program modify the screen while the game runs (e.g. paint some blank areas where there used to be obstacles). In order to read obstacle info or write the current image of the worm, Snake performs a PC equivalent of the famous PEEK and POKE operations known from Commodore home computers.

Screenshots

The following screenshots were adapted to fit modern-day screen dimensions. Since they were originally taken in CGA 40x25 character text mode, their pixel dimensions were 320x400. However, screens had a 4:3 ratio, so a pixel was not square but rectangular. These screenshots were stretched to 533x400 pixels to give you the authentic 4:3 impression on a screen which probably features square pixels. A side effect of the stretching algorithm (Lanczos Filter) is that the number of colors in the resulting GIF image is greatly increased above the original 16. All of this serves to provide the most authentic rendition.

They show a selection of levels from the game.

snake03.gif
snake02.gif
snake04.gif
snake05.gif
snake06.gif
snake07.gif
snake08.gif
snake09.gif
snake10.gif
snake11.gif
snake12.gif
snake13.gif
snake14.gif
snake15.gif
snake16.gif
snake17.gif
snake18.gif
snake19.gif
snake20.gif
snake21.gif
snake22.gif
snake23.gif
snake24.gif
snake25.gif
snake26.gif
snake27.gif
snake28.gif
snake29.gif
snake30.gif
snake31.gif
snake32.gif
snake33.gif
snake34.gif
snake35.gif
snake36.gif

The minimalistic game sounds (MP3 format; length: 25 seconds) can easily drive anyone insane who isn't playing the game. The TP4 API under DOS allowed the programmer to direct the internal PC speaker to play a sound at a certain frequency, and to turn the speaker on and off. For example, when the worm eats a regular mushroom, this is accompanied by a 600 Hz beep. Effects like the "Extra Life" sound (second 17 in the MP3) are achieved by turning the speaker off and on at a very high speed, while playing a very short sound fragment in between.

Download

If you own a machine that can run this, feel free to download your personal, free copy of Snake right here:

Note that this is not going to work on most modern machines (2006) because of timing differences. The text files contained in the archive are 8bit-cp437 encoded (DOS code page 437). The game and docs are in German.