Juanma Aranda

HERRAMIENTAS

Port de Quake a Rust sin “unsafe” con ayuda de Claude, probado contra WinQuake y jugable en navegador

Un desarrollador ha usado Claude Code para portar el Quake de 1996 de C a Rust sin bloques unsafe y llevar el modo un jugador al navegador. El proyecto valida píxeles, interfaz, audio y estado de juego frente a WinQuake. Es código GPL, sin multijugador, y ofrece demo web; su metodología aporta ideas prácticas de flujo con agentes.

Audio con ElevenLabs

Qué ha ocurrido

Un solo desarrollador empleó Claude Code para portar el Quake de id Software (1996) de C a Rust y publicar el motor de un jugador en el navegador, sin bloques unsafe. El proyecto, Quake-SRP, ejecuta en paralelo una compilación sin interfaz del código original en C como referencia y compara píxeles 3D, elementos de interfaz, audio y estado de juego durante la reproducción de demos. El README indica coberturas de cientos de fotogramas en los nueve mapas y dos tamaños, registrando diferencias conocidas sin afirmar identidad total. Mantiene el renderizador por CPU de WinQuake y la paleta de 8 bits; en web usa WebAssembly en un Web Worker con memoria compartida para imagen y sonido. Incluye un preset por defecto con panorámico y refresco sin tope, y otro “Classic” que busca el comportamiento original. La demo en navegador permite jugar el episodio shareware con teclado/ratón, gamepad o táctil, soporta guardados, consola y pantalla completa; no incluye multijugador. Quien posea el juego registrado o expansiones puede cargar sus propios datos (no incluidos). Reporta pruebas en Chromium y Firefox en Linux, Chrome en macOS y en un teléfono Android; Safari, iPhone y iPad no se han probado. El repositorio está bajo GPL-2.0-or-later y parte del código abierto de WinQuake.

Qué significa para creadores

La aportación práctica es el flujo: dividir un port grande en ramas generadas por agentes, fijar restricciones claras y exigir que superen comprobaciones repetibles frente a una implementación de referencia antes de integrar cambios. Si trabajas con motores clásicos o herramientas legadas, este patrón permite medir fidelidad (píxel, interfaz, audio, estado) y publicar builds web con WebAssembly + Web Worker sin depender de GPU, manteniendo opciones modernas como panorámico o refresco destapado conmutables. Ten en cuenta los límites: acuerdo a nivel de píxel en vistas probadas no garantiza equivalencia total ni ausencia de defectos, y forbid(unsafe_code) solo prohíbe bloques unsafe, no certifica seguridad integral. Planifica QA adicional, valida navegadores (Safari/iOS no comprobados) y cuida licencias: el código está en GPL, mientras que los datos del juego tienen condiciones aparte.

Fuente y contexto

RuntimeWire informa que el autor publicó el lanzamiento como “ilreb” en Hacker News y describe a Claude como quien generó código y documentación, con una coordinación que solo fusionaba ramas cuando las comprobaciones pasaban. Anthropic se identifica como creador del modelo, sin constar patrocinio. El trabajo es un port deliberado del WinQuake original, lo que facilita pruebas pero acota el alcance de lo demostrado: tener una referencia y datos públicos no equivale a sustituir software propietario sin esos apoyos. Enlaces: artículo, repo, demo y código de id Software.