miércoles, noviembre 21, 2012

Demoscene: The Art of the Algorithms


Hoy quiero compartir con vosotros un videodocumental sobre la demoscene: “Demoscene: The Art of the Algorithms” (2012).



Para quien no sepa lo que son las demos e intros (no confundir las demostraciones de juegos comerciales con menos niveles que el juego completo), como veréis en el vídeo se trata de programas similares a videoclips (con efectos gráficos espectaculares, música, y algunos de ellos con cierto mensaje detrás) pero que no están “montados” sino programados. Ese modelo 3D rotando, ese fuego, ese agua tan realista, ese efecto de rotación, están programados realizando operaciones matemáticas sobre los puntos y las texturas, en tiempo real.

Antes de ver el documental, creo que debéis poneros en disposición de ver una maravilla como Second Reality, de Future Crew. Pensad por favor que el vídeo que podéis ver a continuación se corresponde con una demo que se ejecuta en 1993 en PCs 386 y 486 a 25 y 33Mhz y que todo está renderizado en tiempo real: 




Second Reality, de Future Crew (1993)


Impresionante, tanto la música (no digitalizada, sino compuesta en un tracker musical), como el montaje, como el impresionante nivel de programación que había detrás de esos efectos para que se ejecutaran fluídos en tiempo real en un simple 486 a 33 Mhz. Y PROGRAMADA EN ENSAMBLADOR.

Os dejo el documental:






Este videodocumental se centra en lo que es la demoscene húngara, y “entrevista” a programadores, músicos y grafistas de intros (de 4KB y 64KB) y demos. El documental es bastante curioso porque se vé una cultura de gente brillante a muchos niveles y que se dedican al tema de la demoscene por simple hobby.

Reconozco que he echado de menos ver a grupos no Húngaros, como por ejemplo Future Crew. Es más, hasta creo que el documental debería haber incluído demos como “Second Reality” para disfrutarla desde su principio a su fin.

Lo que más me ha sorprendido del documental es que existan las “demotools”. En la época de las demos que viví yo (Intel 286-386-486), todo se hacía “a mano”. Las demos se programaban desde cero, un efecto detrás de otro. En este vídeo podemos ver cómo algunos demosceners, cansados de programarlo todo desde cero, se crean herramientas para componer las demos como si fuera un editor de vídeo no lineal, generando esta herramienta después el código (ver el documental a partir del minuto 55m:40s). Con esta herramienta, el programador “diseña” los modelos 3D, importa texturas, las “inserta”, les aplica efectos, y puede mover todos los efectos y modelos por el “timeline”, definiendo cómo será la demo, cuándo entra cada efecto y con qué parámetros, etc.





Aspecto de la demotool de Conspiracy

(captura del videodocumental)


Detalle del timeline


Esto, que podría parecer que choca contra el espíritu de “superación” de las demos (programar para superar a otras personas, otros retros o mejorar algo), se produce porque las máquinas modernas ya no tienen las limitaciones de las antiguas.


Antes (por ejemplo, en C64, Amiga o PCs antiguos sin GPU), teníamos unas limitaciones de hardware especificas que obligaban a que la “carrera” del demoscener fuera la de superar estas limitaciones. A optimizar para llegar más allá de lo que alguien pensara que se podía llegar. Cuando veías un efecto espectacular en un C64, un Amiga, o un PC antiguo, sabías que lo que estabas viendo era en tiempo real, creado desde cero, sin usar ningún tipo de aceleración ni bibliotecas de terceros, y sentías cómo explotaba la máquina más allá incluso de lo que mostraban los juegos comerciales.

En esa época la clave la marcaba la limitación del hardware, como he dicho, y la superación era técnica: exprimir la máquina un poco más de lo que se hacía hasta el momento, para dejar con la boca abierta a quien pensara que ese sistema no era capaz de eso.

Actualmente el hardware está a tal nivel que la “carrera” ya no es la técnica sino la de diseño. Las demos deben de ser bonitas, la música espectacular, los efectos ser “plásticos”...

Las únicas limitaciones que te puedes imponer para poner coto a los resultados son artificiales: por ejemplo, el tamaño. Intentar que la demo no supere 4KB ó 64KB implica forzar al programador a utilizar gráficos procedurales (nada de incluír imágenes), a generar el sonido él mismo (nada de incluír audio digitalizado), etc. También a devanarse los sesos para hacer efectos con las texturas y los sistemas de partículas, las cámaras y las fuentes para que el resultado sea espectacular, largo, y de reducido tamaño de ejecutable.

Aparte de estas limitaciones artificiales de tamaño, podemos forzarnos a programar sobre máquinas antiguas, que todavía tiene mucho tirón.


En cualquier caso, como he dicho, algunos demosceners, ya no teniendo “barrera técnica” que superar, se centran en la parte artística y plástica, el diseño y el “montaje”, y para eso las demotools ayudan, porque lo espectacular ya no es “programar los efectos” sino usarlos correctamente y no tiene sentido reprogramar el mismo efecto gráfico desde cero. Así que las demotools permiten abstraerse de la “pérdida de tiempo” de reprogramar algo que no supone un reto, que se presupone ya sabido, para centrarse en el montaje en sí.

Si recordáis la anterior entrega (la de la Edad de Oro del Videojuego Español), acabé hablando de la frustación que supuso entrar en un mundo concreto y ver que está ya todo realizado y que no puedes ponerte al nivel de lo que ya hay. Me pasó con el Spectrum y después con el PC. Incluso a día de hoy pasa con los juegos para móviles, ya que hace unos años podías desarrollar cualquier cosa para móvil pero hoy hay juegos HD que tienen detrás equipos más gandes que juegos de PC o de consola.

Pues en el mundo de las demos, al final del vídeo puede verse como sucede lo mismo. Después de 30 años de demos, ¿qué ocurre con aquellos que les pica el gusanillo y quieren meterse en esto?

Pues que no pueden competir a ningún nivel con lo que ya hay. Viendo demos de 1993 (Second Reality) que son ya casi insuperables, y demos de estos últimos años que tienen efectos dignos de Pixar, supongamos que entras tú y empiezas con tu pequeño cubo rotando. Necesitarás DECADAS para ponerte al nivel de lo que hay AHORA. Sólo si lo haces por diversión puedes dedicar el tiempo necesario y no sentir tal frustración inicial que abandones.

De nuevo, alguien (por más brillante que sea) que quiera entrar este mundillo, llega muchos años tarde. Quien podría haber sido la estrella hace 30 años, cuando un rotozoom o rotar modelos 3D en un C64 era impresionante, ahora se pierde entre el mar de genialidades pasadas.

Casi que me queda una conclusión que se merece un artículo aparte.

¿Debería existir un hueco para los relevos generacionales? ¿Deberían haber “categorías de demoscene” para novatos, y verse y valorarse dentro de lo que representan y no en un marco general? ¿Acaso se hace ya esto? ¿Deberían existir canales de distribución de juegos amateurs (aparte de las Store)?

Finalizo el artículo dejándoos algunos vídeos que no os podéis perder:







Música: "Elysium" de Jester/Sanity, reproducida en el Impulse Tracker






Intro (64KB!!!): "Heaven Seven" de Exceed. Repito: 64KB.



 Que las disfrutéis.

No hay comentarios: