- O TPS GunZ: The Duel, exclusivo de Windows em 2003, foi
→ portado para rodar no navegador com base em WebAssembly + WebGL
- Sem instalação: basta abrir a URL no Chrome e jogar na hora https://gunz.sigr.io/
- Funciona em quase qualquer ambiente, incluindo Linux, macOS e mobile
- O código C++ existente foi mantido quase sem alterações
- Cerca de 99% do código novo foi gerado por IA
Por que isso é significativo
- Jogos de PC tradicionais:
- exigem download/instalação
- dependem de Windows
- Neste resultado:
- o jogo exatamente igual roda no navegador
- não é uma “implementação parecida”, e sim uma portabilidade fiel do original
- No passado, isso era algo “teoricamente possível, mas inviável na prática”
Tentativas anteriores e fracasso
- Abordagem anterior:
- reimplementar a engine com JavaScript + Three.js
- Resultado:
- só conseguiu chegar à renderização do mapa
- a dificuldade de reimplementar a engine inteira era alta demais, então o projeto foi interrompido
- Conclusão:
- a “abordagem por reimplementação” é, na prática, quase impossível
Problema central: dependência de Windows
- GunZ é baseado em C++ + dependente de Direct3D
- Problema:
- Direct3D é uma API exclusiva de Windows
- não pode ser usada diretamente no navegador (WebGL)
- Compilar para wasm de forma simples não resolve
- Ou seja:
- apenas o código independente de plataforma pode ir para wasm
- a parte dependente da API gráfica é a maior barreira
Limites das abordagens existentes
- Modificar diretamente o código do jogo
- exigiria alterar dezenas de milhares de linhas
- manutenção inviável
- Conversão automática (D3D → WebGL)
- por causa das diferenças semânticas entre APIs, não é possível fazer uma conversão mecânica
- Conclusão:
- todas as abordagens existentes eram irreais
Ideia central: “camada de tradução”
- Abordagem:
- manter o código do jogo como está
- interceptar as chamadas de Direct3D
- convertê-las em WebGL em tempo real
- Implementação:
- um wrapper WebGL com a mesma interface da API D3D9
- inserido entre o jogo e a API gráfica
- Efeito:
- quase nenhuma modificação no código do jogo
- remoção da dependência de Windows
- custo de portabilidade limitado à “implementação do wrapper”
O papel da IA
- Ferramentas usadas:
- Google Antigravity
- Claude Code (plano Max)
- Resultado:
- automação da análise e modificação de grandes volumes de código
- problemas que levavam semanas foram resolvidos em poucas horas
- na prática, executou tarefas que humanos dificilmente conseguiriam fazer
- Em especial:
- a maior parte da implementação do wrapper D3D → WebGL ficou a cargo da IA
Resumo principal
- Não se trata de “refazer o jogo”
→ e sim de preservar o código existente como ele é
- Tecnologias-chave:
- WebAssembly
- camada de tradução Direct3D → WebGL
- Mudança principal:
- graças à IA, portar grandes legados se tornou algo viável na prática
- Implicação:
- no futuro, a dificuldade de levar jogos e softwares antigos para a web pode cair drasticamente
10 comentários
A IA também é impressionante, mas acho que o fato de o D3D9 estar bem separado como interface teve um peso ainda maior; se estivesse todo entrelaçado por referências diretas, provavelmente teria sido muito mais difícil.
Acho que vi uma matéria no Inven outro dia, e então foi isso: eles montaram uma camada de tradução para o Direct3D e processaram por ali.
Quando testei, em menos de um minuto já fiquei com a forte impressão de que a qualidade de imagem não era muito boa, mas pensando que não foi algo refeito do zero e sim mantido quase como estava, passando por uma camada de tradução, acho compreensível...
Ainda assim, parece que o blog original pretende ser operado de um jeito meio arriscado. Deveria deixar claro que é um texto traduzido ou indicar que é o original... dá muito a impressão de estar se passando pelo autor. Há até comentários apontando isso, mas não houve resposta.
(Já de cara, todos os textos de referência no blog original estão em japonês.)
Outra parte que não faz sentido é que, pelos padrões da Hanwha, não existe um plano Antigravity de 3.000 won por mês. As imagens etc. estão todas em japonês. E algumas inclusive contêm inglês.
Nesse caso, acho que teria sido melhor converter tudo para coreano desde o começo e publicar assim.
Você disse que pagou 5x, mas no print é 20x... embora talvez você more no Japão, então enfim...
Vendo isso, dá até a sensação de que é a própria pessoa.
A frase que aparece ao acessar sigr.io também é uma letra de música do aespa,
e o nome do projeto Gunz também é Whiplash Gunz, que é o título de uma música do aespa,
e como até o handle no velog é
aespa, de forma consistente dá a impressão de que a pessoa gosta mesmo de aespa, então também fico pensando se foi ela mesma que rodou a tradução e publicou no velog.Então não foi você mesmo que fez isso.
Mas o Guns já foi lançado na Steam... então fico pensando se isso não teria algum problema legal.
Nossa, realmente impressionante.
É um jogo de que eu gostava muito, então obrigado por trazê-lo de volta à vida.
Mas parece que não há ninguém acessando.
Acho que é porque até o servidor roda dentro do navegador. Se quiserem jogar em várias pessoas, parece que os jogadores precisam trocar informações entre si e se conectar uns aos outros via WebSocket.
Impressionante, parece um uso realmente adequado da IA.