# Faça com que o carregamento do jogo seja claro e confiável

> Planeje uma sequência de carregamento de ativos que relate o progresso real, lide com falhas e evite a decodificação de uma imagem grande durante um quadro crítico.

- URL: https://oneshotgems.ai/pt-BR/topics/game-asset-loading
- Categoria: Para desenvolvedores de jogos
- Tipo: Guia
- Atualizado: 5 de outubro de 2026

Uma tela de carregamento só é útil quando reflete o trabalho que deve ser concluído antes do jogo. Iniciar cada solicitação de imagem, som e nível de uma vez pode consumir largura de banda e memória, enquanto uma porcentagem decorativa que se move independentemente do trabalho concluído engana os jogadores. Primeiro liste os recursos mínimos necessários para a interação de abertura, separe o conteúdo posterior opcional e decida como cada falha deve ser apresentada. Isso transforma o carregamento em uma transição definida, em vez de um botão giratório indefinido.

## Carregue a primeira parte jogável

Agrupe os ativos no momento em que forem necessários: título e primeira cena, próximo nível e, em seguida, efeitos opcionais ou cosméticos. Carregue e valide o primeiro grupo antes de ativar a ação inicial. Para imagens usadas em uma transição repentina de cena, HTMLImageElement.decode() pode ser resolvido após a decodificação de uma imagem, permitindo que a troca aconteça sem fazer com que o próximo desenho espere pela decodificação.

Teste em uma conexão limitada: atrase uma imagem obrigatória e faça outra falhar. O indicador de progresso só deve avançar quando cada tarefa identificada for concluída. O recurso que falhar deve gerar uma mensagem recuperável ou usar uma alternativa, e o botão de início não deve prometer uma cena jogável se faltar uma dependência obrigatória.

## Mantenha o progresso honesto

Quando o conjunto de tarefas for conhecido, mostre as tarefas concluídas do total ou relate uma fase como a preparação do primeiro nível. As porcentagens baseadas em bytes só são significativas quando os tamanhos relevantes são conhecidos; a decodificação, a configuração de áudio e a inicialização do procedimento podem levar algum tempo após a conclusão da transferência.

Não bloqueie toda a interface para ativos que possam chegar posteriormente. Use um espaço reservado de baixo custo para arte opcional e substitua-o quando a imagem decodificada estiver pronta. Verifique se o espaço reservado permanece legível no tamanho de tela pretendido e se uma falha no download opcional não prende o player no estado de carregamento.

## Perguntas

**Pré-carregar todos os ativos é uma boa ideia?** Geralmente não por padrão. Carregue o que for necessário para o primeiro momento jogável e depois agende outro trabalho com base em quando será usado e na quantidade de memória necessária.

**Um evento de carregamento de imagem significa que ela está pronta para um desenho suave?** Os dados podem estar disponíveis enquanto a decodificação ainda afeta a apresentação. A MDN documenta que decode() retorna uma promessa que é resolvida quando a imagem é decodificada e pode ser adicionada com segurança. Meça se essa diferença importa na sua cena.

## Siga sua curiosidade

- [Projete feedback útil sobre carregamento de jogos](https://oneshotgems.ai/pt-BR/topics/game-loading-feedback): Substitua estados de espera vagos por fases claras, progresso significativo, opções de repetição e uma transição verdadeira para um estado de jogo jogável.
- [Encontre gargalos de renderização no Canvas](https://oneshotgems.ai/pt-BR/topics/canvas-game-performance): Perfille um jogo 2D em Canvas com cenas repetíveis e reduza operações de desenho custosas somente depois de medir onde o tempo está sendo gasto.
- [Renderize Atlas Sprite de forma confiável no canvas](https://oneshotgems.ai/pt-BR/topics/sprite-atlas-rendering): Mantenha os quadros do atlas sprite alinhados definindo retângulos de origem, regras de corte, pivôs e verificações de carregamento em um mapa de renderização.
- [Jogos na nuvem vs. jogos de navegador](https://oneshotgems.ai/pt-BR/topics/cloud-gaming-vs-browser-games): Entenda o que o jogo na nuvem transmite, como ele difere de um jogo de navegador e o que verificar sobre rede, dispositivos e acesso aos jogos.

## Leitura complementar

- [MDN: HTMLImageElement.decode()](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode)

---
Página canônica: https://oneshotgems.ai/pt-BR/topics/game-asset-loading
