I've just read on these forums, the question "What is a Demo?" Now this is not your typical game demo that you'd download from TuCows.com or Download.com or where ever else you get those from. No, this is something that comes from an older idea back in the mid to late 80s when computers were larger, clunkier and much, much slower and limited in their hardware capabilities. I will try here to explain in my understanding what Demos are and the culture behind them.

Lets take the word demo for a moment. It's short for demonstration!


A quick look-up on dictionary.com reveals;

[size=9px]1. The act of showing or making evident.
2. Conclusive evidence; proof.
3. An illustration or explanation, as of a theory or product, by exemplification or practical application.
4. A manifestation, as of one's feelings.
5. A public display of group opinion, as by a rally or march: peace demonstrations.[/size]


Back in those days when computing power was at a minimum, as a programmer you had to really squeeze the life our of your code to get much of what you wanted without running out of memory space OR CPU juice. And often it was a yin yang effect. You sacrific one for the other. Balancing this was the ultimate skill for the programmer. This left a challange for most to boast about or show off their ability to perform as a programmer, OR Coder as became the term.

These hotshot, code-jockies started making little graphical and musical programs that would play out a sequence of, in over the years more increasingly impressive visuals and audio experiences. They started doing stuff that no one else has ever done with a said peice of hardware. This was very luring to other such enthusiastic budding coders, so they started making their own and developing their own algorithms, graphical effects and so on. These programs they called them Demos because they were contained any number of the things listed under the description of Demonstration that I gave you above. But mostly and formost their ability as a Coder!

It didn't take long for these very cocky programmers to start to compete with each other. In fact the competative spirit caught on rather quickly and groups of these coders banded together into teams and friendships where they would just come up with new programming ideas and demos. After a while competing with each other on the anchient means of the age old BBS[size=9px](Bulletin Board System for those youngin's )[/size] was just not enough. These guys wanted to meet face to face and compete on a much larger screen! So they came up with what they called the demo party.

Probably the most popular one is called Assembly, ironically enough. And it was for the most part an international event where anyone that could make it came and with them their 3.5 inch floppies filled with all of their coding glory. Deaddlines were made and if you wanted to compete you had to submit your work by X time on Y date of the competition. Then the fun... you get to watch your work on a nice big projection screen. Ok sure it was no megatron or IMAX, but hey this is the early 90s after all. All of this was called the demoscene. If you created demos or went to the parties you were involved in it.

Now as for the demo it's self, most would use Assembly mixed with a more high level language. Without getting into the politics, this was usually Pascal or C. The use of such low level methods is practically essential to any demo. It make for faster and tighter memory usage, managing those two yin and yang factors with precision. This is the coders world resides between those two. And in it they create their digital art. Because when it comes right down to it; It's a programmer who creates art with code and the Demo is the resulting piece.


I hope that I've been able to enlighten some people to the often missing details of what demos and the demoscene are. I grew up in the early years of the modern PC and my entire programming carrer has been inspired by this work and that of the early game programming. The demoscene had a very profound impact on what I preceive as what programming is.


Some links for you so that you can research more in this if you want:

http://www.scene.org/
http://www.assembly.org/
http://www.pouet.net/
http://www.ojuice.net/