Decompilación de un FPS con agentes de IA: lecciones de infraestructura

Fuentes: Decompiling a FPS with AI Agents: Infrastructure Lessons

Un equipo de desarrolladores documenta el proceso de decompilación de un videojuego de primera persona a C++ utilizando agentes de inteligencia artificial autónomos. El proyecto, realizado durante tres meses, no buscaba un prototipo funcional inmediato, sino una recreación precisa, estable y completa del juego original, priorizando la corrección semántica sobre la modernización o la portabilidad inicial.

La infraestructura técnica se basó en la orquestación de múltiples modelos de IA, incluyendo Claude Max, Codex Pro, Sonnet 5, Opus 5.5, Luna, Sol y Terra. Los agentes operaban mediante CLI y se comunicaban a través de Discord para coordinar tareas y recibir notificaciones de errores de integración continua. El seguimiento del progreso se gestionaba mediante GitHub Issues, donde cada unidad de código (.cpp) tenía su propio ticket.

El proceso de decompilación se realizó principalmente con la herramienta ida-mcp de Hex-Rays. Tras un mes de trabajo, los agentes lograron decompilar el 80% del juego, permitiendo el lanzamiento y la carga de mapas. Sin embargo, el análisis posterior reveló que, aunque el código era legible, contenía errores semánticos significativos, como firmas de función incorrectas o estructuras de datos inválidas. Además, se observó una pérdida de enfoque en los agentes con el tiempo, lo que llevó a la creación de un documento de instrucciones que se inyectaba automáticamente en el contexto de los agentes para mantener la coherencia.

Para resolver la falta de criterios de aceptación objetivos, el equipo implementó un sistema de verificación por coincidencia de bytes. Utilizando el compilador original y un script que comparaba el OBJ reconstruido con el EXE/PDB del juego, se determinaba si cada función era idéntica a la original. Este método permitió a los agentes detectar y corregir discrepancias exactas, asegurando la fidelidad semántica del código generado.