intelligent agent vol. 4 no. 1
demo
computer demos: petri kuittinen
download pdf


Computer DEMOs -- The Story So Far
by Petri Kuittinen

Editor's Note: This essay has been in existence for a little while, and deals mainly with the "Old Skool" DEMO coders. It provides an excellent historical framing for the genre of the DEMO. - PL

Programming Technique + Art = DEMO
Computer DEMOs should not be confused with the DEMO versions of commercial programs. They are 'DEMOs' too, but the word 'DEMO' in this text means a program whose purpose is to present the technical and artistic skills of its makers and produce audiovisual pleasure to the viewer. A computer DEMO usually includes various kinds of real-time produced computer graphics effects -- which have little relation to each other -- accompanied by music. In a way, a DEMO could be described as a sort of music video or a short computer animation film without a plot or message other than just "hey, I can do this" and "greetings to my friends." Of course, there is an exception to every rule and some DEMOs have a plot and message. An important distinction between DEMOs and movies or videos is that the visual effects seen in DEMOs are real-time calculated, instead of rendered beforehand like conventional computer animations (where often hours of computer time are spent to calculate just one frame).
'DEMO' in this text means a program whose purpose is to present the technical and artistic skills of its makers and produce audiovisual pleasure to the viewer. A computer DEMO usually includes various kinds of real-time produced computer graphics effects -- which have little relation to each other -- accompanied by music. In a way, a DEMO could be described as a sort of music video or a short computer animation film without a plot or message other than just "hey, I can do this" and "greetings to my friends."

Most computer DEMOs are freeware, in other words they can be freely copied, but the original author retains copyright to the product. The authors of computer DEMOs don't usually release the source code and thus the DEMO programmers must figure out by themselves how to produce a certain DEMO effect, leading to many similar looking DEMOs ("I can also do it!"). People who have never seen computer DEMOs or who don't understand the creation process behind DEMOs, often find them quite boring. Computer DEMOs are made for other people interested in DEMOs, to win fame and glory among other DEMO 'freaks.' Nowadays the motivation behind making DEMOs is often to win a prize at DEMO competitions.

