2009年4月、Rgba & TBCはデモパーティBreakpointのPC 4kコンペティションに、4キロバイトのイントロ作品「Elevated」を出品した。実行ファイル全体が4,096バイトに収まらなければならない——高品質な画像や音声サンプルが1つあるだけで予算を超えてしまう——にもかかわらず、このデモは山岳風景の上をゆっくりと映画のように飛ぶ映像と、フルスコアの音楽として展開する。

4k作品の通常の解答は、あらかじめ焼き込んだエフェクトをいくつか縮小したり削ったりして、コンペのマシンで動くことを願うことだ。Elevatedは逆を行った。シーンも音楽も一切保存していない。映像はiqが書いたコンパクトなピクセルシェーダーコードから、スコアはmentorによるアセンブリ製シンセサイザーから生まれ、すべてのフレームとすべての音符が読み込まれるのではなくその場で計算された。

この役割分担こそがサイズを保てた理由だ。シェーダーは毎フレームの全ピクセルに対して実行されるため、数百バイトの手続き的な数式が膨大なGPU処理へと展開される——あるコメント投稿者は、4KBが250MBを超えるGPU命令に膨れ上がったと指摘した——一方、シンセシスはサンプルデータを完全に排除した。Elevatedは4kコンペティションで1位を獲得し、瞬く間にベンチマークとなった。

7年後の2016年6月、グループは完全なソースをscene.orgに公開した。アセンブリとC++のコード、Crinkler圧縮ツールのライセンスとマニュアル、NASM、そしてビルド可能なプロジェクトを含む729KBのアーカイブである。Hacker Newsのリリーススレッドは384ポイントを集め、コメント投稿者たちはこのデモが4kジャンル最も活気ある時代の火付け役になったと述べた。

アセットを一切保存せず、コードにショーをレンダリングさせ作曲させる

アセットは単純に入らない: 4,096バイトではテクスチャ1枚やサンプル1つでも予算を食い尽くすため、コンテンツをコードとしてエンコードすることはトリックではなく、スケールする唯一の選択肢である

GPUが小さなコードを膨大な処理に増幅する: ピクセルシェーダーは毎フレームの全ピクセルで実行されるため、コンパクトな数式が数百メガバイトの命令処理へと展開される

音楽も同じ扱いを受けた: リアルタイムのアセンブリ製シンセサイザーにより、スコアはサンプルデータではなくアルゴリズムとして存在した

ソースを公開したことで、私的な成果が共有の参照資料へと変わった。アーカイブの11,000件超のダウンロードとHacker Newsスレッドの384ポイントは、まさにそれへの需要を示している

サイズや保存の制限によってコンテンツが不可能になるときは、コンテンツを圧縮するのではなく、自己生成するコードとしてエンコードし、その生成器を公開して手法が積み重なるようにせよ。

Elevatedは受賞後もジャンルの参照点であり続けた。デモシーンのデータベースであるPouet.netは、今なおこれを歴代リストの上位に位置づけている。2016年6月、Rgba & TBCは完全なソースをscene.orgで公開した——アセンブリとC++のソース、Crinkler圧縮リンカー、NASMを含む729KBのzipであり、4KBのファイルを再ビルドして研究できるようにした。scene.orgのページにはアーカイブの11,363ダウンロードが記録され、Hacker Newsの議論は384ポイントと147コメントを集め、そこでは閲覧者たちが今なおリアルタイムの手続き的世界に驚嘆し、このデモが活気ある4k時代の火付け役になったと評価している。

出典をたどる

出典

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