Programming demos

Started by
1 comment, last by Zahlman 17 years, 4 months ago
Hello! I've been programming C and C++ for a while now and have recently got my eyes open for the demoscene (www.pouet.net). I'm completely in love with the idea to make demos! But I'm stuck, I don't really know where to start :( Do I have to learn som Assembly? Should I use OpenGL or DirectX or some other API? I'm a complete beginner to the world of graphics programming, but I'm a dedicated programmer, so I don't think I'd have a problem learning. Any links, tips or anything that might just help me out is welcome! Thanks in advance! // AppleBoy
Advertisement
While you could feasibly use any programming language you like, it's fashionable to make tiny exes in the demo-scene, so assembly is pretty much necessary. You could save yourself a lot of effort, at the cost of some credibility, using bare-bones C.
Assembly is an easy language to learn, if you're familiar with procedural programming. At first, you'll sorely miss the cosiness of strong typing and you'll likely get yourself into nasty pickles before long (it's difficult not to shoot yourself in the foot), but once you get the hang of it, the spartan nature becomes somewhat refreshing.

All the demos I've seen use OpenGL, and I suggest you do the same. While I prefer DirectX as an API, it is COM-based and thrives on object-orientation. Assembly language isn't OO, and dealing with COM in ASM is the sort of thing that gives me nightmares.
OpenGL, however, is very much functional, and is hence far better-suited to assembly coding.

Regards
Admiral
Ring3 Circus - Diary of a programmer, journal of a hacker.
The demo scene isn't about real development; it's about technical challenges.

Typically you are "allowed" (and in fact strongly encouraged) to take advantage of modern hardware (including graphics cards), powerful graphics APIs etc., but the aim is to make things ridiculously small for what is delivered. And I do mean ridiculous - it's been decades since your program was *expected* to fit in 64Kb (unless you count mobile development, but that's a whole other story - for one thing, you make a JAR there rather than an executable), and back then you could do a lot less (due to wayyy slower processors and probably no graphics card at all) in that space. Heck, by default my compiler makes a bigger .exe than that for an *empty* C or C++ project (about 68Kb for just the DJGPP "stub" - naturally it gets significantly bigger if you include something like stdio.h, and up to more like half a meg with <iostream> :) ).

Of course, beginners (and experts alike) shouldn't *normally* worry about such things - at all. These are one-time costs for the executable size, and you probably can't even buy a new HD smaller than 40 gigs or so these days.

This topic is closed to new replies.

Advertisement