2009 年 4 月,Rgba & TBC 带着 Elevated——一个 4 千字节的 intro——参加了 Breakpoint 演示派对的 PC 4k 比赛。整个可执行文件必须小于 4,096 字节——一张高质量图片或一个音频样本就可能超出预算——但这个演示却展现了一场缓慢、电影般的飞越山景,并配有完整配乐。

通常的 4k 做法是压缩或减少几个预先制作的效果,寄希望于比赛机器能够运行它们。Elevated 反其道而行之:它不存储场景,也不存储音乐。视觉效果来自 iq 编写的紧凑像素着色器代码,配乐则来自 mentor 的汇编合成器,因此每一帧、每一个音符都是实时计算出来的,而非加载而来。

这种分工正是体积得以控制的原因。着色器在每一帧的每个像素上运行,所以几百字节的程序化公式会扩展成庞大的 GPU 工作量——一位评论者指出,这 4KB 代码膨胀成了超过 250MB 的 GPU 指令——而合成则完全省去了样本数据。Elevated 在 4k 比赛中夺得第一名,并迅速成为标杆。

七年后,即 2016 年 6 月,团队将完整源代码发布到 scene.org:一个 729KB 的压缩包,包含汇编和 C++ 代码、Crinkler 压缩器的许可证和手册、NASM 以及现成的构建工程。Hacker News 上的发布帖获得了 384 分,评论者称该演示帮助开启了 4k 类型最活跃的时代。

不存储素材,让代码渲染并编排整个表演

素材根本无法容纳:在 4,096 字节的限制下,即使一个纹理或样本也会耗尽预算,因此将内容编码为代码不是技巧,而是唯一可行的扩展方式

GPU 将微小代码放大为庞大工作:像素着色器在每帧的每个像素上运行,所以紧凑的公式会扩展成数百 MB 的指令工作量

音乐同样处理:实时汇编合成器意味着配乐以算法而非样本数据存在

发布源代码将个人成就转化为共享参考,压缩包下载量超过 11,000 次以及 Hacker News 帖子的 384 分表明这正是需求所在

当大小或存储限制使内容无法实现时,不要压缩内容——而是将内容编码为能自生成的代码,并发布生成器让这门技术不断增值。

Elevated 获胜后仍是该类型的参照物:演示场景数据库 Pouet.net 仍将其列入历史榜单的前列。2016 年 6 月,Rgba & TBC 在 scene.org 上发布了完整源代码——一个 729KB 的 zip 包,包含汇编和 C++ 源码、Crinkler 压缩链接器以及 NASM——因此这个 4KB 文件可以被重建和研究。scene.org 页面记录了该压缩包被下载 11,363 次,Hacker News 的讨论获得了 384 分和 147 条评论,评论者仍惊叹于实时程序化世界,并将其归功于开启了充满活力的 4k 时代。

从这里,追溯依据

参考来源

  1. rgba_tbc_elevated_source.zip — source code download page files.scene.org
  2. elevated by Rgba & TBC — Breakpoint 2009, pc 4k, ranked 1st pouet.net
  3. Source code for 4kb demoscene production "Elevated" released news.ycombinator.com