EDICIóN GENERAL
172 meneos
6397 clics
El ciclo de la naturaleza, por Loonies - Demo de 4 KB

El ciclo de la naturaleza, por Loonies - Demo de 4 KB

Vídeo generado por un programa de 4 KB (4096 bytes), presentado en la competición Revision 2017.

etiquetas: demo , 4k , loonies , cycle of nature
Por hacernos una idea, una imagen en miniatura de las que tenemos en menéame ocupa un 50% más, unos 6 KB.
Este video está hecho con 4096 putos bytes. Cabe 12 veces en un Spectrum de 1982.

Por si alguien se la quiere bajar y probarla en su PC: loonies.dk/demos/bin/lns-cycleofnature.zip
#1 A mi es algo que me ha fascinado desde siempre pero no sé ni por donde empezar. ¿Tu tienes idea de algún libro o recurso por donde empezar?
#7 Empieza por el primer KB, hombre. Si te queda bonito, pues ya haces los 3 restantes.
#8 ya he hecho mi primer byte! 01001101 ¿qué tal va?
#31 te recomiendo continuar hasta

main[-1u]={1};

Que ya tienes la primera letra.

Con 29 bytes , generas 16gb.... :-D
#31 Vas bien, y como este es un entorno colaborativo, pongo mi granito de arena con el segundo byte 01011010 :troll:
#31 Ay mi niñooooo! Que cosas más bonitas que hace. Lo pondremos en el frigorífico con un imán del mercadona.
#46 Jo, yo no tengo ningun iman del mercadona :'(
#31 Yo le añadiría un 2. Para espantar a Bender, más que nada.
#7 Empieza por aprender lenguaje ensamblador del x86 y luego progresa hacia las extensiones modernas. El resto son mucha matemática y mucho ingenio.
#20 Pensaba tirar por C que he trabajado con él, pero el tema de las matemáticas creo que aquí es más importante tal vez que no la programación. Gracias!!!
#21 Claro, lo que pasa es que con C un simple "hello world" te ocupa mucho más. Y ni que hablar de C++
#25 salvo que no uses con la librería estandar. El otro día vi un hello world en C que era solo de unos bytes.
#28 no te olvides de aprovechar bien los recursos de la tarjeta gráfica puede ahorrar algunos bytes
#20 he perdido la pista del enlace pero hace años recuerdo haber leído una serie de tutoriales de un scener español que explicaba, por ejemplo, cómo dibujar una mariposa descrita a partir de unas ecuaciones, para poder hacerlo en un código minimalosta siguiendo varios trucos. Era de muy buen leer.
#7 #29 Así a groso modo, Ensamblador, tecnicas de 3D a bajo nivel y generación de fractales para los graficos procedurales.
En su dia usabamos bastante la "The PC Game Programmer's Encyclopedia"y el Dr. Dobbs Journal, Hoy seguro que a excepción del algoritmo de Bresenham y alguna cosa mas sera todo información obsoleta, así que comienza Googleando "Demoscene" y mirate algun tutorial sobre como generar un Mandelbrot o un Julia para practicar con los fractales.
#20 Hace mucho, pero muchísimo tiempo que las demos no se hacen en ensamblador, a menos que te vayas a máquinas antiguas o a categorías ultra limitadas como las demos de 256 bytes (que suelen ser para MS-DOS, así que contarían como "máquinas antiguas"). Pero incluso en las de 4 kB, todos los artículos que he leído indican que usan C/C++, y sobre todo compresores de código y shaders a mansalva.
#7 Yo te recomiendo que empieces con Processing.org o Opernframeworks.cc
Lo mas importante es empezar a hacer cosas, ya mas adelante podras empezar a optimizar!
#41 El processing me lo estuve mirando y tiene buena pinta, empezaré por ahí! gracias
#7 Una de las páginas más completas que conozco es la de Íñigo Quílez (www.iquilezles.org), ese hombre es un genio.
#47 muy bueno pero de nivel avanzado. no vale para comenzar.
#7 processing que te han recomendado es muy buen comienzo. Segundo trata de replicar lo que ya es conocido. Y tercero se consigue estas demos gracias a generar todo a partir de muy pocos datos adicionales. Te paso un buen articulo que te puede inspirar, como generar una isla aleatoriamente, paso a paso y con algoritmos explicados:

www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-gener
Es una belleza en su simpleza y una maravilla por los recursos utilizados en su creación.
Una maravilla estando los códigos como estan hoy en dia
¿En esos 4 KB va incluída la música?
#4 En este caso no lo he comprobado, pero generalmente si. Son generalmente autenticas virguerias, funciones de onda y valores q van cambiando con el tiempo, pasados directamente al sintetizador. Hay q controlar del tema, vaya.
Alguien sabe en que numero de Micromania viene el CD de esta demo? :troll:

