# Portar um jogo para a web

> Um build de navegador não tem sistema de arquivos, tem um teto rígido de memória, e um download que a pessoa vê acontecer. Esses três fatos moldam todo o port.

- URL: https://www.summerengine.com/pt/port-a-game-to-web
- Keyword: portar um jogo para a web
- Related: https://www.summerengine.com/pt/porting

Portar um jogo para a web significa construir uma versão de navegador de um jogo que é seu, rodando por WebAssembly e pelas APIs gráficas do navegador. Um fato é específico da Summer Engine. O Summer exporta um build web para um projeto GDScript, e você o publica no Summer Games, onde as pessoas jogam no navegador. Esta página explica o que um build de navegador exige.

A web é a única plataforma em que a pessoa assiste ao seu download acontecer. Cada megabyte é uma chance de ela sair. A memória é limitada mais baixo que no desktop, especialmente em navegadores de celular. Não há sistema de arquivos, então os saves vivem no armazenamento do navegador, que a pessoa pode apagar. O áudio não pode começar até que ela interaja com a página.

Em troca você recebe jogo instantâneo, um link que pode publicar em qualquer lugar e nenhuma aprovação de loja. Isso faz de um build web um formato forte de demo ao lado de um lançamento desktop, quando o seu motor oferece suporte a ele.

## Tamanho e tempo de carregamento decidem o resultado

Defina um orçamento de download antes de começar, e depois projete para ele. Comprima texturas, reduza a escala de tudo que não é visto em resolução total, converta áudio para OGG em taxas de bits sensatas, e corte conteúdo não usado da exportação. Carregue rápido uma primeira cena jogável e faça streaming ou carregamento tardio do resto. Mostre progresso de verdade em vez de um símbolo girando. Um build de web que leva trinta segundos para começar perde a maior parte de quem clicou.

## Restrições de navegador que exigem código

Contextos de áudio ficam suspensos até um gesto da pessoa, então acrescente uma tela de clique para começar. O armazenamento é local do navegador e apagável, então trate saves como melhor esforço e ofereça uma opção de exportar ou na nuvem se o progresso importa. Abas vão para segundo plano e são desaceleradas, então pause na mudança de visibilidade. Use tempo delta, já que a taxa de quadros varia mais que no nativo. Tela cheia e travamento de ponteiro exigem os dois um gesto da pessoa. Navegadores de celular têm memória mais apertada e nenhum teclado.

## Input em uma página

Suporte teclado e mouse, gamepads pela API de gamepad do navegador, e toque para mobile. Impeça a página de rolar quando a pessoa usa as setas ou desliza no canvas. Trate a perda de foco quando ela clica fora do jogo. Faça o canvas responder a tamanhos diferentes de janela em vez de presumir uma resolução fixa, e teste tanto em uma janela pequena de notebook quanto em uma tela de desktop inteira.

## Onde hospedar

Um build web do Summer é um .zip estático padrão com index.html na raiz, e o Summer Games é o lugar para publicá-lo. A itch.io hospeda builds de HTML5 e cuida da incorporação, dentro dos limites de 500 MB no total, 200 MB por arquivo e 1.000 arquivos. O Newgrounds e portais de jogos web ainda aceitam títulos de navegador e podem pagar por tráfego ou divisão de receita. Hospedar por conta própria funciona com qualquer host estático. Um build single-threaded do Godot 4.3 ou posterior não precisa de headers especiais, enquanto um build com threads precisa de headers de isolamento de origem. Uma demo de navegador também alimenta uma página na Steam, e muitos desenvolvedores lançam uma demo web gratuita ao lado de um lançamento pago de desktop.

## FAQ

### Posso usar C# em um build de navegador?

Não com C#. O Godot 4 não consegue exportar projetos em C# para a web, e isso vale no Summer. Um projeto em GDScript exporta um build web no Summer, e você o publica no Summer Games. C# está disponível no editor desktop do Summer para builds desktop.

### Por que meu build de web demora tanto para carregar?

Quase sempre é tamanho de download e assets não comprimidos. Reduza texturas e áudio primeiro, remova conteúdo não usado, e depois divida o carregamento para que uma cena jogável apareça antes do resto chegar.

### Builds de web funcionam em celulares?

Sim, com trabalho de design. Navegadores de celular têm menos memória, nenhum teclado, e input só por toque, então planeje um orçamento menor de assets e controles de toque em vez de entregar o layout de desktop.

### As pessoas conseguem salvar progresso em um jogo de navegador?

Sim, pelo armazenamento do navegador, mas ele pode ser apagado pela pessoa ou pelo navegador. Para jogos longos, acrescente um código de exportação, um download de arquivo, ou um save vinculado a uma conta.

### O mesmo projeto pode sair também na Steam?

Sim. O Summer exporta builds desktop para Windows e macOS para a Steam, e um projeto GDScript também exporta um build web, então uma demo gratuita de navegador no Summer Games pode ficar ao lado do lançamento na Steam.

[Começar a reconstrução](https://www.summerengine.com/pt/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api