Show HN: Quake portado a Rust seguro, jugable en el navegador

Un shooter clásico de 1996, Quake, ha sido portado de C a Rust “seguro” y compilado a WebAssembly, lo que permite jugarlo con fluidez en navegadores web modernos e incluso en teléfonos. Los comentaristas destacan la hazaña técnica y las ingeniosas herramientas de diff visual usadas para lograr una paridad casi pixel-perfect con el original, aunque también debaten si el port en Rust aporta un valor sustancial frente a las opciones C-a-WASM ya existentes. El hilo se amplía hacia una mirada más general sobre cómo los modelos de lenguaje están transformando el portado de código, las herramientas de desarrollo de juegos e incluso la ingeniería inversa, generando tanto entusiasmo por nuevos superpoderes creativos como preocupación por la seguridad, el fraude y la erosión del oficio tradicional de programar.

Detalles del proyecto y técnicos

  • El motor de Quake 1 fue portado de C a Rust “seguro” (sin unsafe), y luego compilado a WebAssembly para ejecutarse en el navegador.
  • Funciona con fluidez incluso en teléfonos; varios comentarios señalan un rendimiento y una capacidad de respuesta sorprendentemente buenos.
  • Se enlazan el código fuente y un video de demostración. Se utiliza un arnés de validación con diff visual tipo “oracle” para comprobar el port frente al original, y se informa que en las pruebas se obtuvo una salida pixel-perfect.

LLMs en el proceso de portado

  • Muchos asumen que el port fue producido en gran parte o por completo por un LLM, con una persona coordinando, dando indicaciones e iterando durante varios meses.
  • Algunos enfatizan que el verdadero logro es el ecosistema: décadas de trabajo en navegadores, WASM, Rust y herramientas que permiten una traducción de LLM en la “última milla”.
  • Otros mencionan haber usado flujos de trabajo similares guiados por LLM para ports de juegos, renderizadores y herramientas, con reproducción automatizada de demos y diffs de píxeles.

Valor, “slop” y uso de Rust

  • Los comentarios favorables lo ven como un proyecto de hobby divertido, una demo impresionante de las herramientas actuales y una buena implementación de referencia de Quake en Rust.
  • Los críticos sostienen que es un proyecto trivial y de bajo valor: una traducción mecánica de C a Rust sin refactorización idiomática, algo que “cualquiera podría hacer” con un LLM, y no significativamente más seguro que un build de C a WASM.
  • Existe tensión entre quienes tratan el código asistido por LLM como trabajo legítimo y quienes lo ven como algo vacío o que erosiona la curiosidad.

Rendimiento, el navegador como plataforma y WASM

  • Algunos desestiman los navegadores como inadecuados para juegos complejos; otros responden que WASM alcanza aproximadamente entre el 50 y el 70% de la velocidad nativa, más que suficiente para un título de 1996.
  • Varios comentarios enmarcan esto como parte de una tendencia más amplia: cada vez más, las apps de escritorio (incluidos los juegos clásicos) pueden recompilarse para la web.

Rust, seguridad y errores en juegos

  • La discusión aclara que Rust principalmente evita problemas de seguridad de memoria y algunas clases de desbordamientos/valores inválidos, pero no fallos de jugabilidad ni rarezas de física.
  • Hay debate sobre si “Rust seguro” se vende demasiado: aún puedes escribir lógica deficiente o explotable sin unsafe.

Preocupaciones más amplias de seguridad e ingeniería inversa

  • Algunos extrapolan esto y otros ports impulsados por LLM a temores sobre clonar sistemas propietarios o críticos (banca, logística, HMIs, control industrial), rebajando la barrera para el fraude o los ataques a infraestructuras.
  • Otros responden que esto expone principalmente la debilidad de la seguridad por oscuridad y que puede aumentar la competencia y la presión hacia una seguridad sólida basada en claves.