Demos Explained

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.

Text based on "linkDemos Explained; What are Demos? What is a Demo?" by Vincent Scheib. With kind permission.