DEMOs are usually a group effort. The most important member of a DEMO group is usually the coder (programmer). DEMOs are conventionally programmed in assembler, but nowadays C (http://www.ioccc.org/) and C++ are also popular, and only the most time-critical parts of the DEMOs are programmed in hand-optimized assembler. The original ideology of the DEMO programmers is to build everything from scratch (instead of using existing programming libraries) and push the hardware to its limits and beyond it. e.g. many C64 and Atari ST exploit bugs in hardware, which allow some interesting effects, e.g. to draw graphics on screen borders (overscan / full screen). The sound of chips of C64 or Atari ST are not designed to play samples, but still DEMO coders have managed to do this. DEMO effects are usually non-interactive, which allows DEMO coders to hand-tune routines to do exactly-what-is-shown and not worry about anything else; whereas game programmers must use more general purpose routines and include interaction. DEMO coders often use clever tricks and actual cheating to make things look better than they really are. In addition to the coder, there usually is a musician and a graphician (graphics artist) involved, as well as contact personnel (swappers, SysOp). One person can of course takes care of several of these duties and there can be several programmers, musicians etc. Typically a DEMO group has 2-15 members, but there are several lone wolves in the DEMO scene.

The DEMO Scene
The people interested in DEMOs are known as the DEMO scene, which began to emerge in an organized  form in the mid-1980s. During those early days, the most popular DEMO machines were Commodore Amiga, Commodore 64 (C64) and Atari ST. Apple Macintosh was never a popular DEMO platform. The first PCs usually had poor graphics and sound capabilities, but the emergence of VGA graphics (http://gameprogrammer.com/3-tweak.html) and Adlib/SoundBlaster sound cards allowed to make good DEMOs on PCs, although it took the PC scene many years to learn to program these well. The ST scene began to diminish in the early 1990s, while the PC DEMO scene began to rise. Nowadays, the PC is the most popular DEMO machine, but the C64 and Amiga DEMO scene still continue to exist -- yes, some people still make DEMOs for the C64, but it has become more of a nostalgic curiosity. The DEMO scene is based mostly in Europe, and only few DEMO makers can be found on other continents. The majority of the leading DEMO groups come from Northern Europe (the Scandinavian countries tend to have more DEMO freaks per capita than other countries), and Finland could arguably be named the leading DEMO country, since Fins have gathered more prizes at major DEMO parties than any other country. It is difficult to estimate the actual size of the DEMO scene, but there are at least several thousand people in Finland who are interested in DEMOs.

DEMO Parties
Overview from Assembly'95 (Helsinki ice hall)

DEMO scene members organize big meetings, called DEMO parties, which usually last a few days and include so many different kinds of events that the attendants rarely get a good night's sleep. People go to DEMO parties to meet other DEMO scene members, swap software, play multi-player network games and watch and attend various kinds of 'competitions.' The best competition entries are usually rewarded with prizes: money and computer products from sponsors.

The number of entries for competitions at big DEMO parties can be very large, and usually a small jury consisting of scene members first reviews the entries, so hat only a limited amount (e.g. 10-15) of entries is shown to the general audience. Entries often get disqualified because they violate some competition rule, contain offensive material, or don't work on the organizers' computers.

The biggest DEMO parties are:


While these events draw thousands of visitors, there are also numerous smaller DEMO parties with visitors in the hundreds. The average age of people attending DEMO parties is getting younger and younger each year (it now is about 15-16 years), and people who win competitions are usually in their early 20s. The youngest DEMO scene members are about 10 years old, the oldest ones around 30. The DEMO hobby is even more male-oriented than computer usage in general; almost all DEMO scene members are men. There are some female musicians and graphicians, but I have never heard of a female DEMO coder. Major DEMO parties have only a low percentage of female visitors, most of whom are girlfriends of male DEMO scene members or locals who just wander in because entrance for women is often free (whereas men have to pay 100-250 FIM, which equals $15-$40 to enter the party).


Picture from Assembly'96 (Helsinki Fair Center)

DEMO Competitions
Assembly can be considered the "king of competitions" since it awards the best prizes, and there are separate categories for different kind of home computers, e.g. Amiga and PC DEMO competitions.

Left: Environment mapped metal ball from the Solstice-DEMO by Valhalla (Winner of Wired'95 PC DEMO compo)
Right: Colorful "plasma" 3D cube from Second Reality by Future Crew(Winner of Assembly'93 PC DEMO competition)

Intro Competition. The difference between a DEMO and an intro is the size of the programs. The maximum hard disk space allowed for DEMOs is usually 4 megabytes, while the limit for intros is usually only 64 kilobytes (40 kilobytes for Amiga intros). Assembly'94 was the first big DEMO party to have a 4 kilobyte intro competition, and nowadays there are even more 'extreme' ones with limits of 256 bytes. The smallest intros are always coded in assembler since it obviously is more difficult to get high quality graphics, as well as music and effects to a small size. The smallest intros (= 4 kilobytes) usually don't have any kind of music, which has been excluded by competition rules.
Left: Inside of a Gouraud-shaded torus from the Cyboman 2 intro by Complex (Winner of The Party'94 PC intro competition).
Right: A vector world from the Airframe intro by Prime (Winner of Assembly'94 PC intro competition).

Graphics Competition. This is the category for still images, usually limited to a size (e.g. 640x480 pixels) and amount of colors (e.g. 256). There is no prescribed subject for the content, but the most popular themes seem to be fantasy, science fiction, horror and semi-nude or nude women. Rules allow only self-drawn images to enter the competition, but the majority of the winning pictures cleverly borrow elements from photographs and existing fantasy paintings. There often is a different category for computer generated 3D graphics, often called the ray tracing compo.

Space Tits by Danny (Winner of Party'95 graphics competition). The woman on the left is copied from a photo of Cindy Crawford.

Animation Competition. As opposed to DEMOs, where most of the visuals are calculated in real-time, animations are rendered in advance and usually use some commercial 3D animation package, although some people prefer video or hand-drawn animations. The most popular subjects are 'rides' (flights in space, chases etc.), fights, and humor.

Music Competition. These competitions are often divided into categories such as 4-channel, MOD-formats (Protracker; http://www.castlex.com/modfaq/), multichannel (max. 32-channels) and C64 music competitions. The number of channels determines how many instrument sounds can be used simultaneously. The length of music files is often limited to about one megabyte and only 3-4 minutes max of the song are played (although the song itself can be longer). The choice of music style is free, but the majority of songs has its roots in techno, euro dance or funk. Music competitions usually gather more entries than any of the other ones, and at big DEMO parties this can mean 200-300 entries. Some DEMO musicians are now making music for commercial games or producing commercial dance music.
Music video-style DEMOs by Spaceballs (Amiga): 9 Fingers (left) and State of the Art (right)

Wild Competition. (Almost) anything is accepted in this category, it just has to be 'cool.' The entries are usually supplied on a video tap.e

Fast Competition. A competition with a strict time limit, e.g. a 24-hour coding competition or 30-minute graphics competition. The actual creation process usually happens on location.

Different Kinds of DEMO Designs
The first Amiga, Atari ST and C64 DEMOs were short intros (introductions) to video games made by 'cracker' groups, who removed the copy protection from the game. The word 'intro' nowadays has a different meaning. The early DEMOs and intros usually featured some pictures, music, and a scrolling text. The scrolling text usually contained information about the makers of the intro, and greetings to their friends or other crackers.
Left: A cracker intro by Fairlight (C64). Right: Delusion / Sonic-PC (PC).

Over time, the intros grew larger and included fancier texts -- waving, distorting, rotating and/or scaling scrolling texts; huge or parallax scrolling texts -- as well as various kinds of other effects, such as 3D graphics (from simple wire frame 3D to filled 3D); bouncing balls ('bob' or 'sprites'); plasma (shifting display of colors); fractals, especially Mandelbrot and Julia (http://spanky.triumf.ca/www/fractint/julia_type.html) etc.
Left: GigaTex screen from Life's A Bitch megaDEMO (ST). Right: Lots of scrollers by TCB in Cuddly-megaDEMO (ST).

Soon the DEMOs were so large that they contained many 'screens' with different kinds of effects and music. People often called them megaDEMOs, a term that originally indicated that the size of the DEMO was about one megabyte, but soon was used for any multi-part DEMO.

On Amiga, megaDEMOs were usually sequential -- one screen / effect following another. The user could sometimes skip a part by pressing the left mouse button. The rigid non-interactive design allowed the DEMO makers to synchronize music with the screen effects. The best examples of this are the Amiga DEMOs State of the Art and 9 Fingers by Spaceballs, which featured motion-captured video sequences combined with various graphical effects.

On Atari ST, the megaDEMO screens were often made by different DEMO groups and thus had no coherent aesthetics. ST megaDEMOs usually had a main menu screen, where you could select which part of the DEMO you wanted to watch. The main menu was often designed like a computer game: in the Union, Mindbomb and Decade megaDEMO (http: //wwwbrauer.informatik.tu-muenchen.de/~brandtf/year90.html), for example, the user controlled a character with a joystick and selected different DEMO screens by maneuvering the character over a door. In the 1991 megaDEMO Ooh Crikey Wot a Scorcher, the user was controlling a space craft, which was flying over a 3D landscape. Many of the ST DEMOs featured hidden screens (http://www.inf.bme.hu/~mandula/secret.txt) and reset screens (which started when you pressed the reset button on the machine).
Left: Main menu from Ooh Crikey Wot a Scorcher by TLB (ST).
Right: 3D balls by TLB from Mindbomb megaDEMO (ST), originally the same 3D object was done by  RSI on Amiga.

PC and C64 DEMOs accepted the Amiga-like sequential style with little or no interaction. In the mid-1990s, most Amiga and PC DEMOs were full of 3D effects. First there was wireframe 3D, then filled 3D, then flat-shaded 3D, then gourad-shaded 3D, texture mapped 3D, bump-mapped 3D, environmental-mapped 3D etc. The 3D objects were usually quite simple: a rotating cube, torus, space ship and duck are among the most popular ones. The 3D world of DEMOs is usually static / lifeless compared to the action of 3D game worlds. Many people soon started to consider these 'pure' 3D DEMOs boring, and a new kind of DEMO design emerged: moving lights and white noise were added to screen. The screen was flooded with text messages, but instead of the long scrolling texts of early DEMOs, these were short messages, and more and more effects were combined.
Left: A rollercoaster ride from the Toasted DEMO by CTS (PC). Right: Inside by CNCD (PC).

So far, the DEMO scene hasn't evolved from a concentration on technical excellence to a focus on content, which may be one of reasons why the DEMO is slowly dying away. Most PC DEMOs are still made for DOS and thus don't take full advantage of today's hardware (e.g. 3D accelerators); instead they still rely on old VGA or SVGA standards via VESA 2.0. If the main point of watching DEMOs was to see something 'cool' that wasn't possible to do in games, there need to be new developments since state-of-the-art games for Windows using cheap 3D accelerator cards have left DEMOs behind.

Many old DEMO scene members are nowadays involved in making computer games (including the author of this document; http://mlab.uiah.fi/~eye/), the production of which involves many of the skills which are needed to make good DEMOs. The 'golden years' of the old DEMO scene (1987-1996) are gone, but I am sure we will still see some interesting designs from a new DEMO scene.



Links to Further Information

General
Scene.org is a site dedicated to DEMOscene -- lots of new stuff: http://www.scene.org/
Orange Juice - The DEMOscene information center: http://www.ojuice.net

Atari
Dead Hackers Society - The best information resource for Atari ST DEMO scene: http://www.dhs.nu/
The Little Green Desktop - a huge Atari ST-site with tons of software: http://www.atari.st/

Commodore
Commodore 8-bit Server by Marko Mäkelä: http://www.hut.fi/Misc/cbm/

Amiga
Usenet news group for Amiga DEMOs: alt.amiga.DEMOs
Another Usenet news group for Amiga DEMOs: news:alt.sys.amiga.DEMOs
The Amiga DEMO Scene (great link collection): http://www.cucug.org/amiscene.html
AMiGASCNE WORLDWiDE: http: //www.amigascne.org/
Amiga Information: http://www.amiga.org/
Back to The Roots - Amiga Culture Directory Project: http://www.back2roots.org/
The DEMO.Guide - reviews of Amiga DEMOs: http://sunsite.auc.dk/DEMO.guide/index.html  

PC
Usenet news group for PC DEMOs: comp.sys.ibm.pc.DEMOs
Hornet DEMO Archived is closed now, but you can still download stuff from there: http://www.hornet.org/
PC DEMO Fan Club by Jer: http://www.jerware.org/fanclub/
A good collection of 256-bytes intros, along with screenshots: http://www.256b.com/

Making DEMOs / DEMO Programming
Dr. Dobbs's Programmers Vault: http://www.chesworth.com/pv/  
flipCode - Game Development News & Resources: http://www.flipcode.com/
GFXweb - DEMO and Game Development: http://WWW.CFXWEB.NET
The PC Game Programmer's Encyclopedia: http: //www.geocities.com/SiliconValley/2151/pcgpe.html

Graphics
GFXZONE - the ultimate DEMO scene graphics site: http://gfxzone.planet-d.net/frames.html  

Music
Amegas - Good collection of Classic Amiga MODs: http://www.niksula.cs.hut.fi/~tive/
A great Internet resource for Musicians: http://www.harmonycentral.com/
The MOD FAQ - Making MOD music: http://www.castlex.com/modfaq/
United Trackers - Information Center for scene/MOD/tracker music: http://www.united-trackers.org/
MOD Archive - A huge collection of MOD music: http://www.modarchive.com/

Glossary
assembler: symbolic machine language
BBS: Bulletin Board System (a system that several modem users can connect to, exchange information and software)
C: a high-level programming language with features from low level languages, suited especially well for system level programming
C++: an extended version of C programming language. C++ is an object-oriented programming language
coder: programmer
compo: competition
crack: a program or game whose copyright protection is removed (= "cracked")
cracker: a person who removes copyright protection or breaks into systems
DEMO: a program whose purpose to is to present the technical talents of its makers and provide audiovisual pleasure to the observer
DEMO group / DEMO team: group of a people who make DEMOs together
DEMO party: an event where DEMO scene members gather
dentro: an intro whose purpose is to preview a DEMO
gfx: graphics
graphician: graphics artist
GUS: Gravis Ultrasound-sound card
intro: DEMO whose size is limited to for example 64 kilobytes; an introduction to some other program (e.g. crack intro to cracked game); introduction of some event or person
megaDEMO: a large DEMO with many parts
MOD: a computer music format (or a number of similar music formats), which was originally developed for Commodore Amiga. Majority of computer DEMO music is in MOD format.
rip: to steal from others, e.g. rip music or graphics from other programs
ripper: program designed for ripping
spreader: same as swapper (newer term)
swap: exchange programs, music or other data
swapper: a person specialized in swapping, often involving illegal software piracy
SysOp: System operator
tracker: a program used to make MOD music e.g. SoundTracker, Protracker (http://www.castlex.com/modfaq/4-1-1.html), ScreamTracker (http://www.united-trackers.org/resources/software/screamtracker.htm) or FastTracker
trackmo: a DEMO that concurrently loads new code, graphics and / or music from a floppy disk, while showing the DEMO
trade: same as swap
trader: same as swapper (newer term)