Go to bottom

I want to learn making demos

category: general [glöplog]
Hello sceners!

I'm a first year Electrical Engineering / Comp Sci student and I recently discovered this awesome thing called demoscene. I would like to learn to make demos for Windows or maybe Linux (I presume it's harder making demos for Linux?)! I have some knowledge of C, Python and Pascal programming languages, and I also did some 3D modeling in Blender. I don't have knowledge of OpenGL or Direct3D, which are needed for making a proper demo, I suppose.

So, do you have any tips on how I should start, what should I learn and where should I learn from?

First learn to use the search function (there are several threads like this one)
then read the red book (or buy the superbible) and also check the NeHe tutorial.
After that look for demos sources and demo tools on Pouet.net.
btw meanwhile you may like to play with IQ's Shader Toy.
added on the 2012-06-09 19:52:24 by pera pera
The fact that you selected an operating system and programming language is already a good start - now you have to decide between OpenGL or Direct3D. For the former, people already mentioned Nehe, and for the latter, there's http://www.directxtutorial.com/Tutorial9/tutorials.aspx, although I'm not sure how good it is. The SDK also has a tutorial although it's a bit more "barebones".

The fact that you already have Blender knowledge is probably going to save you a lot of time when it comes to meshes.
added on the 2012-06-09 20:00:32 by Gargaj Gargaj
start by allowing yourself to create some shitty first prods with what ever system you can learn fast. After a few shitty demos, you know what you need to create something cool.

The demo making process is really personal, and making stuff (and having fun) is by far the most effective and fun way to learn.
added on the 2012-06-09 20:03:53 by quisten quisten
There is also some material at
Democoding for Beginners

BTW: As you said you're studying EE and CS, are you studying at MIT? I'm just asking because I know that MIT forces you to combine CS with EE, you cannot study them separately, and that's the only university I know where it's like that (but my knowledge may be limited...).
added on the 2012-06-09 20:07:23 by Adok Adok
What Quisten said, with one addition: it helps a lot to have some sort of vision of the end product, something that motivates you and pushes you along the way. It can be a finished soundtrack or even just a visual idea ("I wanna make a demo about a flying elephant").
added on the 2012-06-09 20:13:29 by Gargaj Gargaj
Enthralled: OpenGL should be easier to learn and use than D3D. there are pros and cons by this though. someone with more knowledge than me might disagree. so i'll leave it for your own interpretation.

I don't have knowledge of OpenGL or Direct3D, which are needed for making a proper demo, I suppose.

it's not needed, there's something else called software rendering which is not widely used anymore because of the technological graphic accelerator-developments and the extensive use of that since after the year 1999.
added on the 2012-06-09 20:15:09 by rudi rudi
I gave a seminar on the topic.
added on the 2012-06-09 20:18:40 by Preacher Preacher
Don't listen to quisten. He's never made anything good in his life. Ever. Plus he's a drunk bastard. And a ginger.
added on the 2012-06-09 20:23:36 by ferris ferris
Ferris, please. (is your new nigga please)
added on the 2012-06-09 20:25:47 by __ __
..and don't listen to rudi either -- nobody uses software rendering on platforms that have a GPU.
added on the 2012-06-09 20:43:01 by gloom gloom
don't listen to gloom. he has never coded a demo before.
added on the 2012-06-09 20:51:22 by rudi rudi
What quisten and gargaj said. For the tech side of things, there are more choices these days than ever before. Pretty much every development environment has OpenGL/DirectX bindings and wrappers. There's tons of source code to wade through. There's no right or wrong here and you can do most things with any number of arbitrary hard/software/dev-tools setups. In any case it will proof helpful learning some computer graphics basics though (aka sin, cos, mod, sqrt, rnd build everything).
added on the 2012-06-09 20:55:19 by tomaes tomaes
I would suggest sdl for window management, bass for audio, opengl for 3d, openil for image loading and perhaps nehes tutorials on making stuff appear on screen.
are there any up to date open scene loaders btw? collada is, like, dead, and 2012 fbx is quite hardcore for a noob iirc. what's poor man's 3d loader today? assimp?
added on the 2012-06-09 21:20:49 by ton ton
added on the 2012-06-09 21:28:51 by rudi rudi
added on the 2012-06-09 21:49:39 by ton ton
if you're just doing simple stuff, you could write your own. its just verts, faces (indices), normals, etc.
As for more complex stuff, you can find a lib
added on the 2012-06-09 22:14:35 by CobaltHex CobaltHex
rudi: not that it's relevant at all to the discussion, but I have.
added on the 2012-06-09 23:05:21 by gloom gloom
ignore this message board and start hacking away. internet has all the resources you will ever need. you just have to have the motivation and will to get the demo done.
added on the 2012-06-09 23:39:17 by rale rale
I suggest to avoid Nehe and the Red Book (at least at the beginning) if you want to try OpenGL. I would recommend http://www.opengl-tutorial.org/ The tutorials are new (not 10 fucking years old) and cover all the basic stuff, also GO TO A PARTY if you can.
added on the 2012-06-09 23:55:13 by epsilon epsilon
And don't stop until all your base are belong to us.
added on the 2012-06-10 01:09:57 by trc_wm trc_wm
Thank you everyone for the answers! I really appreciate it. This seems like a great community.

I listened to pera's advice and searched the forum. I found lots more of useful info.

@Adok: Nah, I'm not from USA or smart enough to be in MIT. :D I'm in University of Belgrade - Faculty of Electrical Engineering. We don't have pure Comp Sci degree here, and this was the closest one to it in my country that fitted my interests.

I will listen to all of your advice, guys! So, probably OpenGL + some of the tutorial sites you posted (the tutorial site epsilon posted seems pretty up-to-date). I already have some ideas for a demo, but I don't think I will have enough knowledge to realize them soon. I will have to start with something small, though. Learning thought practice is the best!

Also, do I need lots of math for this stuff?
if you're from belgrade you should get in touch with dominator and the kosmoplovci guys. Even if you might not like their style of demos, he can still give you pointers on serbian demoscene and such.

About needing lots of maths for this stuff: You don't need to be a math guru. But the more you know the more it helps you coding.
added on the 2012-06-10 02:32:20 by psenough psenough
Demo coding isn't really any different to other forms of coding, it's just getting a pixel/plane onscreen and working from there. Any tutorial that shows you how to draw onscreen with a timer is all you need at the start,
as games share the same requirements if you can't find demo tutorials look for game writing ones.

Later on you have timelines, syncing, adding sound systems, making datafiles etc. but again a lot of this is used by games as well. Probably the only big difference are the fx themselves, but as there are only X number of fx in demos (or variations of) they're all probably covered by tutorials here.

But yeah, imo anything you code in right now is fine, there are no rules for this stuff. Just get some pixels/cubes on screen. :)
added on the 2012-06-10 11:28:07 by 4mat 4mat


Go to top