Demo Scene - An Introduction (By Adok/Hugi)
The following article has been written for new readers of Hugi. It is an introduction to a computer art community called demo scene and the technology behind its artworks. These are the topics the Hugi Magazine primarily deals with. I am going to give you a picture what the demo scene is all about, what its historical development has been like, what the demo scene is like today and how it will probably evolve in the next few years.
When the era of home computers began in the 1980s, computer games quickly gained enormous popularity among teenagers. As young people usually do not have a lot of money, software piracy also became a widespread phenomenon. In order to fight against it, software producers included copy-protection mechanisms to their programs. But a couple of smart teenagers managed to debug the programs and remove these mechanisms - we call this process "cracking" and the people who do it "crackers". They formed cracker-groups competing with each other, and the "cracking scene" was born. From that day on hardly any game remained uncracked. The battles fought between crackers and the software industry would certainly be an interesting topic for another article. But this article is not about piracy, it is about a completely different thing; I have mentioned crackers only because they played a role in its early history.
Many boys (for some reason is unknown to me, there were hardly any girls among them) were also dreaming of creating games of their own, which was motivation enough for some of them to teach themselves how to program computers. The most gifted ones among them obtained a vast knowledge of the Assembler language and hardware-related programming, especially graphics and sound programming. By means of this knowledge, they could already create rather simple but interesting animations. Soon these animations appeared in cracked games as "crack intros". Such intros typically consisted of a scroll-text and a logo of the group responsible for the crack. With time, the intros increased in complexity; background music was added, the scrollers became more sophisticated (e.g. sine-scrolling), and some new effects appeared in the intros, such as starfields, so-called "rotozoomers", shadebobs and others. (I am going to describe these effects in the glossary.)
When at some stage people started releasing these intros as stand-alone programs and calling them demos, the demo scene was born.
Demo is short for demonstration. A demo primarily demonstrates its programmer's abilities, but also the skills of the people who created the graphics and music. All these people together form a demo group.
The demo scene started out on 8-bit platforms such as the Commodore 64 and the ZX Spectrum with very slow speed and little space on disk (a typical 5.25-inch disk for C 64 had a capacity of only about 130 kbytes). Thus the programmers of demos had to spend a lot of time in the optimization of their code in order to make their demos run at a reasonable speed. Therefore in those days the most impressive thing about demos was simply that they showed what one could do with even such weak computers if one was a very good programmer. A lot of demo programmers (or demo coders, as they called themselves) reached new limits of the hardware, and some even discovered hidden functions and tricks the hardware developers had not been aware of themselves.
From the C 64 the demo scene moved over to the Commodore Amiga and the Atari ST. Finally, around 1990, it became established on the IBM PC, too, which finally became the dominating platform around 1995.
Generations of Demos
One can distinguish several generations of demos. The first generation resembled the old crack intros, with the scroller being the central thing and everything else being built around it. Then came the trackmos, which were far more sophisticated. These demos were built around the music. The music was the leading theme, and the action on screen was designed to fit the music. Demo creators sometimes tried to give their demos a meaning by designing them to tell stories. They invented transitional effects such as various types of fading so that individual scenes of the demo would not simply be displayed one after another without any connection between them. Demos started becoming a kind of artwork. No longer was it only a demonstration of technical skills, but also of artistic imagination. They began to look good even to people who were not interested in computer programming. Some demos, such as the Amiga demo State of the Art by the Norwegian demo group Spaceballs, were even shown on TV (in case of State of the Art, it was MTV). The average age of a demo scener might have been 17 years in those days.
With the advent of 3D computer games such as Wolfenstein 3D, the third dimension also became popular among demo creators. A lot of coders programmed their own software 3D engines in order to show 3D scenes resembling those games in their demos, featuring texture mapping and shading.
When 3D graphic cards became popular, the development of demo coders' own software 3D engines came to an end. Now the hardware was very powerful, central processing units (CPUs) were fast and there was plenty of space. It was hardly possible to impress anybody any more by creating traditonal, technical demos as it was neither difficult to get a demo to run at a high speed nor to get it to display 3D walk-throughs and fly-bys using hardware functions and libaries such as OpenGL. Thus the emphasis of demos became art.
What counts these days is what a demo looks and sounds like, what feelings and messages it conveys. The skills of the graphicians and musicians have gained more importance; the coder's job is basically to implement the design concept.
However, the demo scene has found new technical frontiers. One of them is real-time raytracing. This technology started becoming very popular in 1998. Ray-tracing is a simple but, even on today's PCs, very slow algorithm that enables you to create extremely realistic looking 3D computer graphics. Due to its slowness, it is usually only used in movies as the images of movies do not have to be calculated in real-time. The challenge demo coders are taking is to optimize the algorithm so that they can actually show demos in which all frames are created using real-time raytracing. An example of successful implementation of real-time ray-tracing is the 64k intro Heaven Seven by the Hungarian demo group Exceed.
The other frontier is the size of the code and the data. Since the early 1990s, there is a special category at demo competitions for demos with a size-limitation of 64 kbytes or even only 4 kbytes (4096 bytes). All code and data together must not exceed these limits. These size-limited demos are nowadays called intros (you see, the meaning of this term has changed). When you look at a picture in a standard resolution and a standard format such as .bmp or at a .mp3 music file, you will see that they are usually far bigger than 64 kbytes. So obviously it is not possible to include music and images in such a small production without applying compression algorithms and optimizing it. In late 2000, the German demo group Farbrausch managed to surprise the international demo community with a stunning 64-kbyte intro that would have easily won against all the demos in the demo competition of the event it was presented at; most of those demos occupied several Mbytes of space. The reason for that was that they had found an ingenious way to store data which, without compression, would have occupied more than 1 Gbyte in the 65536 bytes that constitute fr-08: .the .product: Instead of creating the textures and modelling the objects using professional rendering software such as Autodesk 3D Studio Max and using these files for the demo, they created algorithms to create all the data using only a few parameters, and devised sophisticated algorithms to compress both the code and the little data that remained to less than 64 kbytes.
The Demo Scene today
These days, the Demo Scene is a big international community consisting of about 10,000 to 20,000 active demo creators, contributors and passionate watchers giving feedback. Perhaps there are even more who occasionally watch demos but do not show up themselves in any way. The average age of a demo scene member, or demo scener, is estimated to be around 21 years. Most demo sceners are educated people, the younger ones attending high school, the older ones studying at university or working. The majority of sceners is studying computer science or a related subject and/or working in the IT industry. Almost all active demo scener are male. Female sceners are still rare, and there are almost no female coders at all.
While the center of the demo scene used to be Scandinavia and most of all Finland in the 1980s and 1990s, Central Europe has grown stronger in the past years. Countries such as Germany, Poland, Hungary, France, Spain, Greece, Italy and also Russia have many active and talented demo sceners. Europe is the main continent of the demo scene. These days it is no longer possible to distinguish between Western and Eastern Europe: both parts are home to people who produce demos of a very high quality. Apart from that, there is also a demo scene in Australia, Canada, the USA, Israel and South Africa. There may be a couple of sceners in some other countries, too, such as Japan and India, but they are not well known. The reason why the USA has a rather weak demo scene in relation to its population and enormous economic power is unknown.
Germany is the country where the most popular scene convention (demo party) takes place, the Breakpoint in Bingen (successor to Mekka and Symposium), which is held every year in Easter. Two other important parties are the Assembly in Finland (held every year in August) and The Party in Denmark (also annual, in late December; however, it is no longer held; the last edition was in 2003). These parties have between 1,000 and 3,000 visitors every year. Every party takes two to four days non-stop, and its climax is the competitions. There are usually competitions (or short compos) in the categories demo, intro 4k, intro 64k, music (tracked, .mp3, chip-tunes, and others), graphics, and wild (video films, games etc.). The winners usually get prize money or hardware sponsored by various IT companies.
Demo sceners communicate with each other primarily using the Internet. The most popular communication media are Internet Relay Chat and web-based news sites and discussion boards such as ojuice.net and pouet.net. They also release their own magazines, which they call diskmags (Hugi is one of them). Demo sceners generally use the English language, except if everybody involved in the discussion is from the same country. The climate is sometimes quite friendly, but more often it is rather rough as demo sceners seem to be fond of flaming each other. Of course they flame just for fun and not really to hurt anyone, but it is vital to have a robust personality to 'survive' in the scene. Many demo sceners are quite conceited and display a rather arrogant attitude towards newcomers, but once you show off your abilities, you will be accepted.
Future of computer demos
Some of the older sceners have successfully applied their demo creating skills in their profession, creating 3D benchmarks (e.g. 3D Mark), computer games (e.g. Max Payne) or animations for movies. The demo scene is increasingly getting attention from the game industry and academic institutions; in the past few years, there have also been demo shows at the annual ACM SIGGRAPH conferences. It seems like people will continue creating high-quality demos for years and possibly even decades.
Appendix: Glossary of mentioned Demo Effects
3D engine: A set of algorithms that allows you to render three-dimensional objects with textures, move and rotate them, and create complete 3D worlds that can be kind of 'walked through'.
Fading: A smooth transition between one screen to another by changing colours and shades step-by-step. Often it is just a fade to black or a fade to white.
Ray tracing: Ray tracing simulates the way a human eye generates 3D images by tracing virtual sunrays from the camera back to the light source and calculating the points of intersection with objects. On the one hand, shades, reflection and refraction can be computed very accurately; but on the other, it is a very slow algorithm.
Real-time Ray tracing: Real-time ray tracing is the same as ray-tracing, but the images are calculated while the demo is running. This technique requires an optimized algorithm and a powerful CPU.
Rotozoomers: A simple 3D effect showing a texture zooming in (i.e. getting closer to you) and rotating at the same time. All of a sudden it "bounces" and zooms out again, etc.
Shadebobs: A very simple 2D effect that involves one or several objects moving on screen leaving traces by changing the colours of the pixels where it has been. If it is well done, it may look exciting.
Shading: Techniques in ordinary (i.e. non-raytracing) 3D engines used for more realistic modelling of the behaviour of light; there are several algorithms with varying degrees of complexity, such as flat shading, phong shading, gouraud shading and radiosity.
Sine scrollers: The scrolling object, most of the time text, moves in waves. This movement is computed by means of a trigonometric function such as sine.
Starfields: They can be 2D or 3D. In 2D starfields, you see dots symbolizing stars flying e.g. from the right to the left, while in a 3D starfield, stars zoom towards you like in the intro of a Star Wars film.
Texture mapping: An algorithm that enables the programmer to display 2D images (textures) on 3D objects in the correct perspective.