Entradas de la categoría ‘Geek txoko’

«GORILLAS.BAS»

GORILLA.BAS

Fueron los tiempos en los que encender un PC compatible significaba enfrentarse a una pantalla negra, escribir comandos y aprender sobre la marcha cómo funcionaba aquella máquina. Y en el ámbito de la programación o el desarrollo ocurría tres cuartos de lo mismo. Bajo aquel contexto tecnológico apareció GORILLA.BAS, uno de los programas más recordados de Microsoft QBasic, un juego aparentemente sencillo que acabó convirtiéndose en la primera lección de programación, física y diseño de gráficos para toda una generación de usuarios. Muchos recuerdan Doom, Prince of Persia o Wolfenstein 3D como las grandes puertas de entrada al videojuego en PC, pero antes de ellos hubo miles de adolescentes lanzando plátanos explosivos entre rascacielos pixelados.

GORILLA.BAS (del año 1990) no era un producto comercial ni una demostración tecnológica destinada a impresionar a la prensa especializada. De hecho, su objetivo principal era enseñar. Microsoft lo distribuía junto con QBasic y QuickBASIC como ejemplo práctico de programación avanzada. Al instalar el entorno de desarrollo, el usuario encontraba no sólo el ejecutable, sino también todo el código fuente, algo que hoy parece inconcebible para la mayoría del software comercial. Bastaba pulsar unas teclas para abrir miles de líneas de BASIC perfectamente comentadas y comenzar a descubrir cómo estaba construido el juego. Para muchos futuros programadores aquello fue como desmontar un motor y comprobar cómo funcionaba pieza por pieza.

GORILLA.BAS

La mecánica era extraordinariamente simple. Dos gorilas aparecían situados sobre edificios de una ciudad generada aleatoriamente, cada jugador introducía mediante teclado el ángulo y la velocidad del lanzamiento y el ordenador calculaba entonces la trayectoria del proyectil y representaba el vuelo del plátano sobre el horizonte urbano. El primer jugador que acertaba a su rival ganaba la ronda. No había música digitalizada, no existían niveles, ni siquiera una inteligencia artificial elaborada. Sin embargo, como ocurría con los mejores juegos de la época, la sencillez escondía una enorme profundidad, pues cada partida planteaba un problema balístico diferente que exigía observación, ensayo y corrección continua.

Desde el punto de vista matemático, GORILLA.BAS —formalmente, QBasic GORILLAS— era una clase práctica de física de secundaria disfrazada de videojuego. La posición del plátano se calculaba mediante ecuaciones de movimiento parabólico. El programa tenía en cuenta la velocidad inicial, el ángulo de disparo, la gravedad y una variable adicional que simulaba la fuerza del viento. En cada iteración se recalculaba la posición horizontal y vertical del proyectil, dibujándolo en pantalla mientras avanzaba sobre los edificios. Lo interesante es que aquellos cálculos se realizaban en tiempo real sobre procesadores que hoy resultarían ridículos, y un 8088 o un 286 funcionando a unos pocos megahercios era más que suficiente para ofrecer una simulación convincente.

GORILLA.BAS

Uno de los aspectos más brillantes del diseño era precisamente la implementación del viento. En la parte inferior de la pantalla aparecía una pequeña indicación visual (una flecha) que mostraba la dirección e intensidad. Matemáticamente, el viento actuaba como una aceleración horizontal añadida a la ecuación del movimiento. Un valor elevado podía convertir un disparo aparentemente perfecto en un completo desastre, y los jugadores experimentados aprendían a estimar rápidamente cuántos grados debían corregir el lanzamiento o cuánta velocidad adicional necesitaban aplicar para compensar la desviación. Sin darse cuenta, estaban realizando cálculos aproximados similares a los que utilizan disciplinas tan distintas como la artillería o la aeronáutica.

La ciudad también escondía más trabajo técnico del que podía parecer a simple vista, ya que los edificios no estaban dibujados manualmente, sino que cada partida generaba un skyline diferente mediante procedimientos aleatorios. El programa elegía alturas, anchuras y posiciones dentro de ciertos márgenes para construir una ciudad única en cada ronda. Las ventanas iluminadas se distribuían igualmente mediante números aleatorios, creando la sensación de una auténtica metrópolis nocturna. Esta generación procedural era especialmente llamativa en una época en la que la mayoría de escenarios de videojuegos estaban completamente predefinidos por los desarrolladores.

GORILLA.BAS

Los propios gorilas representaban una demostración técnica muy interesante. Los personajes no eran imágenes cargadas desde disco ni sprites acelerados por hardware. Estaban definidos dentro del código mediante matrices de datos que describían pixel a pixel su apariencia y, durante la ejecución, el código convertía esos datos en gráficos visibles sobre la pantalla. Cuando el gorila lanzaba un plátano, levantaba los brazos mediante una sencilla pero eficaz animación. Resulta sorprendente comprobar cómo unos pocos cientos de bytes podían transmitir tanta personalidad a un personaje tan rudimentario.

También merece atención la forma en que el juego gestionaba las colisiones. Cada fotograma verificaba si el plátano había impactado contra un edificio, un gorila o había abandonado los límites de la pantalla. Cuando se producía un choque, el programa utilizaba primitivas gráficas para generar una explosión circular que alteraba permanentemente el escenario. Los edificios podían quedar parcialmente destruidos, modificando las condiciones de los siguientes disparos. Este detalle, aparentemente menor, introducía un nivel de interacción con el entorno que muchos títulos más sofisticados no ofrecían por aquella época. (¿Y que decir con la colisión con el sol? Dejamos este asunto para que el lector lo descubra por sí mismo).

A nivel gráfico, GORILLA.BAS aprovechaba las capacidades disponibles en CGA, EGA y VGA utilizando exclusivamente las funciones del lenguaje BASIC. Todo el dibujo se realizaba mediante comandos como LINE, CIRCLE, PAINT y PSET. Quien abría el código descubría que detrás de los edificios, los gorilas y las explosiones no existía ningún motor gráfico secreto; todo eran llamadas relativamente sencillas combinadas con ingenio y paciencia. Precisamente ahí radicaba gran parte de su valor educativo. El usuario comprendía que los videojuegos no eran magia, sino algoritmos.

Quizá el aspecto más importante de GORILLA.BAS fue su influencia silenciosa sobre una generación de aficionados. Miles de futuros programadores modificaron el código para cambiar colores, alterar la gravedad, transformar los plátanos en misiles o aumentar el tamaño de las explosiones. Algunos añadieron nuevos tipos de edificios, otros intentaron incorporar sonido o marcadores más sofisticados. Sin saberlo estaban aprendiendo conceptos fundamentales sobre programación estructurada, gestión de memoria, gráficos, simulación física y depuración. Muchas vocaciones informáticas comenzaron precisamente ahí, examinando un programa real y atreviéndose a romperlo para descubrir cómo funcionaba.

Visto desde 2026, cuando los videojuegos manejan mundos abiertos de cientos de kilómetros cuadrados y millones de polígonos por segundo, GORILLA.BAS podría parecer una reliquia irrelevante. Sin embargo, su importancia histórica va mucho más allá de sus gráficos primitivos y representa una época en la que los ordenadores invitaban a la curiosidad, en la que el usuario podía acceder al código fuente de un programa, modificarlo y aprender de él.

GORILLA.BAS

GORILLA.BAS tampoco estaba solo. Formaba parte de una tradición de programas demostrativos que acompañaban a los intérpretes y entornos de desarrollo BASIC de Microsoft, distribuyéndose con su código fuente completo para que los usuarios pudieran estudiarlo y modificarlo a voluntad. Entre ellos destacaba NIBBLES.BAS, una adictiva variante multijugador de Snake que servía para enseñar técnicas de animación en tiempo real, captura de teclado y detección de colisiones, o DONKEY.BAS, el sencillo juego de conducción creado por Bill Gates y Neil Konzen para los primeros IBM PC, concebido como demostración de las capacidades gráficas y sonoras del BASIC de Microsoft. Junto a ellos existían otros ejemplos como MONEY.BAS y diversos programas de simulación, matemáticas y gráficos destinados a enseñar programación de una forma práctica y entretenida.

Aquel enfrentamiento entre dos gorilas lanzándose plátanos sobre edificios generados aleatoriamente era mucho más que un pasatiempo, era una puerta de entrada a la programación, una lección de matemáticas interactiva y una demostración de que, con unos pocos cientos de líneas de BASIC y mucha imaginación, era posible crear algo capaz de permanecer grabado en la memoria de varias generaciones de aficionados a la informática. Y eso, probablemente, tiene mucho más mérito que muchos videojuegos multimillonarios de nuestros días.

Podemos descargar el juego, y también jugar online, desde la web de Internet Archive, concretamente desde su repositorio en https://archive.org/details/GorillasQbasic#.

La jungla de los cibercafés del cambio de milenio

Cibercafé

Antes de que proliferaran los espacios de coworking llenos de MacBooks plateados y café de especialidad, existieron unos emplazamientos de culto y perdición conocidos como cibercafés, lugares extraños, oscuros y ligeramente decadentes donde convivían gamers jugando al ‘Counter-Strike’, chavales descargando nuevas ROM de Neo Geo, universitarios imprimiendo trabajos cinco minutos antes de entregarlos y personajes bastante sospechosos, que parecían llevar allí sentados desde siempre, copiando comandos del recién aparecido Nmap en un artículo de la revista ‘Phrack Magazine’.

Durante unos años, ya irrepetibles, los cibercafés fueron el verdadero corazón físico de la cultura underground de Internet. Reconvertidos de los antiguos locutorios pero con el tufillo de las salas de recreativos de los años ochenta, entrar en uno de aquellos locales era acceder a una dimensión paralela. El olor era una mezcla de tabaco incrustado en las paredes, plástico caliente de monitores CRT y comida recalentada. El sonido dominante era un caos glorioso compuesto por ventiladores de Pentium III, teclados mecánicos baratos aporreados con violencia y el ruido inconfundible de decenas de partidas de ‘Quake III Arena’ simultáneas. Había pantallas por todas partes mostrando escritorios de Windows 98, Windows 2000 o XP llenos de iconos sospechosos y salvapantallas de ‘The Matrix’.

Muchos cibercafés empezaron simplemente ofreciendo acceso a Internet por horas, algo revolucionario en una época en la que la mayoría de la gente todavía navegaba mediante módems de 56K (los más afortunados) pagando a precio de oro las llamadas telefónicas. Poder conectarte con ADSL o RDSI era casi ciencia ficción. Pero rápidamente aquellos sitios evolucionaron hacia algo mucho más importante: se convirtieron en puntos de encuentro de la escena informática underground. Allí se compartían cedés grabados, herramientas, tutoriales, cracks, exploits y conocimientos técnicos que rara vez aparecían en sitios «oficiales».

Las máquinas eran auténticas bestias para la época: torres de color beis gigantescas con pegatinas de NVIDIA, Sound Blaster o Iomega, monitores de tubo con un culo enorme de 17 pulgadas capaces de freírte la retina o ratones ópticos recién llegados que sustituían lentamente a los de bola y su acumulación incesante de pelusas. Y debajo del escritorio, casi siempre, una maraña infernal de cables ethernet conectados a hubs o switches que parpadeaban constantemente. Algunos locales más avanzados montaban auténticas LAN parties permanentes con redes a 100 Mbps que parecía tecnología militar comparada con el Internet doméstico de aquel entonces.

Pero el verdadero espectáculo ocurría dentro de los sistemas operativos. Muchas máquinas estaban completamente destrozadas tras semanas de uso salvaje, de barras de herramientas imposibles instaladas en Internet Explorer, de Kazaa ejecutándose permanentemente en segundo plano, de Winamp reproduciendo trance alemán y de carpetas compartidas llenas de material dudoso, muy dudoso. Los administradores vivían una guerra constante intentando limpiar virus, troyanos y spyware. Y perdían siempre.

Porque sí, los cibercafés eran auténticos laboratorios biológicos de malware. Disquetes, discos CD-ROM y memorias USB pasaban de una máquina a otra infectando todo lo que encontraban. Gusanos como Blaster, Sasser o Mydoom campaban a sus anchas por redes locales mal configuradas, mientras Norton y Panda consumían más de la mitad de la RAM de los equipos intentando contener el desastre. Muchas veces bastaba con sentarte en un PC para heredar veinte troyanos distintos en menos de media hora.

Cibercafé

