それで、私はここにアセンブリ2011にいて、このデモが再生されました: http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded
それは単一のファイルのみであり、それはルールでそれを言っています。繰り返しますが、どのようにしてこれを非常に小さなファイルに合わせることができますか?
@ゲイリー・ウィロビーが言うように、それは広範囲に渡る手続きです。
また、選択システムのウィンドウ/プラットフォームの数が内部で機能することに関する広範な知識とともに、重要な手作業のasm
コーディングが含まれます。
コンパクトなコードのさらに極端な例を見たい場合は、4Kデモカテゴリもあります。
一部のDemoSceneグループはオンラインでデモをリリースしており、必要に応じてダウンロードして再生できます。
注-多くのデモでは、アンチウイルスがおかしくなります。基本的に、ほとんどすべてのデモはパックされた.exeファイルを使用しており、ほとんどのデモグループは独自のパッカーを使用しています。残念ながら、多くのAV企業は足りないため、一般的に、パックされたバイナリ実行ファイルは何らかのウイルスであると主張しています。
誰もが手続き型の生成コードに大きく依存していると言っているように、特にこのデモにはさらに詳細があります。一時停止して詳細を確認すると、たとえば次の壁を見てみましょう: look that bricks とその方法光はそれらに反射します。彼らは自然に見えます。
それは、生成されたコンテンツに命を吹き込むために、多くの頂点シェーダーとフラグメントシェーダーを使用しているためです。
私は some の時間を費やして、それらがどのようにしてそのようなものを作っているのかを理解しようとしました。
ところで、これらのデモを行うときは、圧縮ツールを使用してさらに絞り込みます。このコンパイルプロセスを確認します。
all:
nasm -f bin -o intro main.asm
nasm -f bin -o stub stub.asm
gzip -n --best intro
advdef -z -4 intro.gz
cat stub intro.gz > intro
chmod +x intro
rm intro.gz
rm stub
この特定のデモでレンダリングがどのように行われたかについて PowerPointプレゼンテーション があります。これだけでは、すべてが64キロバイトに収まる方法は説明されませんが、ジオメトリがこのような小さなスペースで作成された方法の鍵となります。
彼の他のデモシーン作品についても、彼の blog には興味深い読み物がたくさんあります。
他の人がすでに述べたように、これの多くは手続き的に生成された資産に依存しています。
これには別の要素があります。それは圧縮です。 4kおよび64kのデモは、高度に専門化された実行可能なコンプレッサーを使用します。これらの中で最も有名なのは、farbrausch(64ks)のkkrunchyとTBC&Loonies(4ks)のcrinklerです。さらに、最近のデモはプレーンテキストであるシェーダーを多用しているため、圧縮後に劇的に小さくなります。
現在、ビデオゲームへの統合に関する限り、主な問題は、これらすべてに時間がかかることです。手続き型コンテンツの生成には時間がかかり、実行可能ファイルの抽出には膨大な時間がかかります。また、一般的に、ハードドライブの空き容量は、ゲームの読み込みを待つ時間よりも多くなるため、広く利用可能なゲームでこれがすぐに見られるとは思えません。