Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Programming IT Technology

For Those Who Wish to Join the Demo Scene? 56

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."
This discussion has been archived. No new comments can be posted.

For Those Who Wish to Join the Demo Scene?

Comments Filter:
  • I used to do it (Score:5, Informative)

    by JohnFluxx ( 413620 ) on Wednesday January 15, 2003 @02:41AM (#5086335)
    I started learning about demo'ing back when it was popular, and done a few basic ones myself.

    But these days it is very hard - watch some of the stuff by siggraph if you want to get depressed by the quality of stuff that is out there.

    On the other hand, it is easy to do stuff that looks nice - even if you have to accept it has been done tons of times.

    My favourite one that I did was when I tried to write a program that simulated how a brain works, with neurons etc. It produced some really wierd graphics.

    In the old days you would have to write most of your routines in asm - although things like denther tutorials were a great help. However these days you don't need to know how to write the fastest putpixel routine. You can use opengl with sdl or whatever rocks your boat.

    So inconclusion, learn a tiny bit about opengl, then start playing about. Try putting coloured squares randomly on the screen - this is quite a nice effect. Then fade it. Then texture the squares. Then make some opaque.

    At really good one to do is the fire effect. Draw a row of pixels at the bottom of the screen in a random mix of red, orange and yellow, then on the row above that, for each pixel average the three pixels below it plus the three pixels that were in that position last frame ago. Draw the frame, then regenerate the bottom row randomly.


    • Re:I used to do it (Score:5, Informative)

      by JohnFluxx ( 413620 ) on Wednesday January 15, 2003 @04:14AM (#5086478)
      Yet again replying to myself..

      A good way to get respect and help from others is to do a nice start up screen for one of the OS games. Take tuxracer and add some nice effects to the start up screen. After all, that is how the demo scene started. It lets you learn, be appreciated, and have your results last a lot longer than most demos.
    • LOL. I remember picking up a book on that kind of stuff (graphic programming) and immediately turning to my Turbo Pascal compiler to plug in assembly routines to switch me into one of the Mode X resolutions. Doing manual putpixels, scrolling split screens, and what-not. Trying to figure out how the heck I would write my own 3d code.

      Now, all the concentration is away from the low-level coding and you get to lean on OpenGL to do all the dirty work. Must be nice!
  • Buy a book on game programming? Perhaps one written when DOS was king^Win vogue^W^Wthe OS for PCs so you can learn all the fun stuff like using pointers to directly manipulate the graphics hardware?
  • Understanding (Score:5, Informative)

    by e8johan ( 605347 ) on Wednesday January 15, 2003 @02:45AM (#5086346) Homepage Journal

    First, you should try to understand how computers work. There are many great books on the subject, but I find older tutorials just as informative. For graphics I would recommend the PCGPE, at least the VGA tutorial.

    You also need to learn to program. This is done on two levels, first you learn one language, but when you try your second you will see the similarities and thus learn programming, and apprechiate the languages as tools (at least that is the ideal case). I would start by using C or perhaps C++ as these are the most commonly used languages today (they are however not the easiest languages, and for example, pointers require a good understanding in how a computer works). I would recommend Steven Prata's book on C (I don't remember it's title, but try amazon). For C++, just try Bruce Eckels homepage, he has lots of free books on line (google for Bruce Eckel).

    The you will probably need a library that removes all the fuzz from programming, such as hardware details (you still need to understand the hardware though!). I would recommend SDL ( for general game/demo programming. But also directfb, if you intend writing software for Linux only. For applications I would recommend Qt (, a great UI/portability toolkit, but I have to mention GTK+/GNOME too (to avoid being hit by flames from their fans).

    A general tip is that knowledge pays. Read as much as you can, howtos, tutorials, books, articles, etc. and try to understand it. If you see how things work, you will soon become a great programmer. It helps if your attitude is "difficult you say? I like challenges!".

    A final warning, programming can be concidered a drug. It easily eats much of your spare time!

    • > I would recommend Steven Prata's book on C (I don't remember it's title, but try amazon).

      It's called "C Primer Plus" - don't confuse it with his C++ book "C++ Primer Plus".

      C Primer Plus is in it's fourth edition, and covers the latest C standard (C99), so make sure you get the latest/greatest.

      I've just recently started this book, and thus far, it seems written very well, so I'd have to agree with this suggestion.

      I've also seen books out there on physics for game programmers - this might come in quite handy for things just as simulating the look of gravity's effect on objects, etc., so look into that, too.
      • Re:Understanding (Score:3, Informative)

        by e8johan ( 605347 )

        "I've also seen books out there on physics for game programmers - this might come in quite handy for things just as simulating the look of gravity's effect on objects, etc., so look into that, too."

        I would like to point out that such tutorials and texts are easily found on the internet. Just google around a bit and you can get it for free (instead of buing expensive books).

        • Re:Understanding (Score:3, Informative)

          by JohnFluxx ( 413620 )
          Unfortunetly it can be hard to know what to look for. Like how would you learn about karman filters if you hadn't heard about them?

          • It is also hard directing people not stating exactly what it is that they want to do... I think that there is a good collection of demomakers using SDL, thus I point in that direction.

            The programming field is so wide that the best way to learn is to evolve, that is why I recommend any wannabies to *learn*, read everything, and be interested.

          • Re:Understanding (Score:2, Informative)

            by CorTechs ( 584912 )
            True, but the wealth of information available out there is astounding. A simple google search [] yeilds amazing results.

            Then there are demo specific sites:
            OJuice []
            Scene []
            CFWweb []

            General game programming sites help aswell:
            Flipcode []
            GameDev []
            GameTutorials []

            The information about karman filters isnt what you should learn first. That type of information will come later, once you develop specific skills, different techniques will come to light.
      • Re:Understanding (Score:3, Informative)

        by Tumbleweed ( 3706 )
        Oh yeah, another point about buying computer books - make sure you check the publisher's (or author's) website for errata - corrections to the text. When you've got a typo in a bit of sample code, it can really mess with your head! :)
    • Deitel and Deitel How to program. [] Very easy to understand. It was the book my first programming classes were based upon. Have fun!
    • On the subject of C books, I'll toss out three that helped me: "Practical Programming C" by Steve Oualline (published by O'Reilly), "A Book on C: Programming in C" by Kelley& Pohl (published by AW) and "The C Programming Language" by Kernhigan & Ritchie (a classic, published by PH). C is probably one of the most frequently used languages for demo programming becuause it lets you get really close to the machine, but you don't *have* to start there right off... The goal of a demo is to produce neat graphics (and possibly sound), and a lot of languages can do that. For example: Java is usually a little easier for newbies to grasp (no manual memory management, etc) and with a modern JRE/JDK you have access to Java2D (and Java3D as an optional add-on). I've even seen fairly impressive graphics demos done using nothing more than JavaScript and DHTML. Flash MX brings a lot of linguistic power to ActionScript, making some very impressive (and portable) demos possible (see Learning C will pay off down the road because so many languages were based on or influence by it, but you're trading off initial pain for long-term benefit...

      One bit of advice: start small! Even if your first project just puts one colored pixel to the screen, it's a start. In other words, the easiest way to get discouraged and quit is to straight-off try to build all of Rome in a single day.

      You'll probably end up buying a LOT of computer books. This is natural, becuase you've got a huge body of knowledge to assimilate. Your best bet is to find a place that gives good reviews (e.g., look at the list of recommended books, and then buy one or two from a place with good prices (I use a bunch, their prices are very low, service is good, and shipping is less than sales tax if i order a couple books at once).
  • by Sabbath.sCm ( 542240 ) on Wednesday January 15, 2003 @03:30AM (#5086417) Homepage
    How do I become a hacker??
    • Illz need ur emailz addrezz. den u get to b3 3l33t. li3k m,.e lolz,,
    • In case anyone was /seriously/ curious about this ... s. html
      http://www.cano g.html l

      I snarfed most of these from one of my web pages ( If there's other great Unix culture documents out there, please send me the link :-)
    • How do I become a hacker??

      Simple! Use Microsoft Outlook. All you need to do is add your target to your address book before reading your email. You're really leet if you hook it up to an Exchange server.
  • by Basje ( 26968 ) <> on Wednesday January 15, 2003 @03:57AM (#5086453) Homepage
    I was in the demoscene a long way ago (cbm64). The demoscene wasn't really seperated from the warez scene (then called swapping, exchanging floppies by snailmail :), so I will not call names.

    The way to get into the scene is much the same as you get into any scene. Just do it.

    1. Start making demos, simple demos, learning all the way. Do not expect to be top dog next month. Rather try to do a little better every time. Be critical. Add detail step by step. If you're a coder, empasise on that. If you're a designer, make graphics. Develop a neccessary skill.

    2. Meet people. We've got the internet now, so publish your demos to a website. Most feedback you get will be negative. Don't be put off, but value all feedback to it's merits. Try to get more info. Try to get in contact with people that have skills you don't have. Cooperate.

    3. Do not bitch. You do not have to help everybody, but behave normal. You will not have to be 733t. The less you piss people off, the easier you're going to get respect. Pissing off people sometimes seems the norm in the scene (or so it was one time. I suspect not much has changed). Don't be put off by it.

    Hope this helps
  • self taught (Score:4, Informative)

    by sir_cello ( 634395 ) on Wednesday January 15, 2003 @03:59AM (#5086458)
    Most demos/intros/scene productions are developed by self-taught 'coders', involving: - reverse engineering of existing demos / intros / etc; - gradual mastery of production through multiple repeated attempts; - reference books (algorithms, language reference, machine reference); - sometimes brain-smashing with other coders; One of the key features of a good demo/intro is the way that it pushes the machine somehow, by particular use of machine features (undocumented hardware features, novel algorithms [self modifying code, runtime code production, novel graphics algorithms, etc]). Basically, the better demos cause you to marvel in wonder somehow. There's also a need for an art/design element as well - good composition, structuring, arrangement of music, graphics, etc. Often you get this from a collaboration of a group (coder, grafician, musician, etc) more than one lone coder. I should know, I used to produce demos/intros in the C64 scene many years ago. I suspect the same culture lives on into PC/playstation/etc. The difference is the level of power available, and perhaps being able to use higher level tools. Anyone in the scene would treat so called 'games' or 'demo programming' books with horror and run a mile. Typically such books are aimed purely at trapping wannabe demo makers / coders and aren't really that useful. The advice is: look at existing demos/intros, start making your own, your first productions will possibly be not very good: improve, try again. If you are clever/intelligent/capable, then within a few iterations you'll start producing world class. Timeframe: 2 years.
  • by rudib ( 300816 ) on Wednesday January 15, 2003 @07:32AM (#5086876) Homepage
    The Demo Effects Collection []. With full source, GPLed, done with SDL... What more do you want? :)
  • Try [] for some details about the 'demo scene' AFAIK. Two demo sceners' sites are; Byterapers [] (old group) and tAAt [] (new group).

    Its too bad you missed the ASM Party 2002 BTW. It was cool and I had almost no English speaking demo-lovers to chat with! :)

    Also, the 'intro scene' was where the fun was BTW. ;)
  • If you fancy taking the OpenGL route to writing demos, check out, great resource. Specifically for tutorials that will take you from drawing a 2D square all the way to 3D physical simulations check out

  • If you were the programmer type, it would've already struck you that you were during your years of computer use. Demos (I'm thinking of course of good old ASM demo writing) are the pinnacle of raw programmer talent display. Winning a demo competition is basically saying "I am a very unique, gifted, exceptional programmer who can kick other programmers' asses". The odds of a regular computer user with no previous programming experience managing to churn out an original demo, even with a library of related books on-hand, is slim.
    • Demos may be the pinnacle of a certain kind of programming (making graphics and music with really small amounts of code), but I don't think that's the only kind of programming, nor even the hardest kind of programming. In fact, in some ways it's pretty easy, since the project is usually so small that you can pull some really dirty tricks without losing the manageability of the code. Do demo programmers find compiler-writing trivial? Algorithm design? Concurrent programming? Of course not.

      Anyway -- writing stupid little assembly demos was how I began programming. The stuff I was doing had been done before (for the most part) and better, but I still enjoyed doing it. If his question is, "I want to get into the demo scene because I have some really sweet ideas and I think I could win some of those competitions," then you might be right. If it's, "Wow, demos are really cool and they have really excited me about programming and now I want to try," (which I think it is), then I think starting with Demos is a completely reasonable idea.

      • I can see the angle you come from, but I'm of a different opinion on the matter. Good asm demos (original and mind-bendingly efficient code) are the pinnacle of coding. People who can pull off the kinds of tricks neccesary to do these things can pull off just about anything else in the programming world with a reference book and a little time. It's hard to say that of any other area. Algorithm Design, Concurrent Programming, Compiler-Writing, and many other "tough" areas of programming involve a lot of the same skills that the demo coder employs, surprisingly. Top demo writers are doing very heavy math in their code, often inventing custom algorithms, and writing what amounts to scripting languages that are efficiently encoded as bytestreams to play the demo. Concurrency is a little iffy, but even then I think some of the things a demo writer deals with on interrupt handling and DMA transfers come close enough to get you in the ballpark.

        Sure there's lots of programming tasks that have nothing to do with demo writing - but very very few people have ever mastered the art of the asm demo (like fine works of art, incredible demos are rare). Those people are the "born to code" types who can accomplish just about anything else as well. Demos are the way they show off, in a way that even non-coders can appreciate (although sometimes only a coder can truly feel the amazement at what was accomplished).

        And yes, I'll concede that writing "stupid little assembly demos" is where a lot of people start (hey I did too), but that's a whole different thing from writing really good ones, or really being a demo scene kinda guy. Just as programmers are a small elite pool of the general computer population, good-demo-level coders are a small elite pool of the general coder population. Therefore, I don't think your average computer user who isn't yet a programmer should really be aiming there, most likely if they were that kind of natural they'd already be coding something.
  • by ( 213397 ) on Wednesday January 15, 2003 @11:01AM (#5088080)
    First, you can't be older than 13, or at least can't act older then 13. Having any of the following will immediately disqualify you: wife, kids, or a job where you have to wear shoes.

    Second, you must be M3G4 31337 and learn to substitute numbers and punctuation symbols when typing words. Massive use of abbreviation helps.

    Third, you must have large quantities of pizza and cola nearby at all times. Purchased, of course, with a credit card "borrowed" from an IRC buddy.

    Fourth, you must have no life outside of the demoscene, lest you become unable to dedicate every waking late-night moment to the demo group.

    Fifth, you have to wear imitation Matrix-style sunglasses and a long black overcoat. Intersperse conversation with constant quotes or references to the movie.

    Sixth, you need to have visions of morphing faces and twisting landscapes and generally be pretty freaked out. Drugs can help, but if you're a true demoscene natural you've been born this way.

    Seventh, you have to be able to accomplish in two lines of code what most programmers take 200 lines of code to do, provided that of course no one else but you can understand those two lines of code.

    Eighth, you have to have friends with names like RandomOooze and TwistedNemesis. None of your friends have street addresses, and you've only seen them in person in dark chambers with hundreds of monitors in some non-descript European city.

    Nineth, you have to have at least several IRC buddies in Finland, Norway, and Germany. Preferably at least one of them is currently wanted by Interpol.

    Tenth, you have to constantly brag about impressive adventures with your girlfriend. She must be imaginary or reside somewhere far away, such as Canada.

    If you can do these top ten things, you will truely be part of the demoscene!

  • by jahalme ( 563074 ) on Wednesday January 15, 2003 @11:40AM (#5088393) Homepage
    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 []

    • by Anonymous Coward
      that the whole scene went totally gay and all art is fucked up.
      When I was young people were writing their own libraries and did rotation cubes 'n' donuts on a 8 MHz system in 20 raster lines. Of course you are too gay these days to even know what raster lines mean.
      Why not OpenGay or DirectGoatse ?
      But perhaps all creative people are writing backdoor and such shit these days instead of demos.
      • Maybe they're all making this [].
      • I know what you mean. I think most hackers have moved from the Amiga to Linux nowadays, and since programming for a HAL is nowhere near as fun as coding directly for the hardware they code non-graphical stuff instead. The demo scene has suffered, but the open source/free software movement has gained massively as a result.
      • I got involved with the scene back in the 80s as well and don't really like the way demos are going these days either. Still, I'm glad to see that there are new people wanting to join the scene and keeping it alive even if it's not the way it used to be.

        But hey, despite the fact that the "mainstream" is coding PC demos these days, the oldskool is still here even if it's not so visible anymore. Just look at Alternative Party [], for example.

  • ...but far more interesting is the same question after being translated to Korean then back to English using babelfish [].

    " I for the possibility of year now used the computer. I that RAM of pro assuredly inside drawing up, not pulling an interest, but after seeing a connection in demo Dvd from, my matter of concern and interest is inside the flower which is sufficient. Inside when you create the demo, interest it is, you it starts to where to do, it did to sleep? It spreads out book, it lives theyn the place? ci Height ten:00 bedspreads, me for a delivery the computer which only it uses, and it is a smallness until crab it comforts inside mind. "
    • This sounds like the installation manual for the generic-brand motherboard I just bought ;-)
    • ...but far more interesting is the same question after being translated to Korean then back to English using babelfish

      I have to admit, I just coudn't belive it: I had to run it through babelfish myself.


      Curiously enough, it alternates between two different translations...the second version is pretty good, too:

      I for the possibility of year now used the computer. I program assuredly inside drawing up, not pulling an interest, but after seeing a connection in demo Dvd from, my matter of concern and interest is inside the flower which is sufficient. Inside when you create the demo, interest it was, you under it starts the man with underdeveloped genital organ it did to where? It spreads out book, it lives theyn the place? ci Height ten:00 bedspreads, me for a delivery only the computer, and comfort used a smallness until game inside mind.

  • but what the hell is the 'demo' scene?
  • Have you read "x86 Assembly Language for Dummies"?

We are not a clone.