Hace 7 años | Por ccguy a youtube.com
Publicado hace 7 años por ccguy a youtube.com

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

Comentarios

D

#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?

D

#8 ya he hecho mi primer byte! 01001101 ¿qué tal va?

omegapoint

#31 te recomiendo continuar hasta

main[-1u]=;

Que ya tienes la primera letra.

Con 29 bytes , generas 16gb....

pedrobz

#31 Vas bien, y como este es un entorno colaborativo, pongo mi granito de arena con el segundo byte 01011010

D

#31 Ay mi niñooooo! Que cosas más bonitas que hace. Lo pondremos en el frigorífico con un imán del mercadona.

cls4ever

#46 Jo, yo no tengo ningun iman del mercadona cry

D

#31 Yo le añadiría un 2. Para espantar a Bender, más que nada.

SENCO

#7 Empieza por aprender lenguaje ensamblador del x86 y luego progresa hacia las extensiones modernas. El resto son mucha matemática y mucho ingenio.

D

#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!!!

anv

#21 Claro, lo que pasa es que con C un simple "hello world" te ocupa mucho más. Y ni que hablar de C++

a

#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.

f

#28 no te olvides de aprovechar bien los recursos de la tarjeta gráfica puede ahorrar algunos bytes

Mariele

#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.

elmike

#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.

D

#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.

b

#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!

D

#41 El processing me lo estuve mirando y tiene buena pinta, empezaré por ahí! gracias

D

#7 Una de las páginas más completas que conozco es la de Íñigo Quílez (http://www.iquilezles.org), ese hombre es un genio.

zhensydow

#47 muy bueno pero de nivel avanzado. no vale para comenzar.

zhensydow

#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:

http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/

ccguy

#13 #14 #15 Reglas aquí: https://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 import by hash to save on executable size or just use a 4k packer like Crinkler, which does this automatically.
It is okay to deliver bigger versions of the 4k along with the compo version (which must be

box3d

#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

P

#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í...

D

#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.

D

#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.

omegapoint

#24 y necesitarias bastante más de 4kb

GeneWilder

Es una belleza en su simpleza y una maravilla por los recursos utilizados en su creación.

orangutan

¿En esos 4 KB va incluída la música?

M

#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.

elmike

#6 Viene en el segundo diskette de la Pcmania del mes pasado

ccguy

#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.

D

#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.

D

#10 ¿hay restricciones de arquitectura? Hay instrucciones en algunas arquitecturas que hacen más cosas por el mismo espacio.

box3d

#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.

D

Con 4K en el Spectrum tienes un juego completo

borteixo

Está hecho en Java

Estopero

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.

D

Lo de ponerlo a FullHD a 60fps es ya recochineo jajaja, qué grande

autonomator

Una maravilla estando los códigos como estan hoy en dia

王大牛

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.

omegapoint

Ofusca como puedas

mandelbr0t

#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!)

letzzar

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.

https://es.m.wikipedia.org/wiki/.kkrieger
Aquí donde pude encontrarlo https://files.scene.org/view/demos/groups/farb-rausch/kkrieger-beta.zip

i

Me quedo con esta (presentada en la misma party)

Cyteck

De la misma party son más buenas estás demos de 4Kb

y
en nivel de Revision 2017 de este año es altísimo!! y hay de 8Kb y 64Kb muy buenas también http://www.pouet.net/party.php?which=1550&when=2017

D

No puede dar mas pantallazos

D

Una sola línea en java ocupa más que eso, virgencita.

D

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.