Demos Explained; What are Demos?
What is a Demo? by Vincent Scheib
What:
Executable programs
which produce, in real time, engaging computer
graphics and music. Programming, Art, and music Composition skills are
stressed. Demos are similar in some ways (but are not equivalent) to
music videos or short films.
Where:
Demos are created at, and submitted to,
competitions called Demo Parties mostly in western
Europe. Leading countries are Finland, the Netherlands, France, Sweden,
and Germany. There have been a handful of 'Demo Parties' in North America
at Berkeley, UC San Diego, and Canada.
When:
Demos appeared in the `80s. Intros were
the first form of Demos. They became more popular in the early `90s. People
continuously argue about demos 'fading away' -- however this has yet to
happen.
How:
Initially, demos were coded exclusively
in assembly, for the Amiga and DOS. Gradually demos
started using C, and finally C++
as well as running in Windows and using hardware accelerated graphics cards.
The music for demos uses special formats similar in concept to MIDI
files (but containing their own instrument and vocal audio samples)
Why:
Demos are about passion. They are
about getting a computer to do the coolest thing you've ever seen a computer
do. They are about great music, great art, and great programming (All biased
to what the 'scene' has grown to respect).
[ Top ]
For more information:
A clean and accurate description of the scene:
Introduction to the Demoscene - hugi
A 1999 report on demos, lots of screen shots and examples:
Computer Demos - The Story So Far
Mid 1990's web page explaining demos:
PC Demos
Explained: A Guide to the PC Demo Scene
Formal paper discussing:
The
Hacker Demo Scene and it's Cultural Artifacts
Actual Demos: A collection of the best:
http://www.scene.org/tips.php
A demo that explains what demos are:
ftp://ftp.takeover.nl/pub/takeover2000/demo/orion-this_is.zip
Terms:
-
executable programs
-
-
A program is a set of instructions which control
a computer. This text was written on a web page, to view it you use a Browser
such as Internet Explorer or Netscape Navigator. Those are programs, which
allow you to browse the internet. Computer games are programs as well.
-
-
A program is different than just an animation.
An animation is simply a pre-recorded set of images played back for you.
A program must do things (such as evaluate math equations) to be able to
draw computer graphics.
-
-
real time
-
-
A program is technically said to be running
in real time if it produces results at a reliable speed. The common use
of the phrase 'real time' implies that the work is being done fast enough
that you need not wait for it. Real time animation means that the animation
is being drawn for you while you watch. A game is real time -- because
you can control it and it responds to you immediately. A movie is not realtime
because the work was done previously, you are just watching it be played
back for you.
-
-
demo parties
-
-
A demo party is usually held for a few days
(3 or so) and usually on a weekend. A large space is found, such as an
auditorium. Most everyone brings their computers and stereos and cool toys.
Loud music is played all the time. People do not sleep (well, some do,
but not many and not often). A large projection screen is found in a room
with a good sound system for viewing of demos. Games are played as well,
but many people also work on demos, intros, music, digital art, videos,
et cetera.
-
-
A competition is held during this, where at
some time all work must be submitted and then everyone watches / listens
to it. Prizes are also common.
-
-
assembly, C, C++
-
-
A computer executes machine code. Assembly
code is an easier way to write machine code (a program takes the assembly
and translates it into machine code). C and C++ are easier ways to write
assembly.
-
-
Machine code is just a large chunk of numbers
that are interpreted by a computer as instructions. The computer blindly
performs whatever the machine code says.
-
-
for example: 05031 could be a program.
-
-
If the computer were designed to interpret
it as "read a character. If it is '0' get the next character and remember
it as a number. If it is '1' add the numbers you've remembered and show
the result." My example of 05031 would print out 8 as the answer (5+3 =
8).
-
-
020407107050210101011 would print 13
14 4
-
-
Assembly makes it easier to write machine
code. A computer program translates the assembly into the machine code.
-
-
for example:
-
get 5
-
get 3
-
add
-
-
One assembler (program that assembles) might
turn every 'get' into a 0, every number as just a number, and every 'add'
into a 1. If you run this assembly on the above example you would get 05031
-- the program from the previous example.
-
-
get 2
-
get 4
-
get 7
-
add
-
get 7
-
get 5
-
get 2
-
add
-
get 1
-
get 1
-
get 1
-
add
-
This would be assembled into 020407107050210101011
-
-
Assemblers do many other things to help make
it easier to write machine code.
-
-
C and C++ are programming languages that make
it easier to write assembly.
-
-
for example:
-
print (2+4+7)
-
-
This is similar to how C or C++ would do it.
You just write out what you'd like to do. They allow you to write things
such as
-
a = (b+2)/(3*(3+7)-(4-3+6))*(2-(5+6))
-
much easier than it would be to do it in assembly.
-
-
MIDI
-
-
Musical Instrument Digital Interface. Designed
to allow electronic instruments to talk with each other -- and control
one another. MIDI files can contain musical score, and be played back on
computers (as well as electronic pianos or other instruments). MIDI playback
on computers is generally not of very high quality (or hasn't been in the
past) because it was designed to be played back on expensive electronic
instruments. To play back a piano song on a computer the computer must
know how to make piano sounds. Most computers in the 1980s and 1990s did
not contain very realistic piano sounds.
-
[ Top ]
|