Segfault Garden – Binary of Babel
This is our first ever demo, which got second place at Alternative Party 2010.
Some key facts:
- Yes, it really does use all those languages. Even COBOL.
- It runs on 64 bit Linux only, and is extremely picky, it does not work on all the developers’ machines either
- We’re fairly certain that this evokes quite a lot of undefined behavior in the various runtimes.
- None of the team members had prior demoscene experience
- Due to lack of time we had to drop some ideas, including a Prolog effect (which would just have printed “YES” or “NO”)
- There were some interesting integration problems, including the fact that two of the languages required ownership of the main function (which we also needed to ourselves)
- All effects use software rendering, OpenGL is only used for compositing and cube texturing.
I had an interesting discussion just after showing the demo on the main screen, which I replicate here for posterity.
– “Great job, but you are crazy to use COBOL.”
– “As far as I know, this is the first ever 3D engine coded in COBOL.”
– “That’s because everyone else would have just shot themselves.”
We have released the full source code to this demo. Get it here.
Now we can also reveal that the raytracing language was Pov-ray’s scene description language (which is Turing-complete). At the start of the demo it spawns Pov-Ray to draw the sequence to image files in the background. These images then shown. So it really is real time and not an animation. Sort of.
The scene was tuned so that on the compo machine Pov-Ray finished rendering the sequence roughly one second before the end of said sequence. So there really was not a lot of tolerance. If you run it yourself and your machine is even slightly slower than mine, it will fail.