Doom3 no navegador com WebAssembly
https://open.spotify.com/episode/0EmYMytpZjNLihlcBhcpkI
Um tanto incomodado com o hype – talvez exagerado – em torno do WebAssembly, o engenheiro sênior da Continuation Labs Gabriel Cuvillier resolveu levar o game Doom3 para rodar no navegador. Ele se dedicou exclusivamente a isso por sete semanas e deu certo.
Doom3 foi a escolha natural por rodar um sistema C++, ser um game de muito sucesso e com código aberto e de qualidade. “Quando lançado, em 2004, era uma tecnologia de ponta em termos de mecanismo de jogo e gráficos, conhecido por colocar muitos sistemas desktop de joelhos”, analisou em entrevista ao site InfoQ.
Mas o fator principal foi outro. O motor id Tech 4 é, um dos mais avançados sistemas de jogo que podem rodar em uma única tarefa de execução. Atualmente a maioria dos códigos é projetada para múltiplos sistemas centrais de processamento, mas o Doom3 é um dos últimos jogos “high-end” projetados para rodar assim. “Como o multithreading ainda não está pronto na web, esse recurso single-threaded tem sido um requisito obrigatório desde o início de meus projetos”, explicou.
Curiosamente, o único caso parecido de que se lembra é outro projeto dele mesmo. Gabriel Cuvillier há havia levado Arx Fatalis para o navegador com WebAssembly. Um jogo de 2002 com gráficos piores do que Doom3. Este deve ser, portanto, o primeiro caso de um game AAA preparado para rodar no navegador.
A experiência foi tão positiva que ele garante que outras aplicações de uso intensivo de CPU podem começar a ser levadas para o browser com WebAssembly. “Não há absolutamente nenhum motivo para não começar a usá-lo usando o WebAssembly. Pode ser Video Games, softwares de CAD ou Big Data, por exemplo”, sustenta.
A gente já fez o teste e achou DEMAIS!!!