Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

Otimizando o uso de memória

Compressão de texturas

O uso de compressão de texturas não apenas reduz o tamanho dos recursos dentro do arquivo do jogo, mas texturas comprimidas também podem reduzir a quantidade de memória de GPU necessária.

Carregamento dinâmico

A maioria dos jogos tem pelo menos algum conteúdo usado com pouca frequência. Do ponto de vista de uso de memória, não faz sentido manter esse conteúdo carregado na memória o tempo todo; é melhor carregá-lo e descarregá-lo quando necessário. Isso obviamente envolve uma troca entre ter algo prontamente acessível ao custo de memória em tempo de execução e carregar algo ao custo de tempo de carregamento.

O Defold tem várias formas diferentes de carregar conteúdo dinamicamente:

Otimizar contadores de componentes

O Defold aloca memória para componentes e recursos uma vez quando uma coleção é criada, para reduzir a fragmentação de memória. A quantidade de memória alocada depende da configuração de vários contadores de componentes em game.project. Use o perfilador para obter uso preciso de componentes e recursos e configurar seu jogo para usar valores máximos mais próximos da contagem real de componentes e recursos. Isso reduzirá a quantidade de memória usada pelo seu jogo (consulte as informações sobre otimizações de contagem máxima de componentes).

Otimizar a contagem de nodes de GUI

Otimize as contagens de nodes de GUI definindo o número máximo de nodes no arquivo GUI apenas para o necessário. O campo Current Nodes das propriedades do componente GUI mostrará o número de nodes usados pelo componente GUI.

Tamanho da heap (HTML5)

O tamanho da heap de um jogo Defold HTML5 pode ser configurado pelo campo heap_size em game.project. Certifique-se de otimizar o uso de memória do seu jogo e definir um tamanho mínimo de heap.

Para jogos pequenos, 32 MB é um tamanho de heap viável. Para jogos maiores, mire em 64-128 MB. Se, por exemplo, você estiver em 58 MB e não for viável otimizar mais, pode ficar com 64 MB sem pensar demais. Não há um tamanho-alvo rígido; isso depende do jogo. Apenas mire em tamanhos menores, de preferência em passos de potências de dois.

Para verificar o uso atual da heap, você pode iniciar seu jogo, jogar o nível ou seção mais pesado em recursos e monitorar o uso de memória:

if html5 then
    local mem = tonumber(html5.run("HEAP8.length") / 1024 / 1024)
    print(mem)
end

Você também pode abrir as ferramentas de desenvolvedor do seu navegador e escrever o seguinte no console:

HEAP8.length / 1024 / 1024

Se o uso de memória permanecer em 32 MB, ótimo! Caso contrário, siga os passos para otimizar o tamanho da própria engine e de assets grandes, como sons e texturas.