だから、私は2011年のアセンブリでここにいて、このデモが再生されました:http : //www.youtube.com/watch?v= 69Xjc7eklxE& feature=player_embedded
これは単一のファイルのみであり、ルールに記載されています。繰り返しますが、どのようにしてこれを非常に小さなファイルに収めましたか?
だから、私は2011年のアセンブリでここにいて、このデモが再生されました:http : //www.youtube.com/watch?v= 69Xjc7eklxE& feature=player_embedded
これは単一のファイルのみであり、ルールに記載されています。繰り返しますが、どのようにしてこれを非常に小さなファイルに収めましたか?
回答:
それはだ、手続きに基づきます。コンテンツはexeには含まれず、描画方法のルールのみが含まれます。起動すると、プログラムは実行時に必要なものを描画しますが、どの形式でも事前にレンダリングまたは保存されていません。
これは、エリートがスターシステムなどの広大な宇宙を作成するために使用するのと同じ方法です。
手続き型生成を使用して今日可能であることは非常に驚くべきことであり、ゲームは今後この機能をさらに多く搭載するでしょう。
@Gary Willoughbyが言うように、それは広範囲にわたる手続きです。
また、asm
選択システムのウィンドウ/プラットフォームの数が内部で機能することに関する広範な知識とともに、重要なハンドコーディングが含まれます。
コンパクトなコードのさらに極端な例をご覧になりたい場合は、4Kデモカテゴリもあります。
DemoSceneグループの中には、デモをオンラインでリリースするものがあり、必要に応じてダウンロードして再生できます。
DemoSceneの歴史については、Wikipediaも参照してください。
注-デモの多くは、アンチウイルスを驚かせます。基本的に、ほとんどすべてのデモがパックされた.exeファイルを使用しているようで、デモグループのほとんどは独自のパッカーを展開しています。残念ながら、多くのAV企業は不自由なので、パックされたバイナリ実行可能ファイルは何らかのウイルスであると一般に主張しています。
誰もが手続き型生成コードに広く依存していると言っているように、特にこのデモにはさらに多くのことがあります。一時停止して詳細を見ると、たとえばそれらの壁を見てみましょう:レンガを見て、光がどのように反射するかを見てください。彼らは自然に見える。
生成されたコンテンツに命を吹き込むために、多くの頂点シェーダーとフラグメントシェーダーを使用しているためです。
それらがどのようにしてそのようなものを作るのかを理解しようといくつかの時間を費やし、それらのデモから取得したすべてのコードに驚きを感じました。
ところで、これらのデモを行うとき、圧縮ツールを使用してさらに圧縮することもできます。このコンパイルプロセスを確認します。
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キロバイトに収まる方法を説明していませんが、このような小さなスペースでジオメトリを作成する方法の鍵となります。
他の人がすでに述べたように、これの多くは手続き的に生成された資産に依存しています。
別の要素があります。それは圧縮です。4kおよび64kデモでは、高度に専門化された実行可能コンプレッサーを使用します。これらの中で最も有名なのは、farbrauschによるクルンチー(64ksの場合)およびTBC&Looniesによるクリンクラー(4ksの場合)です。さらに、最新のデモではシェーダーを多用しています。シェーダーはプレーンテキストであるため、圧縮後に劇的に小さくなります。
さて、ビデオゲームへの統合に関する限り、主な問題はこれにはすべて時間がかかることです。手続き型コンテンツの生成には時間がかかり、実行可能ファイルの抽出には膨大な時間がかかります。そして、一般的に人々はゲームの読み込みを待つ時間よりもハードドライブに多くのスペースを持っているので、すぐに広く利用可能なゲームでこの多くが見られるとは思いません。