BookinglyTech News
Software

Portado el juego Babylonian Twins de 1993 a Godot con ayuda de un LLM

Un desarrollador recreó su juego de Amiga de 1993 en Godot 4, usando un modelo de lenguaje para reconstruir los 72.758 lineas de ensamblador 68000 y compilarlo en un flujo continuo.

3 min de lecturaHacker News (top)0 vistas

En 1993, durante la guerra de Irak, un estudiante de ingeniería creó el juego Babylonian Twins para una Amiga 500 con 512 KB de RAM, programando todo en ensamblador 68000 y controlando el hardware directamente. La obra pasó desapercibida por sanciones y falta de recursos, y solo se recuperó en 2008 cuando un foro de Amiga encontró los discos.

El autor, tras una primera reimplementación en 2010 con 34 000 líneas de C++ para iPhone, decidió intentar una nueva portabilidad. Su objetivo era reproducir el juego original en Godot 4, preservando la experiencia de 50 Hz y la lógica de nivel de 1993. Para ello empleó un modelo de lenguaje (Claude) que, sin comentarios ni documentación, interpretó los binarios de ensamblador y generó los archivos de nivel, scripts y recursos necesarios.

El proceso se dividió en tres pasos:

  1. Control – trasladar el motor de 2010 a Godot 4. La migración de 34 000 líneas de C++ se completó en una noche y resultó en un juego funcional en macOS, iOS y Android.
  2. Desafío – reconstruir el código original de 72 758 líneas de 68000 dentro de Godot, manteniendo la frecuencia de 50 Hz. El LLM generó los archivos de nivel en un solo intento, sin necesidad de pistas adicionales.
  3. Integración – incrustar el juego de 1993 dentro del portado moderno, de modo que la descarga del juego actual incluya una segunda instancia que reproduce la versión original.

El modelo de lenguaje se ejecutó en Claude Code, con acceso a un terminal y al sistema de archivos. Pudo compilar los scripts, ensamblar los binarios con vasm, lanzar la emulación con FS‑UAE y comparar el resultado con el original mediante diff. Además, el proceso añadió banderas de línea de comandos que permitían cargar niveles específicos, colocar a los personajes en posiciones precisas, simular pulsaciones de botón y generar capturas de pantalla.

Para validar la fidelidad, se creó un script que evaluaba la física del salto, la posición de los personajes y la lógica de colisión, generando datos numéricos que el autor podía comparar con la experiencia de juego. El LLM también ejecutó pruebas de compilación y construcción de niveles antes de lanzar cualquier versión al usuario.

El resultado es un proyecto de Godot 4 que incluye dos versiones del juego: la original de 1993 y la reimplementación moderna. La migración de 2010 demostró la viabilidad de portar código antiguo a motores actuales, mientras que la reconstrucción con IA muestra cómo los modelos de lenguaje pueden interpretar ensamblador sin documentación.

Esta historia resalta dos puntos críticos para los profesionales de TI:

  • Compatibilidad de código legado: la migración de ensamblador a Godot demuestra que, con las herramientas adecuadas, incluso el hardware más antiguo puede ser abstraído sin perder rendimiento ni fidelidad.
  • Automatización de pruebas: el uso de un LLM para generar y validar datos de juego permite reducir el tiempo de desarrollo y minimizar errores humanos en proyectos complejos.

Para los administradores y arquitectos, el caso es un recordatorio de que la preservación de software histórico puede integrarse en flujos de trabajo modernos, y que la IA puede servir como asistente de ingeniería en tareas de reconstrucción y portabilidad.