webzen é um Go Game Engine voltado para WebAssembly, permitindo que você crie aplicativos da web com Go. Ajuda você a criar seus jogos de maneira fácil e rápida. Este projeto aproveita syscall/js
para interagir com o tempo de execução JavaScript no navegador.
Observe que webzen está atualmente sob muita manutenção e não está pronto para produção. O projeto está sendo desenvolvido e aprimorado ativamente, por isso só existe um branch
dev
disponível. Atualmente está em status Beta
webzen não precisa de nada, exceto a versão Go superior a 1.18. Não há compilador C nem nada necessário, mas recomendamos o wasmserve para executar seu código rapidamente.
webzen é um pacote go comum, então você pode obtê-lo usando este comando:
go get github.com/dimkauzh/ webzen @latest
O pacote também está disponível em pkg.go.dev.
Para executar o exemplo fornecido neste repositório, siga estas etapas:
git clone github.com/dimkauzh/ webzen .git
cd webzen
Primeiro, certifique-se de ter o Go instalado e, em segundo lugar, execute make install para instalar tudo o que é necessário:
make setup
make example
Abra seu navegador e acesse http://localhost:8080 para ver o exemplo em ação.
Para construir um aplicativo WebAssembly pronto para produção com webzen , siga estas etapas:
Compile seu código Go para WebAssembly usando os sinalizadores GOOS=js e GOARCH=wasm. Substitua build_path/file_name.wasm e file_path/file_name.go pelo caminho do arquivo de saída e arquivo de origem desejados, respectivamente:
GOOS=js GOARCH=wasm go build -o build_path/file_name.wasm file_path/file_name.go
Você pode então incluir o arquivo .wasm gerado em seu aplicativo da web e carregá-lo usando JavaScript.
Sinta-se à vontade para explorar o exemplo fornecido neste repositório para entender melhor como webzen funciona e como você pode criar seus próprios aplicativos da web com tecnologia Go.
A documentação do webzen está disponível em https://github.com/dimkauzh/webzen/wiki
Este projeto está licenciado sob a licença GPLv3 - consulte o arquivo LICENSE para obter detalhes.