Yesterday I didn't get a spot of work done due to pulling a neck muscle while sleeping. It's kind of annoying to be bed-ridden when you could be procrastinating.
Instead, I did a bit of research. Me and Tommy stayed up late taking a look at the recent fruits of the demo scene, looking for inspiration for fancy viz for our game. Previously, we've mainly been concerned with just getting the functionality working correctly, and art has been on the backburner. We're getting to the point where we have to start thinking about pulling something a little special for our graphics.
It's been a while since I've looked at stuff from the scene. I used to think that the demo scene was basically just about making a few shiney metablobs with a nice bit of camera work, or some graphical effect so intense that there's no CPU left over for interaction, game play code, or AI. They were beautiful aphrodisiacs as far as technical fetishism went, but there was never any real artistic cohesion to them. It was mostly just procedural navel gazing.
Perhaps I didn't look at a broad enough range of demos, because coming back to them, I feel like my presumptions were wrong in fifty different ways. There are now such a wealth of different techniques being nailed in real time that what separates a good demo from a merely mediocre one seems to be the direction - using the effects to good effect, rather than just for the sake of showing off some mad coding skill.
Check out Chaos Theory by Conspiracy, a 64K demo - one of my favorites from our binge last night. If you watch your Task Manager's memory use per application, it's kind of amusing. You see chaostheory.exe starts with just about 1meg at the start to around 213megs after all the procedural content has been generated. Amazing stuff.
I'm told that there are far better demo examples than this (despite it being completely impressive to me) so if you have tastes for something a bit different, have a look around: pouet.net and scene.org have a metric eyestab-tonne of others to get some inspiration from.
We look at these visuals with envious eyes: They're all realtime, so we know that they ought to be possible to produce in games. You get to wondering why more games don't have this level of polish, in or outside the indie arena. Tommy points out that it's easier to make these sorts of things scream when there's no interactivity to worry about. I've been doing some fractal tree based stuff for our menu (not dissimilar to the matrix nesting tricks I've seen in some of the demos), so I can attest to the difficulty of enabling users' input to be a persistant part of the parameter set. If you don't bound your input ranges to something manageable, you end up with crappy looking procedural results. If you bound them too tight, you lose the feeling of interactivity. It's tricky, and certainly 'part art, part science'. The demo scene has a lot to teach indies and mainstream game developers alike, but developers have to be aware that there is not total overlap between the two. Just because something runs realtime doesn't necessarily mean it's suited to be interactive - that's not (often) the aim of a good demo.
I don't mean to sound negative about that. We have massive respect for the community, and hope to some day learn more deeply of their ways. I really feel like joining up with the scene and learning from their community would be like training under some kind of Shaolin Master (Will Wright obviously feels the same, because a lot of his Spore crew were supposedly recruited from the scene) but as Bruce Lee's philosophy of Jeet Kun Do states, all learning should be tuned toward discovering your own inherent style. Don't follow one master blindly.