A dive into the making of a 64K Intro
ctrl-alt-test.fr
ctrl-alt-test.fr
For me one of the best of all times is Second Life [1], by Future Crew. Developed in 1993 nonetheless, it was a big breakthrough at the time, with almost 10 minutes of animation, and in early x86 hardware. Source code available [2].
For Ctrl-Alt-Test specifically, we put our source code on GitHub (but not the most recent productions)[1]. The tool to minify shaders is also on GitHub[2].
So I think you can get a pretty good idea of how we did it. If you have any question, feel free to ask. I can give more details here, or it can be part of a future blog post.
[1] https://github.com/laurentlb/Ctrl-Alt-Test [2] https://github.com/laurentlb/Shader_Minifier
[1] http://www.ctrl-alt-test.fr/productions/f-felixs-workshop/
[2] https://github.com/laurentlb/Ctrl-Alt-Test/tree/master/F
Philip Rosedale's creation only came 10 years after "Second Reality" demo :)
You need to prove on your own that you have the necessary elite skills to enter a group.
You typically join (or form) a group because you get along with them. I'm in five groups, some with some pretty great releases (not mine), and I'm a pretty shitty graphics coder.
In fact your phrasing "elite skills" made me chuckle a bit, it sounds like the kind of thing a 16 year old would say in 1994 :) (no offense intended)
I think most people don't release source code because a) it's just not really part of the culture, b) the code is shit and c) people want to make demos, not READMEs. I mean, in the end this is about art and expression as much as anything. Electronic musicians don't usually publish their music software source files either. There is not really any elitism behind this.
c) is also why write-ups like this one are so uncommon. (Cool stuff LLB!)
Note, I'm not attacking you! What you wrote used to be true. It just hasn't been anymore, for a long time.
And, an offtopic sidenote, you're one of my favourite HN commenters. I learn something new or insightful in half of your comments.
Thanks for the remark.
The track that starts at time Index 1:54 on that linked YouTube video brings back so many memories. :)
The vast majority of ancient buildings follows quite simple procedural methods that only very recently got reverse engineered:
https://www.researchgate.net/profile/Francisco_Javier_Roldan...
(I suspect this method also permits approximating the plastic number [ https://en.wikipedia.org/wiki/Plastic_number ], but so far it seems nobody has figured out a way to do so yet. I mention this due to the architectural relevance of the plastic number.)
I speculate that leveraging this fact could likely permit even more complex architecture in demos. (And, to mention an off topic point, it likely has some relevance for automating UI layouting.)
You should not take papers like these as fact.
I used to just write code that "happened" to work, more or less. Nowadays I would want to get unit tests in place, make it cross-platform if at all possible and get a nice GUI going for easy tweaking. It's made it impossible for me to get anything done in the limited free time I have :) ideally I'd write it in Rust, but there, too, I am waiting for tooling to catch up. I get the feeling that I'm not so much waiting for the tooling, but I'm using the waiting as a sneaky way of procrastinating and fooling myself...
(I understand there's a trade off between productivity and performance, but nonetheless, it's scary)
Size optimizing is fun and you can learn a lot but it is dying art, probably 99.9999% of todays developers dont understand what I have written in first part (today, you are learning the programming, but very indequately what the OS does, actually typical today programer understands the programing but is clueless what his code does on low level) ... but +1 for anyone that goes into that direction, my boss at my first job was saying that good software fits to one 1.44 floppy but this is today violated by HHLL. Well business wise no need for that unless you are making malware, but still cool.
Oh and link them by ordinal.
;)
Thanks for sharing.
For example use ZeroMemory() and not memset(), ReadFileEx() and not read(), and so forth, no use of GetProcAddress() at all.
I think one of the biggest challenges, size-wise, is coming up with good algorithms for procedural content (textures, 3d meshes, camera paths, audio/synths). Code for audio playback and for doing directx/opengl scene rendering shouldn't be too hard to keep small, but you really need to work to get interesting content to fit, since you can't really include much in the way of of bitmaps/audio samples/3d meshes as binary data assets.
What are your top 3 favorite intros that you would recommend watching?
http://www.pouet.net/prod.php?which=67106 / https://www.youtube.com/watch?v=qRVTI2y0BBg
http://www.pouet.net/prod.php?which=75713 / https://www.youtube.com/watch?v=hE6SZeAhZdM
Elysian by Logicoma is a favorite too, it's not as visually spectacular but the music makes up for it :)
http://www.pouet.net/prod.php?which=68375 / https://www.youtube.com/watch?v=rWwNgVwQG1A