Y aun así, precisamente por ese caos, muchísima gente aprendió allí cómo funcionaban realmente los ordenadores. Los cibercafés eran universidades no oficiales de los bajos fondos digitales. El típico muchacho que iba inicialmente a jugar en línea terminaba descubriendo el correo electrónico y Eudora, luego aprendía a usar un FTP pirata, después comenzaba a tocar scripts de mIRC y acababa investigando sobre redes, Linux o programación en C. Existía una transmisión constante de conocimiento informal entre usuarios; todo el mundo enseñaba algo a alguien.

Los administradores de los cibercafés eran personajes fascinantes. Algunos parecían simples dueños de negocio, pero otros claramente habían salido de la BBS ‘Galletas’ o de algún oscuro grupo de la jerarquía alt.* de Usenet. Lo mismo reinstalaban un Windows XP en veinte minutos, que crimpaban cables RJ45 como si fueran cirujanos o mantenían en orden sus colecciones absurdas de cederrones grabados con utilidades, drivers y software pirata. Eran individuos que miraban siempre hacia otro lado.

Había también una dimensión social muy peculiar, y es que mucha gente vivió sus primeras experiencias reales en Internet desde un cibercafé: primeras partidas online interminables de ‘Age of Empires II’ en red local, primeras descargas eternas de eMule, primeras conversaciones en IRC o primeros ligues digitales con nicks de todo punto disparatados en Terra Chat o LatinChat, donde media adolescencia descubrió que hablar con desconocidos a través de una pantalla resultaba muchísimo más fácil que hacerlo cara a cara. Mucha gente creó allí su primer correo electrónico, abrió su primera cuenta de Messenger o descubrió por primera vez que existían comunidades enteras de personas obsesionadas con exactamente las mismas rarezas que ellos.

La escena española de principios de siglo estaba profundamente ligada a estos sitios. En España, a mediados de la década de 1990, abrió en Oviedo el establecimiento ‘Laser Internet Center’, descrito por la agencia Europa Press como el primer local dedicado al acceso público a Internet del país. En ese mismo periodo surgieron, en ciudades como Madrid, locales orientados al ocio tecnológico que popularizaron el término «cibercafé» en su sentido social. Allí circulaban decenas de CD de Wifislax antes de que la gente supiera siquiera qué era GNU/Linux, allí se compartían versiones modificadas de programas, paquetes de exploits, tutoriales para romper WEP y colecciones gigantescas de software descargado mediante Direct Connect o eDonkey. Algunos cibercafés incluso tenían pequeñas redes internas clandestinas para compartir archivos localmente a velocidades descabelladamente rápidas (para la época).

Con la llegada del ADSL barato y la expansión del Internet doméstico, muchos cibercafés empezaron a desaparecer, ya que no tenía sentido pagar por conectarte cuando cualquiera podía tener banda ancha en casa a un precio fijo —la conocida como «tarifa plana»— . Después llegaron Steam, Discord y las redes sociales modernas, que terminaron de matar aquella cultura física y local.

Pero durante unos años gloriosos y caóticos, los cibercafés fueron mucho más que negocios. Fueron pequeños nodos cyberpunk donde nació gran parte de la cultura informática underground de toda una generación.

Bigtrak: un vehículo programable de MB en 1979

Bigtrak
Bigtrak

En el último año de la década setentera del siglo pasado, la compañía estadounidense Milton Bradley (MB) lanzó al mercado juguetero un vehículo programable de aspecto lunar llamado Bigtrak. Tenía seis ruedas —con tracción sólo a dos de ellas—, una luz azul frontal al más puro estilo de un cañón de fotones y un teclado de membrana superior con el que se podían programar hasta 16 órdenes secuenciales que se ejecutaban por lotes una detrás de otra: avanzar, girar, retroceder, disparar, etcétera. Aquel aparato hizo las mil delicias de niños y adolescentes en un momento en el que concebir juguetes como este era algo poco menos que impensable.

Bigtrak
Bigtrak

