Art vs. Technology - What should demomakers focus on?
By EP / CosmiK
For quite some time already, there has been a battle between coders who emphasize the traditional, technical virtues of demos such as code-optimizing and a united force of artists and new-school coders who would like to see the focus on art and the message of the demo. What do you think about this?
For years, demos have been technological demonstrations with in fact a lot of design, transitions and some fun, but with 3D we have often lost the theatrical side of scene. In fact both technical skilled coders should work hand in hand with what they incorrectly suppose to be lamers or non-elite coders.
Why? Because optimizing stuff is nowadays a joke: the computer hardware is changing all the time and nobody talks direcly to the video cards, every coder uses directX, which is an intermediary between hardware and them. So this doesn't mean you can't do any really interesting technical stuff but the records you are breaking can't be understand as every scener's PC is absolutely different from one another. Even saying "that runs on a 500 MHz celeron" makes no sense. Why using all this time to optimize something when hardware speed which is common on the scene is at least two times faster as that?
In fact nowadays you don't even directly talk to the CPU but instead use a C++ compiler which builds good enough code to produce even a 4Kb intro so what is the use of optimizing code? Even Intel is against optimizing: they often change their strategy concerning opcodes speeds as on different processors these aren't the same - this makes a really optimised software for a 8086 slow on a pentium for example. This is to "help" older programs being stopped to run on newer machines: so you move to new machines with new OS, new software, new hardware and as everything has to be paid for, this makes their business running (Wintel alliance = Windows aka M$oft and Intel, the latter owned for 85% by the first)...
Nowadays even compilers can improve the inner structure of your code to speed it for a particular CPU architecture like a P4 or an Athlon 64. If you really want to be an hardcore optimiser you will have to learn the inner structure of every processor produced by both Intel and AMD, change your asm code to follow optimised schemes for each particular CPU and perhaps compile your code (if you don't want to code in ASM) with a particular compiler. You will also have to use specific assembly tricks. Believe me, this will take all your time and you will not release anything if you try to save some nanoseconds here and there. Learn that since Doom I, its coder hasn't used ASM!!! This is because C is a high level ASM and C++ is an object C compiler. So in C you can get your stuff running full frame.
Chaos hasn't used ASM for at least 2 years now. You know a good coder in C++ will produce a better exe than an average coder in ASM and nowadays even CPU are optimised for high level languages: why do CPU have so big level 2 and level 1 caches? Why do they have pipelines? Why do they have so fast frequency? Well they have all these structure improvements to speed up C and others languages produced exe. If you want to optimise like hell and keep the "real coder" feeling, well, try ASM without optimizing to the end of time for "critical" routines or try to code on a video console as their hardware is more standardised than the PC's one. The only thing you will have to optimize is perhaps algorithms.
Coder stuff is nowadays a matter of using in a good way what was produced by the industry: fast CPU, fast GPU. And what is good about that is you don't have to loose your time optimising but instead using your skills in the artistic area to CREATE. Nowadays you don't PRODUCE, you CREATE. That's the difference. You are and will be more and more free to create as hardware tricks hard to master and use are disappearing quickly.
But technologies are a set of complex and modern used procedures to produce an artwork or get a fixed result. Well what is great with technologies is when we understood them. Nowadays a lot of stuff in the computer industry is technology only. That's a bit sad because there is a lot of waste as almost nobody read the fucking manuals coming with new tools. Hopefully we can use the basic functions without understanding mathematical and physical principles which are behind. When it comes to demos specifically, how can we understand what is showed us if it needs a 5 year high level degree in computer science + a 5 year high level degree in another science domain like fluid physics?
In fact we can understand things if they are well and simply explained. But the reality is to know if we need all this technical stuff to be happy. My own experience as a computer technician is that most people don't need all the gadgets the industry provide us with. We need simplicity as simplicity is the heart of life: even physics secrets are simple when they are well explained. And simplicity is the hearth of comprehension: an average brain can remember and use 7 objects simulteanously. When we see nowadays technology products we can easily count more than 7 objects: even a joystick nowadays has more than 7 buttons. This is really annoying as a lot of life pleasure for an intellectual is coming from comprehension. Yes there are coders who understand what is running on screen but not all. And pleasure comes from the fact we can evaluate and rate what is on screen. So demo coders should educate ourselves to their tricks and so we will perhaps understand them better. Sadly this involves often a lot of mathematical backgrounds which aren't known by a lot of sceners.
Art is the expression of an attractive ideal by the artwork of human being. It's also the set of human creative activities for this expression. Art is a way of expressing us, art is so a langage like mathematics or physics are. Expression is a way to submit audience a message. If this message isn't clear, the message is totally undecipherable and we talk about abstract art. In fact when something is undecipherable or hardly understandable, most people skip it as they don't want to use their brain. With demos and with everything else, when something is hard to understand it's because we are not strong enough to do so. We need knowledge to understand the current demos: before demos were composed by a kind of effects in relation with a trend, a technical fashion. Nowadays there is a lots of demos and each one are different from the others. I personally don't understand anything about nowadays' scene because I wasn't introduced to nowadays' technique. Even when I read a GFX card manual, I don't understand what it's talked about in the technical session. And I'm sure of one thing: since the end of scrollers, everything about demo comprehension has for me been highly reduced. Well, we have all learned english at school so why don't we put some scrollers here and there to give us message. Or just put some words on screen to help us identify effect. Art is also a way to say thing but not all people can understand such a langage. Simply put some words to let us understand what you want to transmit us. Or let it said differently: put a name to your artworks like your gfx or your musics. This will help a lot understanding what you have in mind when you have created it.
So why choosing between art or technology? Technology is a way to make art and art is a way to express ourselves. So using them in conjunction is better and with added texts messages to helps comprehension this will be really a perfect union.
EP / CosmiK