Entonces, estoy aquí en la asamblea 2011 y se jugó esta demostración: http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded
Es un solo archivo, lo dice en las reglas. Entonces repito, ¿cómo han hecho que esto se ajuste a un archivo tan pequeño?
Respuestas:
Está basado en procedimientos . El contenido no está incluido en el exe, solo las reglas de cómo dibujarlo. Cuando se inicia, el programa dibuja lo que necesita en tiempo de ejecución, no se renderiza ni se guarda previamente de ninguna forma.
Este es el mismo método utilizado por Elite para crear un vasto universo de sistemas estelares, etc.
Es bastante sorprendente lo que es posible hoy usando la generación de procedimientos, creo que los juegos contarán con más de esto en el futuro.
fuente
Como dice @Gary Willoughby, es ampliamente procesal.
Además, hay una importante
asm
codificación manual involucrada, junto con un amplio conocimiento de cuántos de los sistemas de Windows / plataforma de elección funcionan internamente.También hay una categoría de demostración 4K, si desea ver ejemplos aún más extremos de código compacto.
Algunos de los grupos DemoScene lanzan sus demos en línea, donde puede descargarlas y reproducirlas si lo desea.
Conspiración
farb-rausch
Ver también Wikipedia sobre la historia de la DemoScene
Nota: muchas de las demostraciones harán que tu antivirus se asuste . Básicamente, parece que casi todas las demostraciones usan archivos .exe empaquetados, y la mayoría de los grupos de demostración lanzan sus propios empacadores. Desafortunadamente, debido a que muchas compañías de AV son poco convincentes, generalmente afirman que cualquier ejecutable binario empaquetado es un virus de algún tipo.
fuente
Como todo el mundo dice que depende en gran medida del código generado por el procedimiento, pero hay aún más sobre esta demostración en particular, si hace una pausa y mira algunos detalles, veamos, por ejemplo, esas paredes: mire esos ladrillos y cómo la luz se refleja en ellos. Se ven naturales.
Esto se debe a que están utilizando muchos sombreadores de vértices y sombreadores de fragmentos para dar vida al contenido generado.
Pasé un tiempo tratando de comprender cómo hacen esas cosas, y me sorprendí con cada código que tomé de esas demostraciones.
Por cierto, al hacer esas demostraciones también usan herramientas de compresión para exprimir aún más. verifique este proceso de compilación:
fuente
Hay una presentación de PowerPoint de cómo se realizó el renderizado en esta demostración específica. Esto por sí solo no explica cómo todo encaja en 64 kilobytes, pero es la clave de cómo se creó la geometría en tan poco espacio.
También hay muchas lecturas interesantes en su blog sobre sus otras producciones de demoscene.
fuente
Como ya han dicho otros, mucho de esto se basa en activos generados por procedimientos.
Hay otro elemento, que es la compresión. Las demostraciones 4k y 64k utilizan compresores ejecutables altamente especializados. Los más famosos son kkrunchy de farbrausch (para 64ks) y crinkler de TBC & Loonies (para 4ks). Además, las demostraciones modernas hacen un uso intensivo de los sombreadores, que son texto sin formato y, por lo tanto, se reducen drásticamente después de la compresión.
Ahora, en lo que respecta a la integración en los videojuegos, el principal problema es que todo esto lleva tiempo. Generar contenido procesal lleva tiempo, y extraer el ejecutable lleva una gran cantidad de tiempo. Y las personas generalmente tienen más espacio en sus discos duros que el tiempo para esperar a que se cargue el juego, por lo que no creo que veamos mucho de esto en los juegos ampliamente disponibles en el corto plazo.
fuente