Del Bigtrak aparecieron dos versiones oficiales distintas: una la estadounidense, que era gris y venía rotulada como «BIG TRAK», y otra la europea, de color blanco y con el texto «bigtrak» en las pegatinas. Los teclados de ambas versiones también eran sensiblemente diferentes (imagen siguiente) en tipo de letra, colores y leyendas de las teclas. Además, los aparatos de la versión de Estados Unidos montaban placas base con revisión C, D y E, mientras que los europeos tenían serigrafiadas las revisiones L y posteriores en sus plásticos. El microprocesador para todos ellos fue un TMS1000 de Texas Instruments que se alimentaba de una pila de 9 voltios, la cual se insertaba extrayendo una escotilla superior; para los motores eléctricos, el Bigtrak llevaba otras cuatro pilas más del tipo D de 1,5 voltios.

Teclados del Bigtrak EU y Bigtrak USA
Teclados del Bigtrak EU y Bigtrak USA

La forma de programación era muy sencilla. Una vez borrada la memoria, se procedía a introducir mediante las teclas los comandos uno a uno, comandos como «avanzar 5 (unidades de longitud del cuerpo del aparato)», «parar», «girar 45 grados a la derecha», «disparar el láser», etcétera, terminando cada orden con la tecla de verificación. Asimismo, el Bigtrak disponía de algunas teclas especiales, como una tecla de prueba del aparato o una de repetición, una especie de bucle simple para los comandos. Una vez terminado el proceso de programado, se ejecutaban todas las acciones pulsado la tecla GO. El estilo recuerda al lenguaje de programación Logo, donde se le daban órdenes a una «tortuga» para que las ejecutara secuencialmente.

El juguete, además, disponía de un remolque (se compraba por separado) que se conectaba a su parte trasera, pudiendo actuar sobre él para que soltara la carga mediante la tecla de comando correspondiente en cualquier momento de la programación. Realmente, el Bigtrak era capaz de comunicarse con accesorios externos a través de un conector eléctrico tipo jack de 3,5 milímetros, pero la empresa sólo llegó a sacar este remolque. En previsión de futuro pues, diseñaron la tecla OUT, la que se usaba para mover el remolque, y la tecla IN, que nunca se llegó a utilizar; incluso desapareció en los teclados de la versión europea.

Bigtrak con su caja
Bigtrak con su caja

Este juguete se hizo muy popular y llegó a aparecer en la película ‘E.T., el extraterrestre’ (1982). Costaba unas 6.000 pesetas de la época, y, a principios de los ochenta, el departamento de psicología de la Universidad Carnegie Mellon de Pittsburgh (Pensilvania) lo adoptó como vehículo de investigación para el estudio del aprendizaje y el desarrollo cognitivo.

Posteriormente salieron al mercado varios clones del Bigtrak, como el Elektronika IM-11 soviético, pero también ha ido renovándose con versiones oficiales posteriores. Un claro ejemplo de ello es la réplica del juguete original que comercializó la empresa Zeon en el año 2010, que era casi exactamente igual pero con algunas variaciones, como la posibilidad de programarlo para moverse sobre alfombras o sobre suelos lisos mediante un interruptor. Asimismo, la compañía Dubreq, bajo licencia de Zeon, también lanzó una versión pequeña de escritorio, llamada Bigtrak Jr, que incluía un lanzador de cohetes y hasta un soporte para latas de bebidas.

Placa base del bigtrak "made in Spain"
Placa base del bigtrak «made in Spain»

Todo un baño de nostalgia para los niños de aquellos años, el Bigtrak fue el primer acercamiento a la programación informática que algunos experimentamos en nuestras propias carnes.

Google Chrome nos recuerda que las hojas son de papel

Los ingenieros de Google son unos cachondos, y eso lo hemos visto en multitud de ocasiones, pero es que la gente que trabaja en la división del navegador Chrome se lleva la palma: desde los minijuegos con dinosaurios para entretener nuestras pérdidas de conexión hasta los diseños tubulares al más puro estilo salvapantallas, pasando por el «desde el origen de los tiempos» que podíamos ver en algunas versiones a la hora de elegir una fecha de inicio para eliminar los datos de navegación.

Muchos de estos guiños surgen y después se pierden en las versiones posteriores. El que comentamos hoy sigue con nosotros aún, y se refiere al texto que aparece a la hora de imprimir un documento desde el propio Google Chrome, sea una página web, un PDF embebido o cualquier otro elemento. Chrome, como se puede ver en la imagen siguiente, nos recuerda que las hojas que vamos a imprimir son de papel. (Así me quedé yo también).

