Im April 2009 reichten Rgba & TBC Elevated, ein 4-Kilobyte-Intro, im PC-4k-Wettbewerb der Demoparty Breakpoint ein. Die gesamte ausführbare Datei musste in 4.096 Bytes passen – ein einziges hochwertiges Bild oder Audio-Sample hätte dieses Budget bereits sprengen können –, doch die Demo entfaltet sich als langsamer, filmischer Flug über eine Berglandschaft mit vollständiger Musik.
Die übliche 4k-Antwort besteht darin, einige vorab gebackene Effekte zu verkleinern oder wegzulassen und zu hoffen, dass der Wettbewerbsrechner sie ausführen kann. Elevated machte das Gegenteil: Es speicherte weder eine Szene noch Musik. Die Visuals stammten aus kompaktem Pixel-Shader-Code von iq, die Musik aus einem Assembly-Synthesizer von mentor, sodass jedes Bild und jeder Ton zur Laufzeit berechnet statt geladen wurde.
Diese Arbeitsteilung ist der Grund, warum die Größe eingehalten wurde. Ein Shader läuft für jeden Pixel jedes Bildes, sodass sich einige hundert Bytes prozeduraler Formeln in enorme GPU-Arbeit ausdehnen – ein Kommentator bemerkte, dass die 4 KB auf über 250 MB GPU-Instruktionen anwuchsen –, während die Synthese die Sample-Daten vollständig entfernte. Elevated belegte den ersten Platz im 4k-Wettbewerb und wurde sofort zu einem Maßstab.
Sieben Jahre später, im Juni 2016, veröffentlichte die Gruppe den vollständigen Quellcode auf scene.org: ein 729-KB-Archiv mit dem Assembly- und C++-Code, der Lizenz und dem Handbuch des Crinkler-Kompressors, NASM und einem fertigen Build-Projekt. Der Veröffentlichungs-Thread auf Hacker News erreichte 384 Punkte, und Kommentatoren sagten, die Demo habe geholfen, die lebendigste Ära des 4k-Genres anzustoßen.
Keine Assets speichern; den Code die Show rendern und komponieren lassen
Assets passen schlicht nicht hinein: Bei 4.096 Bytes verbraucht selbst eine einzige Textur oder ein Sample das Budget, sodass die Kodierung von Inhalt als Code kein Trick, sondern die einzige skalierbare Option ist
Die GPU vervielfacht winzigen Code zu enormer Arbeit: Ein Pixel-Shader läuft pro Pixel pro Bild, sodass sich kompakte Formeln in Hunderte Megabyte Instruktionsarbeit ausdehnen
Die Musik erhielt dieselbe Behandlung: Ein Echtzeit-Assembly-Synthesizer bedeutete, dass die Musik als Algorithmus statt als Sample-Daten existierte
Die Veröffentlichung des Quellcodes verwandelte eine private Leistung in eine geteilte Referenz, und die über 11.000 Downloads des Archivs plus der 384-Punkte-Thread auf Hacker News zeigen die Nachfrage nach genau dem
Wenn eine Größen- oder Speichergrenze Inhalt unmöglich macht, komprimiere den Inhalt nicht – kodiere ihn als Code, der sich selbst generiert, und veröffentliche den Generator, damit sich die Technik vervielfacht.
Elevated blieb nach seinem Sieg eine Genre-Referenz: Pouet.net, die Datenbank der Demoszene, führt es noch immer nahe der Spitze seiner Allzeit-Liste. Im Juni 2016 veröffentlichten Rgba & TBC den vollständigen Quellcode auf scene.org – eine 729-KB-Zip-Datei mit den Assembly- und C++-Quellen, dem Crinkler-Kompressions-Linker und NASM –, sodass die 4-KB-Datei neu gebaut und studiert werden konnte. Die scene.org-Seite verzeichnet 11.363 Downloads des Archivs, und die Hacker-News-Diskussion erreichte 384 Punkte und 147 Kommentare, wo Betrachter noch immer die Echtzeit-Welt aus prozeduralem Code bestaunten und der Demo zuschrieben, eine lebendige 4k-Ära angestoßen zu haben.
DEN BELEGEN FOLGEN
Die Quellen
- rgba_tbc_elevated_source.zip — source code download page scene.org · files.scene.org ·
- elevated by Rgba & TBC — Breakpoint 2009, pc 4k, ranked 1st Pouet.net · pouet.net
- Source code for 4kb demoscene production "Elevated" released Hacker News · news.ycombinator.com ·