Quindi, sono qui all'assemblea del 2011 e questa demo è stata giocata: http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded
È un solo file, lo dice nelle regole. Quindi ripeto, come hanno fatto questo per adattarsi a file così piccoli?
Quindi, sono qui all'assemblea del 2011 e questa demo è stata giocata: http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded
È un solo file, lo dice nelle regole. Quindi ripeto, come hanno fatto questo per adattarsi a file così piccoli?
Risposte:
È basato su una procedura . Il contenuto non è incluso nell'esempio, solo le regole su come disegnarlo. Una volta avviato, il programma disegna ciò di cui ha bisogno in fase di runtime e non è pre-renderizzato o pre-salvato in nessuna forma.
Questo è lo stesso metodo usato da Elite per creare un vasto universo di sistemi stellari, ecc.
È piuttosto sorprendente ciò che è possibile oggi usando la generazione procedurale, penso che i giochi presenteranno più di questo in futuro.
Come dice @Gary Willoughby, è ampiamente procedurale.
Inoltre, vi è una significativa asmcodifica manuale , insieme a una vasta conoscenza di quanti sistemi Windows / piattaforma di scelta funzionano internamente.
C'è anche una categoria demo 4K, se vuoi vedere esempi ancora più estremi di codice compatto.
Alcuni dei gruppi DemoScene rilasciano le loro demo online, dove è possibile scaricarle e riprodurle se lo si desidera.
Vedi anche Wikipedia sulla storia del DemoScene
Nota - un sacco di demo farà sì che il vostro antivirus per matto . Fondamentalmente sembra che quasi tutte le demo utilizzino file .exe compressi e la maggior parte dei gruppi demo eseguono il rollup dei propri packer. Sfortunatamente, poiché molte aziende AV sono zoppe, generalmente affermano che qualsiasi eseguibile binario compresso è un virus di qualche tipo.
Come tutti dicono che si basano ampiamente sul codice generato dalla procedura, ma c'è ancora di più su questa demo in particolare, se ti fermi e guardi alcuni dettagli, vediamo ad esempio quei muri: guarda quei mattoni e come la luce si riflette su di essi. Sembrano naturali.
Questo perché usano molti shader di vertici e shader di frammenti per dare vita al contenuto generato.
Ho trascorso un po 'di tempo a cercare di capire come fanno queste cose, e mi sento stupito con ogni pezzo di codice che prendo da quelle demo.
A proposito, quando fanno queste dimostrazioni usano anche strumenti di compressione per spremere ancora di più. controlla questo processo di compilazione:
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
C'è una presentazione di PowerPoint su come è stato eseguito il rendering in questa demo specifica. Questo da solo non spiega come tutto si adatta a 64 kilobyte, ma è la chiave per come la geometria è stata creata in così poco spazio.
Ci sono anche molte letture interessanti nel suo blog sulle sue altre produzioni demoscene.
Come altri hanno già affermato, gran parte di questo si basa su attività generate proceduralmente.
C'è un altro elemento ad esso, che è la compressione. Le demo 4k e 64k utilizzano compressori eseguibili altamente specializzati. I più famosi di questi sono kkrunchy di farbrausch (per 64k) e crinkler di TBC & Loonies (per 4k). Inoltre, le demo moderne fanno un uso pesante degli shader, che sono solo testo e quindi diventano notevolmente più piccoli dopo la compressione.
Ora, per quanto riguarda l'integrazione nei videogiochi, il problema principale è che tutto ciò richiede tempo. La generazione di contenuti procedurali richiede tempo, mentre l'estrazione dell'eseguibile richiede molto tempo. E le persone in genere hanno più spazio sui loro dischi rigidi del tempo da trascorrere in attesa del caricamento del gioco, quindi non credo che vedremo molto di questo nei giochi ampiamente disponibili presto.