the making of 4kmdr
08 May 2007i think it might be fun to post some info on the making of this 4k so i can remember the details when i'm 50 and reminiscing on the days when computers still had buttons and wires and people tried crazy things like fitting as much music and graphics as they could in just 4,096 bytes. oh maybe it'll be interesting for others interested in the scene too. ;)
this thing started when i was playing some tricks with HDR cubic environment maps and procedural geometry and the exceptionally stupid part of my brain woke up and said "hey we could totally do this in 4 kilobytes!" well not realizing what a horrible idea it was i went ahead with it. :) i had done some previous 4ks but never squeezed music into them so i figured i should tackle that as well.
so well things started off nicely and in 4k i managed to squeeze the generation of a pretty HDR cube map, nice shaders using spherical harmonics computed from the cube map for lighting and also some semi interesting geometry. this was in no small part thanks to crinkler which worked waaaaay better than the cab dropping stuff i had done for earlier 4k attempts.
but anyway i still had to push a synthesizer and music data in there. with no musical talent of my own i enlisted the help of the multi-talented trace to cook up a tune for this guy. working with herotyc they managed to make something with some rough tools i sculpted out of my previous audio experiments and after getting a first draft i set to work on packing the data as small as possible.
well i spent a lot of time on size optimizations and design experiments and as it came time for the demo party i had to hack like crazy to get back under 4,096 bytes and in the process throw out all the original bits that started the 4k in the first place! so the "high dynamic range" became "medium dynamic range" (the MDR in 4kmdr) as i replaced nice math with scary approximations, and a lot of neat vertex animation got tossed for the simpler spiking action. i did manage to keep a pretty interesting shader on the ball though with per-pixel ray traced reflections, but on the whole it was pretty painful ripping so much out. at the party place it was funny because as i was torturing myself trying to squeeze the last bytes from this guy (the last 1 byte took like an hour!) s_tec who took pretty much the exact opposite approach on his 4k (by starting with very tight assembly) was working hard to ADD bytes to his intro!
in the end things worked out ok and 4kmdr was born with a funny personality. :) you can download it here and make sure you have a video card that can do pixel shaders 2+ and the latest directx. also i released one of the tools used to create the music and you can get it here and can learn some more details on the audio code in this old blog post. the audio tools actually got some nice features at the last second which we didn't get to take advantage of and trace has come up with a very cool idea that has a good chance of fitting in 4k so hopefully we can find time for a follow up production in the future :)