Hay videojuegos capaces de marcar una época, y Wing Commander, lanzado en 1990 por Origin Systems bajo el sello de Electronic Arts, fue uno de ellos. Considerado un hito del género de simulación espacial, este juego marcó el inicio de una franquicia querida que inspiró secuelas, novelas, una película...Pero más allá de sus logros técnicos y narrativos, desde el punto de vista del desarrollo de software, Wing Commander guarda un secreto curioso: ha ocultado todos estos años un 'bug' disfrazándolo de mensaje de agradecimiento al jugador.Un fallo de software transformado en "funcionalidad"A menudo, los errores de software son enemigos acérrimos de los desarrolladores: algunos se corrigen rápidamente, otros se arrastran de versión en versión. En el caso de Wing Commander, uno de estos bugs fue "resuelto" de una forma tan poco ortodoxa como ingeniosa.Y es que Ken Demarest, uno de los programadores originales, reveló muchos años después del lanzamiento que, al acercarse la fecha límite para el mismo, el equipo se topó con un problema que no pudieron corregir a tiempo. El error surgía al cerrar el juego: el sistema devolvía una excepción crítica del sistema porque interactuaba incorrectamente con el gestor de memoria EMM386, una herramienta común en entornos MS-DOS para administrar memoria extendida.Y es que, a principios de los años 90, los entornos MS-DOS funcionaban con restricciones severas: sólo se podían utilizar 640 KB de memoria convencional, y para ejecutar programas más complejos era necesario recurrir a extensiones como el citado EMM386.De cualquier modo, el resultado era una pantalla negra con un mensaje técnico confuso y poco amigable, algo como:"EMM386 Memory manager error. Bla bla bla".Vamos, parecido a las antiguas 'pantallas azules de la muerte' (de la época en que aún no venían con QR incorporado).Pero, para un jugador promedio, ese mensaje no solo era confuso, sino que también podía sembrar la duda sobre si su sistema (o el propio juego) estaba dañado. En Genbeta Este grave bug sin resolver en una de las bases de datos más usadas ya es más viejo que muchos desarrolladores que la usan Cuando la presión del calendario te vuelve creativoPero la fecha de lanzamiento se acercaba inexorablemente y el presupuesto, como es habitual, era limitado. Corregir el error requería modificar el comportamiento de bajo nivel del sistema de memoria, una tarea arriesgada y compleja que podía desestabilizar todo el juego.Fue entonces cuando Ken Demarest, uno de los desarrolladores principales, tomó una decisión pragmática: usando un editor hexadecimal —una herramienta que permite modificar directamente el contenido binario de archivos ejecutables— editó directamente el contenido del mensaje. Aquí un editor hexadecimal mostrando el texto de uno de los mensajes de error de un archivo binario ('explorer.exe', para más señas) Y así, en lugar del mensaje técnico, el juego ahora mostraba una frase que disimulaba perfectamente el fallo: "Gracias por jugar al Wing Commander".La importancia del ingenioDe este modo, lo que parecía una despedida amigable para el jugador era, en realidad, una señal notablemente maquillada de que el juego había colapsado al cerrar. Este fallo ha permanecido intacto desde hace más de 35 años, convirtiéndose a estas alturas en una anécdota legendaria del desarrollo de videojuegos.Y en un ejemplo paradigmático del 'refrán' irónico "It’s not a bug, it’s a feature" ("No es un error, es una funcionalidad").Desde una perspectiva de ingeniería, esto es un ejemplo de una "solución de contención": una práctica en la que no se elimina el problema de raíz, sino que se oculta o mitiga su efecto para mantener la estabilidad general del sistema. Aunque hoy en día esto puede parecer una chapuza, en el contexto de la época (y dadas las herramientas y limitaciones disponibles), fue una solución audaz e ingeniosa.Este tipo de "soluciones creativas" son más comunes de lo que se piensa, especialmente en los primeros años del desarrollo de software comercial, cuando los recursos eran limitados y las fechas de entrega, inamovibles.Un legado que perduraEl espíritu de Wing Commander no terminó con su última línea de código. Su creador, Chris Roberts, siguió innovando en el género espacial y, años más tarde, presentó uno de los proyectos más ambiciosos en la historia del videojuego: Star Citizen.Este título se presenta como el heredero espiritual de Wing Commander, y ya ha recaudado más de 800 millones de dólares a través del crowdfunding, una cifra récord... teniendo en cuenta que lleva 13 años recaudando y aún no ha salido al mercado.Imagen | Marcos Merino mediante IAEn Genbeta | Que te dejen expulsar la GPU como si fuera un USB: un bug muy conocido en Windows y con el que se debe tener cuidado (function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })(); - La noticia El programador de este videojuego no pudo solucionar un bug hace 35 años. Así que se limitó a cambiar el texto del mensaje de error fue publicada originalmente en Genbeta por Marcos Merino .