解決方案
2009 年 4 月,Rgba & TBC 以《Elevated》這支 4 KB intro 參加 Breakpoint demoparty 的 PC 4k 競賽。整個執行檔必須塞進 4,096 位元組——光是單一高品質影像或音訊取樣就可能撐爆這個額度——然而這支 demo 卻呈現為一段緩慢、電影感十足的山岳地景飛行,還配上完整配樂。
4k 的常見解法是縮小或捨棄幾個預先烘焙的效果,然後祈禱競賽機器跑得動。Elevated 反其道而行:它不儲存任何場景,也不儲存任何音樂。視覺來自 iq 所寫的精簡像素著色器程式碼,配樂來自 mentor 的組合語言合成器,因此每一幀、每一個音符都是即時運算而非載入。
這樣的分工正是體積得以維持的原因。著色器會對每一幀的每個像素執行,因此幾百位元組的程序式公式會膨脹成龐大的 GPU 工作量——有位留言者指出,這 4KB 會膨脹成超過 250MB 的 GPU 指令——而合成則完全免除了取樣資料。Elevated 在 4k 競賽中奪得第一名,並立刻成為標竿。
七年後,也就是 2016 年 6 月,該團隊把完整原始碼發布到 scene.org:一個 729KB 的壓縮檔,內含組合語言與 C++ 程式碼、Crinkler 壓縮器的授權與手冊、NASM,以及一個可直接建置的專案。Hacker News 上的發布討論串獲得 384 分,留言者表示這支 demo 協助催生了 4k 類型最蓬勃的時代。
它達成了什麼
不儲存任何素材;讓程式碼自行渲染並譜出整場演出
為何奏效
素材根本塞不下:在 4,096 位元組下,連一張貼圖或一個取樣都會吃掉額度,因此把內容編碼成程式碼並非取巧,而是唯一能規模化的選項
GPU 把小程式碼放大成龐大工作量:像素著色器會逐像素、逐幀執行,因此精簡的公式會膨脹成數百 MB 的指令工作量
音樂也獲得同樣待遇:即時組合語言合成器讓配樂以演算法形式存在,而非取樣資料
釋出原始碼把一項私人成就轉化為共享參考,而壓縮檔超過 11,000 次的下載量,加上 Hacker News 討論串的 384 分,正顯示出這樣的需求
可套用之處
當體積或儲存限制使內容不可能存在時,不要壓縮內容——把它編碼成能自我生成的程式碼,並公開生成器,讓這項技術持續累積。
後續發展
Elevated 在獲獎後仍是類型標竿:demoscene 資料庫 Pouet.net 至今仍將它排在其歷來排行榜的前段。2016 年 6 月,Rgba & TBC 在 scene.org 釋出完整原始碼——一個 729KB 的 zip,內含組合語言與 C++ 原始碼、Crinkler 壓縮連結器與 NASM——讓這個 4KB 檔案得以重建與研究。scene.org 頁面記錄該壓縮檔有 11,363 次下載,Hacker News 的討論則獲得 384 分與 147 則留言,觀看者仍驚嘆於那個即時程序式世界,並將這支 demo 譽為催生蓬勃 4k 時代的推手。
追溯依據
參考來源
- 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 ·