Show HN: Quake portado para Rust seguro, jogável no navegador
Um clássico shooter de 1996, Quake, foi portado de C para Rust “seguro” e compilado para WebAssembly, tornando-o jogável suavemente em navegadores web modernos e até em celulares. Os comentadores destacam o feito técnico e a ferramenta inteligente de diff visual usada para alcançar uma paridade quase pixel-perfect com o original, ao mesmo tempo em que debatem se o port em Rust é realmente útil diante das opções já existentes de C para WASM. A discussão se amplia para uma visão mais geral de como grandes modelos de linguagem estão transformando a portabilidade de código, as ferramentas de jogos e até a engenharia reversa, gerando tanto entusiasmo com novos superpoderes criativos quanto preocupação com segurança, fraude e a erosão do ofício tradicional da programação.
Projeto e Detalhes Técnicos
- O engine do Quake 1 foi portado de C para Rust “seguro” (sem
unsafe), e então compilado para WebAssembly para rodar no navegador. - Roda suavemente até em celulares; vários comentários observam um desempenho e uma responsividade surpreendentemente bons.
- O código-fonte e um vídeo de demonstração estão linkados. Um harness de “oracle” de diff visual é usado para validar o port contra o original, supostamente alcançando saída pixel-perfect nos testes.
LLMs no Processo de Portabilidade
- Muitos assumem que o port foi produzido em grande parte ou inteiramente por um LLM, com um humano orquestrando, fazendo prompts e iterando ao longo de vários meses.
- Alguns enfatizam que a verdadeira conquista é o ecossistema: décadas de trabalho em navegadores, WASM, Rust e ferramentas permitindo a tradução por LLM na “última milha”.
- Outros mencionam usar fluxos de trabalho semelhantes, impulsionados por LLM, para ports de jogos, renderizadores e ferramentas, com reprodução automática de demos e pixel diffs.
Valor, “Slop” e Uso de Rust
- Comentários favoráveis veem isso como um projeto hobbyista divertido, uma demonstração impressionante das ferramentas atuais e uma boa implementação de referência em Rust do Quake.
- Críticos argumentam que é um projeto trivial e de baixo valor, um “slop”: tradução mecânica de C→Rust sem refatoração idiomática, algo que “qualquer um poderia fazer” com um LLM, e não significativamente mais seguro do que um build de C→WASM.
- Há tensão entre quem trata código assistido por LLM como trabalho legítimo e quem o vê como algo vazio ou que erode a curiosidade.
Desempenho, Navegador como Plataforma e WASM
- Alguns descartam navegadores como inadequados para jogos complexos; outros contrapõem que o WASM atinge cerca de 50–70% da velocidade nativa, mais do que suficiente para um título de 1996.
- Vários comentários enquadram isso como parte de uma tendência maior: cada vez mais, aplicativos desktop (incluindo jogos clássicos) podem ser cross-compilados para a web.
Rust, Segurança e Bugs de Jogo
- A discussão esclarece que Rust previne principalmente problemas de segurança de memória e algumas classes de bugs de overflow/valor inválido, mas não glitches de gameplay ou esquisitices de física.
- Há debate sobre “Rust seguro” ser superestimado: ainda é possível escrever lógica ruim ou suscetível a exploração sem
unsafe.
Preocupações Mais Amplas de Segurança e Engenharia Reversa
- Alguns extrapolam disso e de ports semelhantes impulsionados por LLM para temores sobre clonagem de sistemas proprietários ou críticos (bancos, logística, HMIs, controle industrial), reduzindo a barreira para fraude ou ataques a infraestrutura.
- Outros respondem que isso expõe בעיקר a fraqueza da segurança por obscuridade e pode aumentar a concorrência e a pressão por segurança robusta, baseada em chaves.