#4 Si!
#6 Viene en el segundo diskette de la Pcmania del mes pasado
#4 Absolutamente todo. 4 KB es lo que puede ocupar el fichero, ni más ni menos. No se pueden utilizar librerías externas, por supuesto no te puedes descargar nada de internet... sin trampas. Lo único que puedes hacer es comprimir el programa, pero no en .zip. El programa tiene que ser un ejecutable, puede autodescomprimirse en memoria (lo que en sí mismo también ocupa bytes) pero nada más.
#10 Hombre, eso de que no puedes utilizar librerías externas no parece del todo cierto, necesitas tener DirectX 11 instalado por algo, digo yo.
#13 #14 #15 Reglas aquí: 2017.revision-party.net/compos/pc

4K Intro

Maximum file size is 4096 bytes for the executable. All other files in the archive will be deleted before showing the entry in the competition.
Maximum running time: 8 minutes (including loading/precalc).
Import by ordinal for DLLs with non-fixed ordinals is forbidden (don't even think about directly jumping into DLLs with hardcoded offsets!). Please use alternative, more compatible techniques like muhmacs…   » ver todo el comentario
#19 Lo dicho. No está disponible nada que no venga en el OS, pero excepto en las demos de DOS/oldschool que corren con acceso directo al hardware, el resto requieren código del OS para acceder al hardware.

Del README de la demo
> DirectX 11.1, feature level 11_1 required!

Que por suerte viene de serie en Wndows moderno ;)
#19 Una pregunta desde el desconocimiento: está TODO dentro de esos 4kb, y lo va enseñando, o se va generando en tiempo real en memoria? Tengo algo de lío ahí...
#23 en principio todo lo que va dentro es código, no hay espacio para nada más. La música y las texturas se generan proceduralmente.
#19 "We will provide the then-latest DirectX distributables."

Pues sí que están instaladas las librerías de DirectX, lo que también me parece razonable, esperar que la demo incluya código de dibujado por software le quitaría posibilidades y rendimiento, sería una limitación excesiva e innecesaria.
#24 y necesitarias bastante más de 4kb
#10 ¿hay restricciones de arquitectura? Hay instrucciones en algunas arquitecturas que hacen más cosas por el mismo espacio.
#10 Matiz. Sí que utilizas librerías externas siempre y cuando vengan con el SO. Algunos SO como DOS no proporcionan (casi) nada mientras que un SO moderno te proporciona toda la parafernalia para cceder a la gráfica y la tarjeta de sonido.

En cualquier caso, impresionante.
Espero que no sea para android porque entonces después de ejecutarlo se bajará 3gb de datos.

Impresionante la aplicación, a mi que soy programador me parece casi magia de sangre.
Está hecho en Java :troll:
Ofusca como puedas
#12 ;we are currently doing this simple obfuscation (on the fly) to avoid stupid virus scanners detecting the crinkler executables (and then flag the whole site!)
Para comenzar en 4kb lo mejor es aprender de los shaders en shadertoy.com vienen con codigo fuente para modificar y son la base para muchas de las intros que se hacen hoy dia.

Tambien podeis buscar por inigo quilez, que es una eminencia en el campo y escribe muchos articulos relacionados.
Me quedo con esta (presentada en la misma party) www.youtube.com/watch?v=9r8pxIogxZ0
#18 Para que te dé un ataque de epilepsia, sí, ¡donde va a parar!
Una sola línea en java ocupa más que eso, virgencita.
Lo de ponerlo a FullHD a 60fps es ya recochineo jajaja, qué grande
Con 4K en el Spectrum tienes un juego completo www.youtube.com/watch?v=XOCFtwQb0GI
De la misma party son más buenas estás demos de 4Kb youtu.be/rML-KvlWk5s y youtu.be/q7BMD2ZPt00 en nivel de Revision 2017 de este año es altísimo!! y hay de 8Kb y 64Kb muy buenas también www.pouet.net/party.php?which=1550&when=2017
No puede dar mas pantallazos
Ya años atrás mis amigos y yo alucinábamos con un videojuego desarrollado en 96Kb, tipo FPS, que usaba pixel shaders, luces, sombras y física.

es.m.wikipedia.org/wiki/.kkrieger
Aquí donde pude encontrarlo files.scene.org/view/demos/groups/farb-rausch/kkrieger-beta.zip
crinkler es un compresor de ejecutables, lo que para mi algo de merito le quita ya que en realidad no son 4kb antes de comprimirlo con un compresor hecho por otra gente, pero bueno, las normas lo permiten.

menéame