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
- IBM compatible PC, a 80286 processor is recommended
- Graphics adapter that can display a 40x25 character text mode (e.g. CGA, EGA, VGA). Hercules users can use their CGA emulation.
- MS-DOS 3.x and up
Technology
- Turbo Pascal 4.0 (TP4)
- DOS 3.x
- CGA Graphics (40x25 character text mode, screenshots)
- keyboard input only
- PC speaker (snake-sounds.mp3)
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.
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.