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."
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.
Play!
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?
Why not fork?
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 (www.libsdl.org) for general game/demo programming. But also directfb, if you intend writing software for Linux only. For applications I would recommend Qt (www.trolltech.com), 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!
Is anyone else getting a 404 on meta moderation?
http://slashdot.org/metamod.pl
How do I become a hacker??
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
the pun is mightier than the sword
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.
The Demo Effects Collection. With full source, GPLed, done with SDL... What more do you want? :)
Try Assembly.org 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.
Pixels keep you awake!
Deitel and Deitel How to program. Very easy to understand. It was the book my first programming classes were based upon. Have fun!
If you fancy taking the OpenGL route to writing demos, check out http://www.gamedev.net/, great resource. Specifically for tutorials that will take you from drawing a 2D square all the way to 3D physical simulations check out http://nehe.gamedev.net/.
Enjoy...
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.
11*43+456^2
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!
You don't have what it takes. If you've been using computers for years and it never dawned on you what can be done until you saw someone else's work, you don't have what it takes.
If you haven't yet taken the thing apart, coded stuff just to see what can be done, you don't have what it takes.
If you haven't played with this stuff at least in your teens, you'll never have what it takes.
The same goes for electronics. But that doesn't stop the cults from recruiting people who never touched electronics in their lives and 4 years later they're engineers. They don't have what it takes either, sorry.
Besides, real demo coding was all about pushing the envelope. On a Commodore 64, you had 16 colors , 8 sprites, three voices and a 1MHz 8 bit processor. It *meant* something when you could display 256 sprites with digitized music.
What does it mean on a 3GHz PC with a 128MB graphic card?
Nothing. It's over. You're too old, and too late.
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
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.
...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. "
How are you going to keep them down on the farm once they've seen Karl Hungus?
but what the hell is the 'demo' scene?
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.
OpenGL.
Why not OpenGay or DirectGoatse ?
But perhaps all creative people are writing backdoor and such shit these days instead of demos.
Demoscene is not just about programming. The "classic" demogroup-setup consists of coder, musician, graphician and organizer. The organization part has faded away abit cause of the net and easy distrubution methods but basically all other parts are still there.
As a real demoscene-coder you have to be artistic too, good code is important but bad design ruins it. Demo-scene programming isn't just about "good" programming, it's about creatively coming up with fresh ideas, performing unbelievable things.Putting 100mb of sound/model data in 64k?!? Not possible?!? Look for farbrausch's intro "the product".
What exactly, is the demoscene? It's been mentioned on slashdot many times before, and each time I follow the links, and I still don't know what the heck the/a demoscene is. Someone please explain...
Have you read "x86 Assembly Language for Dummies"?
I'd rather be a conservative nutjob than a liberal with no nuts and no job.
hillarious
Cover your eyes and click this link!
first and most important link
www.scene.org