Demoscene

Una animación de seis minutos, más pequeña que un correo electrónico

92 Flares Twitter 23 Facebook 65 Google+ 4 Pin It Share 0 Email -- 92 Flares ×

Las demostraciones que vemos en estos días pueden demandar gigabytes enteros de texturas y varias horas de procesamiento para que todo se vea suave y sin errores, pero las cosas no funcionan así en el movimiento Demoscene. Todas las demos se ejecutan en tiempo real, exprimen al máximo el hardware disponible, y entran varias veces en un diskette. Aunque parezca mentira, la demo que verás a continuación ocupa apenas 64 kilobytes.

En una época, todo se reducía a una cuestión de habilidad pura entre los programadores. La memoria RAM costaba una fortuna, los procesadores entregaban un puñado de MHz, y había que aprovechar hasta el límite lo poco que había (incluyendo errores no documentados de hardware). Básicamente, la solución era dejar que una serie de algoritmos creen el contenido en tiempo real. El término oficial es generación procedural (sé que procedural no está en el diccionario, pero haré una excepción por hoy), y lo más probable es que ya te hayas cruzado con ella varias veces. Minecraft, la saga Elite, los primeros dos Diablo y la serie Left 4 Dead son buenos ejemplos de juegos que usaron a la generación procedural para todos o algunos de sus componentes… pero no son los únicos. También está el movimiento Demoscene, asociado originalmente con los cracks de los primeros juegos y sus maravillosas presentaciones (cracktros). A pesar de la abundancia de recursos y el drástico cambio en el estilo y la calidad de las animaciones, el Demoscene sigue vivo, y sus representantes se dan el lujo de imponer límites artificiales a sus trabajos (como cantidad de memoria o plataforma de ejecución), para conservar el espíritu competitivo.

 

Desde el año 2011, en la ciudad de Saarbrücken se lleva a cabo durante las Pascuas la demoparty Revision, una de las tantas que se realizan en territorio europeo, hoy el bastión principal del movimiento Demoscene. El vídeo que está más arriba, bautizado The Timeless, fue creado para la edición 2014 de Revision por el grupo Mercury. Son poco más de seis minutos repletos de laberintos, ciudades futuristas, océanos y enormes ventanales, todo eso “contenido” en 64 kilobytes. Este es uno de los límites que mencioné antes: Dependiendo de las reglas, los demosceners pueden trabajar con valores que van desde los 4 hasta los 64 kilobytes.

Por supuesto, el hecho de que la animación ocupe 64 kilobytes no significa que sea posible ejecutarla en una calculadora o un teléfono móvil. The Timeless es una composición hecha para PC, y su exe corre bajo Windows, pero también requiere de una tarjeta gráfica con soporte OpenGL 4.3 o superior. Su archivo .nfo no pierde el sueño al recomendar una tarjeta GeForce GTX 780 como mínimo, y aún así, el ojo entrenado notará que en algunas secciones, la demo tiene cierta pérdida sobre sus cuadros por segundo. Una cosa más: Si decides descargar una copia, lo más probable es que tu antivirus genere un falso positivo interpretando al exe como una bomba cargada de malware.

 


Autor:
  • Gereziondo

    Todavia no me creo que ocupé tan poco :O

  • AAA

    “Procedural” no está en el diccionario porque tiene un equivalente en español: procedimental.

  • vincegeratorix

    Wow, por lo que veo están hechos en ensamblador muchas de ellas, o con opengl.
    Pensar que me cae mal el bajo nivel. Ya ni a los informáticos nos enseñan a programar en bajo nivel. incursioné un poco con three.js y lo encontré horrible, eso de hacer las cosas con triángulos para todos lados, vectores, y esas cosas; así que lo dejé de lado.
    Nunca estoy de acuerdo con mi hermano, que me critica por usar python o java, mientras que él (estudia electrónica) lo más “alto” que llega es C. Y el C de arduino o de pics, que es realmente horrible para mí. Además que usa ensamblador para los microcontroladores. A él le gustó la idea de aprender opengl, quizás algún día cuando él tenga tiempo le daré cursos de opengl que tengo guardados (y que nunca he visto, me da cosa el opengl).
    Bueno, decir que la mayoría de los informáticos modernos (como yo, aunque estoy estudiando aún xD) no usamos bajo nivel. Pero para el que sabe inglés hay muchos cursos de opengl y assembler por la web xD Y que yo odio XDDDD

  • Alcahez

    Hay un juego de shooter en 3D que se llama “.kkrieger” que pesa sólo 96 Kb, yo lo pude hacer correr en una ATI Radeon 9550 de 256 MB.

    Aquí pueden leer más pero los links de descarga están caidos: http://www.pixfans.com/kkrieger-shooter-3d-que-ocupa-tan-solo-96-kb/

  • vincegeratorix

    Lo siento, pero no sé a qué te refieres.
    Tengo esquizofrenia de síntomas negativos hace seis años (con tratamiento, pero es una enfermedad de toda la vida), así que tengo las habilidades sociales disminuídas. Me gustaría que me dijeras bien claro, y me sería de gran ayuda, porque no comprendo a qué te refieres. O alguno de los 4 que le dieron me gusta. ¿Dije algo mal? Al principio pensé que era porque menosprecié al bajo nivel; pero por eso de “no está en los libros”, creo que va en mi forma de decirlo. Lo siento si no me expreso bien, creo que debería dejar de comentar en blogs.

    • JMF

      No es para tanto. Simplemente Cordobes se refiere a que por falta de experiencia quizá no estés apreciando las bondades del bajo nivel, que en general, de implementarse bien, permite muchísimo más control del hardware resultando en un software con un mayor desempeño. Obviamente el alto nivel tiene sus ventajas al simplificar las cosas y acelerar los tiempos de desarrollo, pero hay que evaluar cada caso particular para decidir qué utilizar.

      He visto muchos desarrollos con ejecutables en Java, pero con librerías y frame works en C y C++, que la verdad al uso se sentían como implementaciones puramente nativas por su desempeño.

      Sinceramente veo como un error muy importante el que no te enseñen lenguajes de bajo nivel, si es que estás en una universidad, terciario o secundario. Si estás haciendo cursos específicos, ahí, bueno, fuiste a por algo especificamente.

      JS por cierto es un lenguaje de alto nivel.

      Y no te creas que para lograr esos efectos visuales se valgan únicamente de assembler. Usan OpenGL, DirectX, Visual Basic, Pascal, C, C++, Python… lo que sea que se les ocurra. Cosas propias también, por eso la escena ha sido y sigue siendo importante para el desarrollo de nuevas tecnologías gráficas.

      Saludos.

  • xxx

    Lo que puede que no este en los libros es que desarrollar algo “eficiente” en informatica solo es posible con dos cosas, paciencia y lenguajes a bajo nivel.