Thursday, 25 September 2008

Why I love the demoscene?

Some funny things I have heard from people with old computers hating hardware requirements.

"Hardware requirements are illogical. It's a conspiracy of the software and hardware companies. 386 is enough for everyone!"

"I can't understand why 3d studio needs an FPU coprocessor. It doesn't do anything extreme that can't run on my 386."

"3D graphics are 2D really. Projected on screen. So, they should run as fast as 2D games.

"Myst has better graphics than Quake but it only needs a 386 while the latter requires a Pentium. It's a conspiracy!"

"My TV set can show movies with perfect video featuring explosions and a lot of crazy action and it's just a cheap chipset. Why can't FPS on my 386 do that?

"That game is a 10 MIPS software while on PC we write code of 3 MIPS, that's why consoles can do it better" (pointing at some lousy prerendered animation on 3DO console =)

A PC Master reader: "I assure you that need for speed can easilly run well on a 286."

Some friend pointing at an arcade coin op: "Mortal Kombat 4 should run on my XT. Why not?

When you are an illiterate user you can't understand the difference between realtime or not, you don't have an internal knowledge of the process that is required for a game to render something on the screen, you only compare the final image thinking that your average 3d engine should be the same fast as a prerendered animation or an action movie on your TV set. There is the moment when a coder comes to explain you how things are, sometimes although the software MIPS dude sounding knowledgable, is enough to make you believe.

I remember that time when two guys were discussing about that 3DO game, I knew nothing about programming then but somehow I was curious about the whole high requirements/performace issue. I wanted to know in deep what is the truth. So, hearing someone speaking the word "MIPS" I was immediately hooked. I couldn't understand though that saying this software runs at 10 MIPS wasn't exactly the right way to say it. But now I understood that he maybe meaned that the consoles were build with more processing power (he didn't mentioned custom chips) or that the game programmers are targetting a machine with lower performance than PC, optimizing their codes for a hardware with less MIPS or something like that.

It doesn't matter. What mattered was that by using some tech-jargon he sounded credible and knowledgable. But most of us users then were either seeing things on the surface (the graphics of Monkey Island are more beautiful than Doom but they are faster, why?) or listening to the "experts" without actually understanding in deep.

I will make a parable here. One that will get me to the point of why demoscene rocks!

Say that the clueless users who maybe wish their C64 could fly are something similar to the people believing in ufos, ghosts, fairies and yetis. They claim things with little or no knowledge, dreaming of their wonderland. The programmers are like the skeptic trying to show them what's the real deal is and land their C64s back on the ground.

Personally, I was into that anti-requirements craze (through some articles in an old greek magazine, PC Master) not because I couldn't afford a computer but somehow I was always fascinated about the software performance/hardware ratio. I have been dreamed of Quake engines running on a 386, SNES games on my CPC, MP3 players on my XT, perfect OS with high performance on low CPUs, just because of the idea of how impossible would that be! It was like a dream, till someone came and grounded me to the floor: "You know, the CPC runs at 19968 cycles per frame and smooth texture mapping would need at least a 4MIPS machine while the CPC isn't even close that!".

This was the time when an expert was talking and you couldn't say much even whether you were literate or not. The thing that I like in the demoscene is that there are times when dreams come true, where the impossible happens, where the expert sounding dude analyzing the limited performance of the hardware and requirements of the software would fail.

Say that someone comes and tells you that he observed an UFO doing impossible manouvers in the sky and then disappearing into the void. Say that you have also photographic or video evidence. He'd probably think that it's either fake or your idea while arguing why it's highly unprobable.

Say that there comes a dude claiming he has a video of the best Amiga demo running like a charm on a C64. He has video on youtube. You can be skeptical but it's the first time someone actually analyzes why it's not possible, how the C64 has not even multiplication and couldn't run 3D so smoothly, sounds (and possibly is) knowledgable, seems logical on how this is impossible on a hardware 10 times slower than Amiga (you could base upon his words if you never had the actual D64s on your hands to see it for yourself) and yet he fails. It's the first time that things we always dreamed and laughed upon are actually real! Things like Desert Dreams for C64 or Second Reality for C64, a windows like OS on the CPC, wolfenstein 3d on AtariST or Doom in spectrum (almost :). Wouldn't you say that's impossible? Wouldn't you be skeptical? Of course it's not the same doom, not the same second reality, not the same windows as in their high versions but would you still believe such a functional windows like OS would work like a charm on the little CPC? It's like the silly dreams of the people quoted in the beginning of this post, but this time it's here and it works!!!

The screenshot above is from Parts by Oxyron, a C64 demo that stroke me with awe. (Unfortunatelly it's nowhere on youtube but check this with similar tricks (Dawnfall by Oxyron)) It's a classic example where if you described the desired effect, the skeptic or knowledgable would argue that it's not possible.

I can do it myself. There is a big zooming and distorting bitmap in one part of Parts, it's not blocky, it's manipulating the bitmap so smoothly and pixel perfect! Now you'd say, C64 has around 17500 cycles free (I really don't remember) and that bitmap say it's 144 pixels * 128 lines = 18432 pixels (haven't counted really but they are a lot). For each pixel we would need 17500 / 18432 = less than 1 cycle left to run this on 50hz. Impossible! Most opcodes take 2 to 4 cycles on the C64. By using 1-2 opcodes per pixel this would even need 4VBLs. You need to do interpolation, calculate the pixel shift to make a byte and write it, maybe little more things, you'd need 6-7 lines of code. Even with LDA/STA style speedcodes you'd never make it 50hz. All the data are against your dreams!

This is why I love the demoscene so much! The impossible becomes possible. It's there in front of your eyes. No magic! And there are two other reasons why I love demos so much (especially those in old computers):

  • 1) For such impossibilities to work, someone should shift his perception of how he stares at things. Because a bitmap manipulation is calculating interpolation for each pixel and writting it, it doesn't mean that what looks like pixel rendering should be done by pixels. Because something is fullscreen it also doesn't mean every byte of the videoram is really updated. You have to think out of the box! The effect in the above screenshot is done by different shifted and zoomed version of various graphics tiles done in char mode on the C64. But it looks like the perfect pixel manipulation effect!

  • 2) The one who claims it to be possible should sit down and code it. This is how the demoscene works! In the parable above, it would be like searching for aliens and then putting a real extraterrestrial body on the top of the table surrounded by skeptics. Of course there is a big difference between searching for the unexplained and democoding. There is where the demoscene gives you the tools to be creative and show the impossible.

Demos do amazing things but why never games, those dudes would say. The craziest letter on the PC Master was one where a reader screamed that Second Reality surprised us in a way that noone in the commercial software companies could ever do even in a Sextium. I liked that one and wondered what is the second reality demo he mentions and if it's sooooo impossibly amazing then why I have never heard about it (similar to what skeptics say, if such crazy unexplained phenomena were real, we'd be fascinated for sure but where are they?). Though it was real! I found it and later discovered the demoscene community too.

There was a time when someone in greece formed a 8088 club. They were angry on the excessive requirements of software and wanted to go backwards. It was mostly about playing games on our XTs and stuff. They say they had a programmer. I sent them some demos and spoke the best words about the demoscene but they didn't seemed to bother. But demos were the means to say that impossible things can be true in even the lowest of hardware! Yet they were not impressed. If second reality was the greatest software ever, then why it's not heard? Now you know..

So great, so magnificent, making my dreams true, yet so few people understand it. And they still worry why Quake can't run on their 386..

No comments:

Post a Comment