A demo is a non-interactive multimedia presentation made within the computer subculture known as the demoscene. Demos are the main way for demosceners to demonstrate their abilities in programming ("code"), music ("zik"), drawing ("gfx"), and/or 3D modeling. The key technical difference between a classical animation and a demo is that the display of a demo is computed in real time (like people performing a play compared to showing a movie), making computing power considerations the biggest challenge. Demos are mostly composed of 3D animations mixed with 2D effects and full screen effects.
The boot block demos of the 1980s, demos that were created to fit within the small (generally 1024 to 4096 bytes) first block of the floppy disk that was to be loaded into RAM, were typically created so that software crackers could boast of their accomplishment prior to the loading of the game. What began as a type of electronic graffiti on cracked software became, however, an art form unto itself, and demo makers continue to push themselves to the limits of their abilities by making these short demos to this day.
For a more self-explaining definition, see Pouet.net for one of the most active Demoscene repositories.
Platforms
There are demos available for a great variety of platforms. Currently, most new demos are native-code programs designed to run on PC under the Microsoft Windows operating system, but demos are still actively being made for many other machines including old and new computers, consoles and mobile devices such as PDAs, mobile phones and pocket calculators.
The most important historical platforms include Commodore 64, ZX Spectrum, Atari ST and Commodore Amiga, and demo competitions for these platforms are still relatively common on today's demo parties. There are even demos running on such diverse platforms as VIC-20, Amstrad CPC, TO7, BeBox, RiscPC, Macintosh, Game Boy, GP32 and PlayStation.
It was still quite common in the 1990's for different platforms to have more or less separate demoscenes. When users of different platforms participated in a single event, it was considered obvious to split the competition categories for each supported platform (e.g. having separate demo and intro competitions for the PC and the Amiga).
There has also been some effort for making demos for restricted software platforms such as BASIC interpreters, Java applets, J2ME, Macromedia Flash, JavaScript, PHP and even Microsoft Office. Software platform restrictions like this, however, have not yet earned the respect from the majority of demosceners.
Size restrictions
Small file sizes have been an integral feature of certain types of demos from the very beginning, when software crackers needed to squeeze a crack intro into a very small leftover area of a floppy disk or RAM. It was also important for BBS advertisement intros to be relatively small, since they were typically included in every file downloaded from the BBS.
Sometimes even the platform itself dictated some size restrictions: the size of the boot block of a floppy disk (generally 1024 to 4096 bytes) or in DOS, the 64KB limit of a segment would also be the upper limit for the size of a boot block demo.
In later times, the practical need for very small demos had diminished, but the willingness to compete in squeezing much into little space had not disappeared. It was therefore necessary to introduce artificial size restrictions in order to challenge the authors. In modern demoscene events, there are demo competitions with relatively loose size restrictions, and intro competitions with quite strict limits of 64 kilobytes or less.
Because of the strict size limits, intros show off the programmer's ability to squeeze much into little space, often by generating graphic and sound data rather than just reading it from a datafile. Because of the extremely low size limit, 4K intros used to lack sound, or had extremely low quality music. As technology progressed, however, 4K sound synthesis has become a new frontier in the demoscene. 4K still isn't the lowest border for demosceners: some demoparties organize 1K, 256 byte or even 64 byte intro competitions. While creating a 4K might not require low-level programming knowledge anymore, sub-1K competitions require the demo coder to be skilled in both assembly programming and algorithmic optimization. (For comparison: The size of this section of article is over 2 kilobytes.)
Procedural generation techniques developed for small intros have worked their way into mainstream gaming such as Will Wright's upcoming game Spore.
Demo types
There are several categories into which demos are informally classified. The most common way to classify demos is by platform or size class, but the purpose, content or style of a demo can also matter.
Intros
An intro originally referred to an endless demo where all the action happened on a single graphical screen, often to promote a BBS or a game crack. Nowadays it can refer to any demo written within a strict size limit, such as 4 kB or 64 kB. Also, any demos written for announcement purposes (such as demo party invitation) are typically called intros regardless of the actual size.
Many demosceners reserve the term "demo" exclusively for "non-intros", that is, full-length demos that compete in demo competitions rather than intro competitions. However, the current trend of squeezing a "whole demo" within a strict intro-like size limit has decreased this kind of division.
Most demo parties have at least one intro competition, where the rules are nearly the same as in the main demo competition, with the exception of the size limit of the executable file. The most common intro types are the 64K intro and the 4K intro, where the size of the executable file is limited to 65536 and 4096 bytes, respectively.
Some intro types defined by their content rather than size may also have their own names. Crack intros or cracktros, attached to a cracked game, are perhaps the oldest category of intros. Invtros are demos or intros which serve as invitations to demo parties. A birthtro (or borntro) can announce a new demo group, while a memtro can announce a new group member, and a jointro can recruit others. For "real life" events, there have been wedtros to announce weddings and even babytros (also called birthtros) to announce the birth of a child of a demo scener.
The term dentro, much less common than demo and intro, can either mean a demo in between an intro and a full-length demo in size, or a short preview of an upcoming demo.
Megademos
A megademo is a demo that consists of many independent parts in sequence, usually with a separate soundtrack for each part and often requiring user intervention to skip from one part to the next. One of the first examples was "Megademo" (1987) by Antitrax 2010, on the Amiga computer. Megademos are quite uncommon on today's demoscene, and even the productions written for classic platforms usually follow a trackmo-like structure.
Trackmos
Since the early 1990s, the predominant demo format has been the trackmo, in which visual effects follow a set timeline, synchronised to a continuous soundtrack, much like a music video. The word "track" also refers to the data tracks of a floppy disk, and therefore, to be called a trackmo in the original sense, the demo should run from a diskette and use a custom-made trackloader to read data from it. The first trackmos included "Enigma" (1991) by Phenomena and "Mental Hangover" (1990) by Scoopex, both on the Amiga.
Classification by platform
There are demos for a great variety of software and hardware platforms, and the platform is still the most important way for classifying demos. For instance, a demo designed to run on PC is a PC demo, and one written for Amiga is an Amiga demo.
It is also common to combine several related platforms into a larger group which may also have its own combined competitions. For example, a mobile demo is a demo written for a small handheld device such as a handheld phone, a PDA or a pocket calculator, whereas an 8-bit demo is made for an 8-bit machine (typically an old homecomputer). A related term, oldskool demo, may either refer to a demo running on an "oldskool" platform (such as an 8- or 16-bit computer of the 1980's) or to a demo that is "old-fashioned" in its design choices and esthetics.
Styles and genres
It is also quite common to classify demos by style and content rather than technology. Storydemos, for example, are based on a story line, while ravedemos share the musical and visual esthetics of rave parties. The most experimental, unusual and controversial demos are often referred to as art demos or avant-garde demos. Many groups have a distinctive style of their own, and sometimes a demo can be described by referring to a well-known group cultivating a similar style, e.g. mfx style or Melon style.