The Art of Demomaking - Issue 01 - Prologue by (23 August 1999) | Return to The Archives

Introduction

Welcome to the first series of The Art Of Demomaking. It will be composed of 8 tutorials, starting with very basic computer graphics, and gradually moving towards higher quality effects. I will also include explanations of other important techniques, even though not directly related to graphics. The articles will be posted weekly on flipCode, and if the column is a success, I'll write another series.

Demomakers & Demomaking

Demomaking originated when crackers wanted to leave their marks on programs they had cracked. At the beginning, this mark usually was a simple screen of ASCII graphics, but they very quickly evolved into impressive effects. Obviously rivalry between different groups appeared, and competitions started to take place.
The most talented people from the demo-scene have now broken away from the illegal aspect of software piracy and hacking, but the "Dark Side" still remains. Nowadays legal demo-parties can attract thousands of people, but only a few of which are serious demomakers. The others are mostly curious gamers, that tag along for the good atmosphere and the network games.
To give you an idea of what a demo is, go to http://www.cubic.org/gallery/. I strongly recommend downloading Toasted presented at Assembly '96, one of the most prestigious demo-parties in the world.
You can also find recent productions, results from the parties, and anything else you need to know about the current demo-scene at http://www.scene.org.
As you will quickly realise, demomaking has always been about showing off talent, by programming effects, composing music, creating pictures... I always think demomaking as a combination of the best of two worlds: Science and Art. Putting all this knowledge together in a single good demo takes a lot of skill, part of which I will try to teach you.

Building Blocks

I will assume you have basic knowledge in C++ programming, but any C or Pascal programmers should have no trouble. Basic mathematics would also be a bonus. And let's not forget a bit of patience to read through and understand the provided source code.
But most importantly, you need IMAGINATION. What I will try to teach you is only a base on which you can build your own effects. Demomaking is all about originality!!

Installing DJGPP

We will use DJGPP for this series, mainly because anyone can get it for free. It's also a great compiler, extremely easy to use, and most good libraries that we'll make use of support DJGPP. The down side being it is DOS based, but never the less all the principles you will learn are also applicable to any OS.
If you don't already have DJGPP installed, point your browsers to http://www.delorie.com/djgpp/ and go to Zip Picker. It doesn't really matter what options you chose, just as long as both C and C++ are selected.
You can also just go directly to the "Get DJGPP" section and download the following files:

       v2/readme.1st       Installation instructions      14 kb
       v2/djdev202.zip     DJGPP Basic Development Kit   1.4 mb
       v2gnu/bnu281b.zip   Basic assember, linker        1.8 mb
       v2gnu/gcc281b.zip   Basic GCC compiler            1.3 mb
       v2gnu/gpp281b.zip   C++ compiler                  1.2 mb
       v2gnu/lgp2811b.zip  C++ libraries                 583 kb
       v2gnu/mak377b.zip   Make (processes makefiles)    242 kb

That's about 7 mb of downloads, but definitely worth it :)
To install DJGPP, just extract all the ZIP files to a same directory. Then create a batch file called DJSET.BAT:

       @ECHO OFF
       SET PATH=C:\PROG\DJGPP\BIN;%PATH%
       SET DJGPP=C:\PROG\DJGPP\DJGPP.ENV

That's supposing you installed in C:\PROG\DJGPP of course.
Building programs with DJGPP is very easy. Just open up a DOS box and run DJSET.BAT. Then edit TEST.CPP with your favourite editor:

    	#include <iostream.h>

    	int main()
    	{
                cout << "The Art Of Demomaking." << endl;
    	    return 0;
    	}

To compile just type:

    	gcc test.cpp -o test.exe

Closing words

Next week we'll be getting right into it. I will introduce you to basic computer graphics, then we will program a simple starfield effect. So make sure you have DJGPP up and running by then. Hope you can join me next week, Alex

Article Series:

> - The Art of Demomaking - Issue 01 - Prologue
> - The Art of Demomaking - Issue 02 - Introduction To Computer Graphics
> - The Art of Demomaking - Issue 03 - Timer Related Issues
> - The Art of Demomaking - Issue 04 - Per Pixel Control
> - The Art of Demomaking - Issue 05 - Filters
> - The Art of Demomaking - Issue 06 - Bitmap Distortion
> - The Art of Demomaking - Issue 07 - Bump Mapping
> - The Art of Demomaking - Issue 08 - Fractal Zooming
> - The Art of Demomaking - Issue 09 - Static Texture Mapping
> - The Art of Demomaking - Issue 10 - Roto-Zooming
> - The Art of Demomaking - Issue 11 - Particle Systems
> - The Art of Demomaking - Issue 12 - Span Based Rendering
> - The Art of Demomaking - Issue 13 - Polygon Engines
> - The Art of Demomaking - Issue 14 - Perspective Correct Texture Mapping
> - The Art of Demomaking - Issue 15 - Music And Synchronization
> - The Art of Demomaking - Issue 16 - The Final Product

Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.