demoscene

demoscene - ¿Cómo puedo aprender el arte demente de la democodificación 4K?



(4)

Me encanta mucho el demoscene, especialmente esos pequeños exfilis 4K. No tienen ninguna dependencia, excepto los archivos que ya se encuentran en Windows, y exhiben el increíble poder de la programación: gráficos en 3D + sonido, todo en 4K.

¿Cómo es esto posible? ¿Cuál es el idioma que están usando? ¿Cuáles son las herramientas de comercio, mejores prácticas y sitios web importantes?

nota: responda solo si sabe de lo que está hablando, las respuestas inútiles como "um, supongo que usan asm" serán rechazadas. (esto no está en contra de asm, asm es genial)


Mientras tanto, he encontrado un gran sitio web relacionado con la codificación 4K:

IN4K


Puede que no sea exactamente lo que estás buscando, pero con el mismo espíritu: hay varios concursos de Java 4k. El objetivo es crear una demo de Java o incluso un juego (!) Que se ajuste completamente a un solo JAR de 4096 bytes como máximo.

Ver por ejemplo

http://www.mojang.com/notch/j4k/l4kd/

o

http://javaunlimited.net/contests/java4k.php

Se podría argumentar que Java lo hace mucho más fácil (ya que puede usar todo el tiempo de ejecución), pero sigue siendo impresionante (y es multiplataforma y no necesita aprender ensamblador;)).


los algoritmos de compresión obviamente tienen una gran cantidad de funciones, al igual que los mecanismos cortos para indexar grandes cantidades de datos y un profundo conocimiento de las bibliotecas disponibles en el sistema de destino. (Eso solo puede estar vinculado).

Si yo fuera tú, comenzaría por ingeniería inversa tus demos 4k favoritas; tal vez comenzando con los de hace 7-10 años, y trabajando para seguir el estado del arte a medida que avanza. El análisis de la salida de su compilador también es un buen lugar para comenzar, aunque tienden a optimizar la velocidad en lugar del espacio.

Las técnicas para la programación integrada también pueden ser útiles, dadas las restricciones con las que operan regularmente.


Iñigo Quilez tiene algunos ejemplos de introducciones de 1K y 4K. Puedes aprender mucho de ellos. Echa un vistazo a sus otros artículos también.

El artículo sobre Tiny PE por Alexander Sotirov también es interesante.