by Gloom of Excess and Axel of Brainstorm, with Blueberry of Loonies, Mentor of TBC, Gopher of Alcatraz and Gargaj of Conspiracy
4k intros are the new wine. Anyone who has visited a demoparty this last year will know this for sure. They are tiny, cute and popular as hell in a time where demos require more and more assets to be appreciated. Many coders are going back to basics and battle it out with cold hard programmer skills in the dicipline of four kilobyte intros.
ZINE gathered Blueberry, Mentor, Gopher and Gargaj, four of the best known 4k coders for a chat about the origin, life and future of 4k intros.
Sprite-o-Mat by Alcatraz
ZINE: What is it about 4k productions that attract you? Is it the limitation/challenge, or perhaps it's just easier than messing about with larger demo projects?
Gopher: I think it's a mixture of both. My decision to focus on 4k's at the moment is mainly based on my impression that larger projects like 64k's or demos are more and more dominated by design and art. For such projects the coder's main task today is to supply tools/plugins to the musicians and graphicians. And as seen in most successful demo groups this often results in a more or less mighty demotool, with the coder supplying new features and implementing requests from the creative section.
Blueberry: I guess it is mainly because it is the kind of demo coding I am best at. :) I am deeply fascinated by the whole idea of producing the best possible results with a limited amount of code. No other category achieves that as perfectly as 4k. It is just enough to do some really interesting things both visually and musically, and it is still so small that you have to think in a special way to pull it off. And no matter how well you plan, you always have to throw something away.
Gargaj: 4k's are still a pretty much untapped territory (or well, were for a few years back), and it's very easy to "score"... You can't really rely on an existing engine when you're creating because every 4k has its own problems... It's really a category where focused work can bring appreciation. It also has the "safe-factor"; as long as it's not atrociously bad, people still have a high tolerance level for them too.
Mentor: What I like about size coding, is that it promotes what I would like to call "clever" coding. The size limitation makes you think harder about optimizing away a few instructions or finding a slightly more compact representation of some data. Because the boundaries are so clear-cut and the quality of solutions can be easily measured and compared, this really gives it a sort of creative puzzle solving quality, which I really enjoy. This adheres well with the so called scene spirit or hacker mentality of reaching or even exceeding the boundaries of what is possible. This is basically the same challenge as people trying to squeeze a few cycles of a tri-filler on the amiga or a moduleplayer on the Game Boy Advance.
An added benefit of doing 4k's is that I as a coder have more power over the direction of the intro, than I would have in a full-fledged demo. One can argue whether that is a good thing or not for the final intro, but I, as everybody else, value my own creative input the highest.
Candystall by Pittsburgh Stallers
ZINE: What kind of principles do you follow when creating your 4k intros? One larger idea that spans out over time, or many smaller effects? Lots of pregeneration or lots of realtime?
Blueberry: A 4k intro always starts with one or two key ideas. It is about doing much with little - having some really good and flexible basic mechanism that you can exploit to do great stuff. It happens more often than not that the end result is very different from the original idea. Or that the original idea is discarded along the way and doesn't even show up in the final intro. It is an evolutionary process. You can't plan a 4k. You never know just how much there will be space for. And with the speculative nature of 4k effect ideas, you often have to do a lot of experimentation before reaching something useful.
Mentor: All 4k projects that I have been involved with, have all started out with some coding idea. Some particular effect or piece of data that would be cool to squeeze into a 4k. Music and design then gets incorporated into the concept as the intro develops, or barely at all. Considering design and overall style earlier in development, might be wise, but that is not where my motivation lies. I am a coder after all.
Gopher: I'd say there is no real principle, at least for me. Sometimes I have an idea or a concept which I want to implement in a 4k. Sometimes its a trial and error way of getting something interestion on the screen. The only common thing is: in the end it looks totally different from what I initially started with, so in general I'd call it a quasi-random process anyway. For the pregeneration and realtime aspect, I personally do what proves to be smallest in the end. Sound e.g. is always precalculated and played back just for the sake of saving bytes. For visuals it depends.
Gargaj: I'd say a good 4k is just ONE good idea with a lot of good ideas to make it work well. As for loading vs realtime, I guess we do a little bit of both... whatever fits the given situation.
Blueberry: Precalculation is essential in 4k. But often, you can save some bytes by doing something realtime that you would normally precalc. Sacrificing speed for space.
ZINE: How does your toolchain work? One larger tool or perhaps hand coding from scratch every time? How do you usually (if there is such a thing) go about creating your intros?
Gargaj: We have a gutted-out version of Visual C that tsw tested out to produce the smallest possible output, we have some "stripped-down-over-the-years" basecode, and that's pretty much it - and the synth. The rest is heavy handcode. Of course, we reuse some trusty code if we need to, but usually we don't since we really vary around wildly with ideas.
Gopher: Like Gargaj, I have a basic intro skeleton which I reuse each time. This includes Direct3D and DirectSound setup, a post processing pipeline for image based effects (bloom e.g.), and some navigation code and statistic output for the debug versions to be able to move through the world and displaying neccessary parameters.
Blueberry: I use one large tool that is hand coded from scratch every time, hehe. It all depends on the intro. For some intros, typing in numbers to script the flow and parameters of the effects works just fine. And sometimes not. It is difficult to reuse a tool from one intro to another. Because 4k intros are so focused, the tools are necessarily quite specialized. Or it is one of these super-general Virtual Machines that are supposed to make the actual content really compact. Well, it is great fun coding such VMs (have done a handful or so myself), but it has to be something really clever in order for the size of the VM to be outweighed by the code size savings compared to just writing the thing in ordinary assembler code. Code packs really well, you know.
Mentor: Most of the code in any intro I have done is unique for that one intro. There are however some parts that can be reused over a few intros, such as the startup code, synthesizer, scripting code, packer, etc. The toolchain is thus a bunch of tiny tools and scripts specific to just this one intro. Doing a werkzeugish introtool for 4ks doesn't seem like an option, as I have a hard time imagining a tool generic enough to allow the diversity I want in my intros, but still specific enough to be optimized for any one particular intro.
Gopher: It's a bit different when it comes to sound. I recently developed a 4k synth which is basically a reduced version of a bigger synth I created in 2006 (VSTi plugin). The sound therefore can be composed with the bigger synth and I can map the patch data (as well as the song itself) to the 4k synth format by hand afterwards, so soundwise there is something evolving which can be called a toolchain.
ZINE: Audio. Leave it out to fit more visual content or pack it in and skimp on the visuals? ..or perhaps a combination? Is a silent (but good looking) 4k better than a 4k with music but without the added glam?
Blueberry: A 4k with no sound is not an intro. Simple as that.
Gargaj: I agree with Blueberry. 1k of the size should be safely assumed to be the audio (of course if you have good sound in smaller size, why not? :) It's 2007 and all 4k's have sound now... I think it would be robbing the viewer from the experience if sound was lacking.
Mentor: We are definitely over the days where 4k's, even good ones, could sacrifice music for other content. Music is a must today. In my opinion the music is even more important than the visuals in many ways.
Blueberry: Sound is one of the most important components of any demo, and this goes for 4k intros as well. Making decent sound is one of the major challenges in 4k intro making and a parameter that really sets intros apart.
Mentor: Exactly. A good example of this is in my opinion the recent intros by Limp Ninja and Fairlight that put a lot of effort into the music, while just showing one or two simple effects. I think this trend is caused by the fact that it is a lot easier to dictate mood/style with music than with visuals.
Gopher: In my opinion this totally depends on what you want to achieve. But I don't think a 4k intro without ANY sound has a chance of winning anything today, as people simply expect sound in a 4k nowadays. If I compare both intros I come to the conclusion that I personally wouldn't sacrifice sound for visuals anymore. And if both don't fit in 4096 bytes, then I simply need another concept.
Benitoite by Loonies and TBC
ZINE: Where do you think a line will be drawn in the sand - what are the limitations? What can we expect from 4k intros in the future?
Mentor: A wise scener once stated something down the lines of: "the demos of today are the 64ks of tomorrow". This has in my opinion by now been shown to be valid for 4k's also. The 4k's of today are of a comparable quality to intros some years ago.
Blueberry: I think that is nonsense. The developments go in different directions - 4k intros and 64k intros will continue to have very different characteristics.
Gopher: Since 4k's are simply very restricted in size, I see only 3 ways of pushing them further: 1) developing new and even better packer/packing-linker tools to compress the binary, 2) finding new (or maybe old, but never before used) and flexible algorithms which produce a variety of objects/sounds/animations with a minimum amount of code/data, or 3) exploiting/using the given software and hardware as much as possible. On a software basis I mean using code, music or data from standard OS files (I count d3dx* as standard OS files here). On a hardware basis I think of graphics cards and shaders in particular.
Blueberry: It is important to realize that although 4k intros are primarily a coders challenge, they are by no means only for coders. Through the years, demos have become objects of entertainment - it is the overall impression that counts. This goes for 4k intros as well. It is still very few 4k intros that actually look good, sound good or entertain in their own right, not just for a 4k. I think we will see more of this.
Mentor: When I started getting into the scene in 2001 windows 4k's were generally ugly and most of them without sound. A lot has obviously changed since then and by looking at the recent trend of windows 1k, it seems to also be the case that the 4k's of yesterday are the 1k's of today.
Gopher: With DirectX10 capable hardware and the new geometry shaders I can think of new ways to create procedural meshes. And since the cards get faster and faster all the time, at some point we'll be able to implement effects/techniques that were impossible to do in realtime before. Especially that point leaves space for many ideas. In my eyes the graphics hardware has the biggest potential to boost overall 4k intro quality in the next years.
Mentor: 4k coding used to be all about the code, but as the boundaries of what is possible in 4k has been stretched we have seen more and more emphasis on design, overall style and music 4ks are also in this way resembling 64ks more and more. If this will force some size coders to migrate to 1k development I can't say, but it would certainly be an interesting development.
Gargaj: I think I found myself saying that we're about 10% of what can be done in 4k now. We're still waiting for the fr-08 of 4k's, the one that takes it to the very next level. In a few years, we'll see something really big from someone. (And here's me hoping we might be among those ;)
ZINE: Thanks to Blueberry, Mentor, Gopher and Gargaj for taking the time to talk to us about the current (and future) state of 4k intros!
Galiwm by Umlaut Design
Go back to articlelist