Programming As Art — 13 Amazing Code Demos
cranberryzero writes "The demo scene has been around for twenty years now, and it has grown by leaps and bounds. From the early days of programmers pushing the limits of Ataris and Amigas to modern landscapes with full lighting, mapping, and motion capture, demo groups have done it all and done it under 100k. To celebrate this art form, I heart Chaos takes a look at thirteen of the best demo programs on the web. Flash video links are included, but it's more fun to download them and give your processor something fun to chew on."
I think any serious demo list needs to include Second Reality.
:-)
While obviously there are more impressive demos from a graphics point of view (since SR is 15 years old), I'm still to see one with a better soundtrack and a better integration of video and audio.
Skaven's music is still one of my favourites - I wish it was properly resampled, as obviously S3M and MOD are a bit outdated
More really good demoes are compiled at my maa.org article, 64K or less. http://www.maa.org/editorial/mathgames/mathgames_08_16_04.html The main demoscene sites are better though: http://www.scene.org/ and http://www.pouet.net/ . One of my own recent favorites is a 4K demo, synchroplastikum http://www.pouet.net/prod.php?which=20967
Second Reality, Unreal, the various music demos from the scene, these were pretty incredible. But one of the demos that rocked my socks the hardest was because of what it did for so little space. It was called 'MARS.EXE'. It was about 4KB and, when ran, would generate a VGA 3D world with shading and what looked like a fractal sky. You'd use your mouse and navigate in any direction (always facing the same direction, sure, but you could strafe) and you would slide up and down the smooth terrain.
There were demos with better graphics, but the most astonishing thing was what this could do with so little disk space. This ran under DOS, not Windows, so there wasn't a bunch of free APIs it could take advantage of, it was all crammed into a tiny-tiny package with built-in mouse support and everything.
Anyone can make a 'demo' that blasts megs of raw graphics through a video card. Hell, half the 'demos' today are probably made in the modern equivalent of 3DS or something with a chunk of 'player' code attached.
But that 4K 3D landscape program... that was tight.
I don't think it is "programming as art" as much as it is "making art through programming", because the art-object - the thing that we are looking at and appreciating - is the execution of the program, not the source-code itself. We can be impressed at the skill and ingenuity of writing the program within the space confines that each demo category produces, just like we can be impressed at the self-imposed restrictions of Dogme 95 film-makers. Those restrictions are orthogonal to the effectiveness of the demo itself, though.
The programming is the how of the art work. But just like we can think of painting as art without thinking of "brushstrokes as art", we can think of software as art without calling it programming "as" art. I do think it is possible for source-code itself to be a work of aesthetic appreciation (granted, with a somewhat limited audience, but then all audiences are limited) but that's not what this is.
...hosting a website and posting a link on slashdot.
If you consider optimizing the crap out of something which is ultimately pointless, to be somehow comparable to what real programmers do, I suppose.
I used to write these things back when all I wrote in was assembly language. It's cool, it's fun, it's a puzzle and a challenge. Comparing it to "modern programmers" though is sort of like comparing a Sudoku expert to a professional in applied mathematics. The Sudoku expert will probably outclass the generalist at Sudoku but I wouldn't describe it as putting the mathematician to shame, nor would I trust the Sudoku expert to work out some difficult integrals for me.
The demoscene first appeared during the 8-bit era on computers such as the Commodore 64 and ZX Spectrum, and came to prominence during the rise of the 16/32-bit home computers (the Atari ST and the Amiga). In the early years, demos had a strong connection with software cracking. When a cracked program was started, the cracker or his team would take credit with a graphical introduction called a crack intro (shortened cracktro). Later, the making of intros and standalone demos evolved into a new subculture independent of the software piracy scene.
Prior to the popularity of IBM PC compatibles, most home computers of a given line had relatively little variance in their basic hardware, which made their capabilities practically identical. Therefore, the variations among demos created for one computer line were attributed to programming alone, rather than one computer having better hardware. This created a competitive environment in which demoscene groups would try to outperform each other in creating amazing effects, and often to demonstrate why they felt one machine was better than another (for example Commodore 64 or Amiga versus Atari 800 or ST).
Demo writers went to great lengths to get every last ounce of performance out of their target machine. Where games and application writers were concerned with the stability and functionality of their software, the demo writer was typically interested in how many CPU cycles a routine would consume and, more generally, how best to squeeze great activity onto the screen. Writers went so far as to exploit known hardware errors to produce effects that the manufacturer of the computer had not intended. The perception that the demo scene was going to extremes and charting new territory added to its draw.
Even with modern technology, where much of the effects seen in demos could be replicated in programs like 3D Studio Max, the point of demos are not just the beautiful visuals and music but the abilities of the programmers involved to write code so tight, so efficient, that something might be several megabytes if rendered in a 3D program comes out to less than 100k. So heres IHCs favorites from the demo scene of the last few years. These demos are in no particular order, and while weve provided Flash video links to each demo, the greatest joy is downloading them (PC only) and giving your graphic cards something fun to chew on.
Good Design
Lifeforce by Andromeda Software Design
Link to online Flash video
Link to download
Raw Confessions by cocoon
Link to online Flash video
Link to download
sandbox punks by cocoon
Link to online Flash video
Link to download
chaos theory by conspiracy
Link to online Flash video
Link to download
The popular demo by Far
In my day I had to hand-code demos in ARM assembler. On a 8MHz CPU. Without a floating-point unit, uphill, with no graphics card, both ways in the snow. We were so poor we had to unroll our own loops, write self-modifying code to build our own sprite-plot routines, and only use small SoundTracker modules. You tell that to kids these days, they won't believe you.
PS. This is actually true, apart from the snow and the uphill both ways bit. Also, TFA is 403.
"It doesn't cost enough, and it makes too much sense."
Every time demos ever get discussed, you always get a bunch of Second Reality fanboys coming out of the woodwork. Yes, I know that demo was a glimmering of hope in your sad PC-owner lives, the first hint that maybe one day the reapidly advancing raw power of the PC platform would overtake the elegance of the Amiga's hardware. And yes, eventually that did happen. But Second Reality, in and of itself, was rubbish, far far below the standards of the demo scene at the time - and mark my words, the Amiga demo scene WAS the demo scene at that time. The PC scene was just a mediocre group of wannabes.
You want a classic blend of quality design and absolute top-shelf "impossible" code? Try "Arte" by Sanity.