Slashdot Mirror


For Those Who Wish to Join the Demo Scene?

Sean Cope asks: "I've used a computer for a number of years, now. I've never been interested in programming, but after seeing the link to the demo DVD, my interest is in full bloom. If you were interested in creating a demo, where would you start? What books would you buy? Keep in mind, I've only used a computer for communication, and games up until this point."

1 of 56 comments (clear)

  1. Becoming a democoder by jahalme · · Score: 3, Insightful
    Learning how to code demos isn't something one can learn in a few weeks, or even years. There are no Learn democoding in 21 days books and lots of things you need to know have to be learned the hard way. There is a reward in the end, though; coding demos can be amazingly fun - so much more than just watching them.

    The first thing you'll need to to is learn a programming language and get familiar with it's development tools on your platform of choice, be it Linux, Windows or MacOS. You don't need to master the language as demos do not always need the most advanced features that some languages offer (such as multiple inheritance, etc). At first, writing 'hello world' -programs and such may be quite boring and frustrating but have patience - eventually you'll see that the skills you've learned will prove useful. A final word regarding the language; In the old days all demos were written in pure assembly language but these days C++ is the one most coders use and would be smart choice to learn. A good book on C++ is a way to get started.

    Once you're comfortable with the language and it's tools, the next step is to learn more about your computer works. You'll need to know how to control the hardware; graphics card, sound card, timers and such. In modern operating systems this means studying the application programming interfaces (APIs) that the operating system provides. Fortunately, there are plenty of good tutorials that teach how to, for example, display graphics using OpenGL or DirectX. There are also many good libraries (Bass, FMOD, etc) for playing different audio files and you'll find them to be quite useful when adding music to your demo productions. Most people use their own timing system but there are some timeline editors such as Demopaja which may ease the work.

    Now that you know the language and how to control your computer, you'll need to know how to code effects. Learning the math behind 3D graphics is quite useful, as is knowing how to manipulate bitmaps with convolution matrices and filters. Don't be afraid of math - it's a very useful tool and a key to understanding how effects really work. The internet is full of information on how to code different effects and functional examples to experiment with. Watch a lot of demos and try to figure out what effects they use and how they are are made. Read magazines, look at pictures in them and try to imagine how they would look animated. Look around when walking in a city or in nature - think of ways how to model things in the real world. Experiment with your code - quite many effects have been found by accident when experimenting. Chat with other demosceners on the net, maybe even meet them in real life at parties. Friendship is an important part of demoscene and discussing ideas with other people will often spring new ones. Code alone doesn't make a demo and you'll need find friends who can make music, paint pictures or create 3d models.

    Don't feel overwhelmed by everything that you need to learn and do. If you can find the right frame of mind, you'll endure through the tedious basics of programming - see it as a challenge. After a lot of work, seeing your own effect work is a very gratifying experience. Once you know the basics, the possibilities are endless. Above all, the most important thing is to have fun.

    Some links:
    NeHe's OpenGL tutorials
    Andy Pike's DX8 tutorials
    Bass
    FMOD
    M0ppi Demopaja