Interview with Demoscener “kb” of Farbrausch
6octaves.blogspot.com
6octaves.blogspot.com
Another group I highly recommend is Andromeda Software Development. They are less about "check out these cool techniques" and more about putting together a cohesive, music-video-like experience. I've heard different perspectives on whether that's a good thing, but irrespective of where you come down on that they produce some demos that are really enjoyable to watch.
When I first saw Farbrausch's Debris I thought it was a bit boring. After all, it's repetitive. The soundtrack is like some cheap industrial techno, and the demo itself doesn't really show off that much.... Until you realise that the whole thing is less than 200kB. An amazing feat.
There is just one experience more profound the demoscene has given me. It must have been no later than 1995 or 1996, or about the time when the Amiga and PC groups had just discovered 3D toroids, vector castles and phong shading in general. Half of the demos shown in the party had some kind of floating/rotating phongs-shaded toroid, and about a third sported a zoom-in/zoom-out view of a castle. It got pretty dull, pretty fast.
And then finally Byterapers showed off how to outdo everyone by using the same effects with better timing. On C-64. Jaw, meet floor.
(That said, I'm actually part of the faction who likes aMusic's weird prog-rocky compositions. And, regardless of what you think of his work, you've got to respect aMusic for being one of the very few demoscene composers who incorporate real, acoustic instruments and vocals into their work. I really can't think of any others.)
Wow, pretty good. I haven't followed games and the demoscene in the last few years, so modern graphics always impress me a lot.
My favorite demo is Sonnet by Threestate: http://www.pouet.net/prod.php?which=3282
Btw, the things we released as threestate were a clear testament to how important design is (and more accurately in this case, the design of Steven) when you're doing demos. Before that, some of us (me, sarix, inopia) did a bunch of releases as Quad that were also fairly impressive technically but had no design and...pretty much nobody cared.
I recognise your/those names from other releases (like quad, and haujobb). And like you said, others may have been more impressive technically, but it's the threestate ones that have always stuck with me, for that amazingly perfect (IMNSHO) combination of technical impressiveness, visuals, and audio.
Back in the DOS days, everyone more or less had to write their own rasterizers and write that data directly to the graphics controller (their own graphics driver), which probably took a few KB to do. Modern demos with full GPU acceleration use whichever 3D API/stack the OS provides, which (as a complete guess) is several hundred MB. Even that number pales in comparison to the amounts of data that the procedural generation within some 64k intros produce.
Additionally, many effects in modern demos run purely in shaders, written in HLSL or GLSL. The CPU part draws a single rectangle and the rest happens in a shader. Would you count that as depending on system libraries? Shader languages aren't much more high level than C, so its pretty close to the metal. In any case, you can't go more low level because GPU machine code (which HLSL etc compile down to) is pretty inaccessible in practice.
That's how modern 3D programming works in a nutshell, whether it's a game, demo, or CAD. A program provides data, parameters, and maybe small GPU programs (shaders). The stack takes it away, and does the nitty gritty math to transform triangles in 3D space, map them to 2D space, split into pixels, and apply images, lighting, etc. to them.
https://en.wikipedia.org/wiki/Graphics_pipeline
http://www.arcsynthesis.org/gltut/Basics/Intro%20Graphics%20...
If you really want to know what it does, I recommend you learn an API (Direct3D, OpenGL/WebGL). Everything underneath is handled by the stack.
As for examples of what the program does and the system doesn't: for some demoscene stuff, the program uses procedural generation to generate models from mathematical descriptions, and textures by using noise functions and image filters. Here's a presentation of werkkzeug, the tool that Farbrausch uses:
http://www.demoscene.tv/page.php?id=172&lang=uk&vsmaction=vi...
Have a look at the source code for Second Reality, one of the more popular demos of 20 years ago. https://github.com/mtuomi/SecondReality particularly the draw code https://github.com/mtuomi/SecondReality/blob/master/VISU/ADR... ; admittedly it does one light and no texttures, but it does it in a few kb of assembly.
An OpenGL application that displays a triangle links to these libs:
libc.so.6 libdl.so.2 libdrm.so.2 libgcc_s.so.1 libglapi.so.0 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libX11.so.6 libX11-xcb.so.1 libXau.so.6 libxcb-dri2.so.0 libxcb-dri3.so.0 libxcb-glx.so.0 libxcb-present.so.0 libxcb.so.1 libxcb-sync.so.1 libXdamage.so.1 libXdmcp.so.6 libXext.so.6 libXfixes.so.3 libxshmfence.so.1 libXxf86vm.so.1
Now to be fair, we'll only count those we directly link against:
ibSDL2-2.0.so.0 libstdc++.so.6 libGL.so.1 libdl.so.2 libc.so.6 libgcc_c.so.1 libm.so.6
These few turn out to be the biggest in our bunch, totalling to 5.5MiB.
So there you have it, by linking a minimal graphics demo on Linux, you are implicitly linking to about 5.5MiB of direct system libs and 8.6MiB of indirect system libs. These numbers will vary wildly for other OS, but I guess the DirectX stuff would be larger.
The DOS 64k intros typically didn't link to any stdlib but would just provide their own implementation along with a few of the symbols that the C/C++ compiler (typically Watcom) would require. Combine that with a tiny DOS extender like PMODE/W and a compressor like UPX and you'd be off and running. A minimal intro (just showing a bouncing pixel or whatever) could be had with only just a few kilobytes.
Nowadays intros typically rely on, as mentioned, D3D or OGL but also usually on the MSVC runtimes. Compression is still done using tools like UPX or kkrunchy but that actually's becoming difficult to do because virusscanners are usually flagging them as suspicious nowadays because of all the malware that also uses these compressors. Also, file size is not something that most people care about too much nowadays so the whole concept of the intro seems to have become less and less interesting over the years.
Please check the game out and do consider supporting Paniq (apparently Patreon[2] is the most convenient way to do this). There really could be no better time for a small bit of exposure!
[1] http://blog.duangle.com/2014/07/nowhere-progress-report-its-...
Sort of revealed to me how some of this stuff works in a very easy-to-understand way, along with great visualisations.
The winners were also screened in SF at CODAME.
It is still cool to see what demos the groups pull off nowadays, but we are far far away from C64, Spectrum, Amiga and Atari, PC days, doing algorithms considered impossible in such hardware.
The show-off factor is still alive and kicking. Check out the utterly impossible Cubase-64 by Mahoney: http://www.youtube.com/watch?v=MDrqBYkco-Y
Once you've collected yourself and accepted that the thing really was done in real-time, read the full description how the impossible was made possible: http://www.livet.se/mahoney/c64-files/Cubase64_White_Paper_b...
That thing is like extremely well done stage magic. You know you're being fooled and mislead, you may even know exactly how it's done - and you still can't but admire the flawless execution.
Beautifully done, search it on Youtube.