Las hojas: de papel

Las hojas: de papel

Concienciación ecologista, guasa tecnológica o Google Chrome está preparándose para distinguir materiales cuando, en un futuro próximo, enviemos directamente una orden desde el navegador a nuestra impresora 3D. Quién sabe, pero reconforta ver estos guiños de forma esporádica.

El código fuente que llevó al hombre a la Luna (y dónde descargarlo)

La NASA envía el Apollo 11 a la Luna

La NASA envía el Apollo 11 a la Luna

Cuando los programadores del laboratorio de instrumentación del MIT se dispusieron a desarrollar el software de vuelo para el programa espacial Apollo 11 —a mediados de los años sesenta del siglo pasado—, la tecnología necesaria no existía, por lo que tuvieron que inventarla. Así pues, se les ocurrió una nueva manera de almacenar programas informáticos en dispositivos ROM, a la que llamaron «memoria de núcleos cableados«, y que era un paso siguiente a la memoria ordinaria de núcleos magnéticos de ferrita del momento.

También, tuvieron que inventar una versión especial del lenguaje ensamblador que llevaba en su interior miles de líneas de código; y todo ello para el computador Apollo Guidance Computer (AGC), el alma de la misión, esencial para la navegación del módulo de mando y, también, del módulo lunar; y uno de los primeros ordenadores basados circuito integrados.

En la siguiente imagen podemos ver a Margaret Hamilton, directora de ingeniería de software del proyecto, mostrando la montaña de listados de código que conformaban los archivos fuente de las distintas aplicaciones.

Margaret Hamilton

Margaret Hamilton

El código del AGC ha estado disponible para el público general desde hace bastante tiempo, concretamente desde el año 2003, cuando el investigador en tecnología Ron Burkey se preocupó de colgarlo en Internet después de haber transcrito (mecanografiado), a mano, una a una las líneas que aparecían en las imágenes escaneadas de las copias impresas originales del MIT. Aquellas copias fueron digitalizadas originalmente —en Colorado— por un piloto aeronáutico llamado Gary Neff. Posteriormente, el MIT se hizo con aquellos documentos y los puso en línea en forma de imágenes de página, pero la falta de fortuna quiso que muchas de ellas quedaran mutiladas al punto de ser ilegibles en algunos lugares de las fotografías. Burkey reconstruyó manualmente las partes que se podían rescatar, utilizando sus habilidades en ingeniería para rellenar los huecos en blanco. Algo después, consiguió reunirse con Gary Neff y logró hacerse con los escaneos originales, completando el paquete de documentos al cien por cien.

Aunque esta documentación de tan enorme proyecto ha estado un poco escondida y confinada a reductos universitarios, a mediados del año 2016, el extrabajor de la NASA Chris Garry comenzó a colgar completamente en GitHub la totalidad de los archivos fuente del software espacial. Estos archivos se han ido actualizando hasta hace un par de meses, y podemos asegurar que la integridad del proyecto está hoy a la disponibilidad del total de los internautas que deseen consultarlo.

Una de las cosas que más ha llamado la atención de este código fuente es la ristra de comentarios humorísticos que acompañan al código del ACG a modo de chistes, mensajes y referencias locales a los sesenta estadounidenses. Un buen ejemplo se corresponde con los comentarios iniciales del archivo llamado BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc (imagen siguiente).

Comentarios jocosos al código (clic para ampliar)

Comentarios jocosos al código (clic para ampliar)

O el fichero denominado LUNAR_LANDING_GUIDANCE_EQUATIONS.agc, en el que parece que dos líneas de código destinadas a ser temporales acabaron siendo permanentes, en contra de las esperanzas de un desolado programador.

Comentarios en el código (clic para ampliar)

Comentarios en el código (clic para ampliar)

Todo un ejemplo de ingeniería e ingenio de los primeros programadores espaciales. Ron Burkey, incluso, utilizó el código para crear un simulador del ACG. Podemos, pues, y para terminar, verlo y disfrutarlo en el siguiente vídeo.

V I R I I

Un thriller ciberpunk retrotecnológico de conspiraciones, resistencia digital y ciudades ahogadas en neón, humedad rancia y corrosión.

[Jonathan Préstamo Rodríguez]

COMPRAR EN AMAZON