Show HN: Quake ported to safe Rust, playable in browser
A classic 1996 shooter, Quake, has been ported from C to “safe” Rust and compiled to WebAssembly, making it playable smoothly in modern web browsers and even phones. Commenters highlight the technical feat and clever visual diff tooling used to achieve near pixel-perfect parity with the original, while also debating whether the Rust port is substantively useful given existing C-to-WASM options. The thread broadens into a wider look at how large language models are transforming code porting, game tooling, and even reverse engineering, raising both excitement about new creative superpowers and concern over security, fraud, and the erosion of traditional programming craft.
Project & Technical Details
- Quake 1 engine was ported from C to “safe” Rust (no
unsafe), then compiled to WebAssembly to run in the browser. - Runs smoothly even on phones; multiple comments note surprisingly good performance and responsiveness.
- Source code and a video walkthrough are linked. A visual diff “oracle” harness is used to validate the port against the original, reportedly achieving pixel‑perfect output in tests.
LLMs in the Porting Process
- Many assume the port was largely or entirely produced by an LLM, with a human orchestrating, prompting, and iterating over several months.
- Some emphasize that the real achievement is the ecosystem: decades of work on browsers, WASM, Rust, and tooling enabling “last‑mile” LLM translation.
- Others mention using similar LLM‑driven workflows for game ports, renderers, and tooling, with automated demo playback and pixel diffs.
Value, “Slop,” and Use of Rust
- Supportive comments see it as a fun hobby project, an impressive demo of current tools, and a nice Rust reference implementation of Quake.
- Critics argue it’s a trivial, low‑value “slop” project: mechanical C→Rust translation without idiomatic refactoring, something “anyone could do” with an LLM, and not meaningfully safer than a C→WASM build.
- There is tension between those who treat LLM‑assisted code as legitimate work vs those who see it as hollow or curiosity‑eroding.
Performance, Browser as Platform, and WASM
- Some dismiss browsers as unsuitable for complex games; others counter that WASM achieves ~50–70% of native speed, more than enough for a 1996 title.
- Several comments frame this as part of a broader trend: increasingly, desktop apps (including classic games) can be cross‑compiled to the web.
Rust, Safety, and Game Bugs
- Discussion clarifies that Rust mainly prevents memory‑safety issues and some classes of overflow/invalid‑value bugs, but not gameplay glitches or physics oddities.
- Debate over “safe Rust” being oversold: you can still write poor or exploit‑prone logic without
unsafe.
Broader Security & Reverse‑Engineering Concerns
- Some extrapolate from this and similar LLM‑driven ports to fears about cloning proprietary or critical systems (banking, logistics, HMIs, industrial control), lowering the bar for fraud or infrastructure attacks.
- Others respond that this mainly exposes the weakness of security‑through‑obscurity and may increase competition and pressure for robust, key‑based security.