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

Optimiser l’utilisation de la mémoire

Compression des textures

L’utilisation de la compression des textures réduit la taille des ressources dans l’archive de votre jeu, et les textures compressées peuvent également réduire la quantité de mémoire GPU nécessaire.

Chargement dynamique

Dans la plupart des jeux, une partie au moins du contenu est utilisée peu fréquemment. Du point de vue de l’utilisation de la mémoire, il est peu judicieux de conserver ce contenu chargé en mémoire en permanence ; il vaut mieux le charger et le décharger selon les besoins. Il s’agit évidemment d’un compromis entre garder un contenu immédiatement accessible, au prix d’une consommation de mémoire à l’exécution, et le charger au prix d’un temps de chargement.

Defold propose plusieurs façons de charger du contenu dynamiquement :

Optimiser les compteurs de composants

Defold alloue la mémoire des composants (components) et des ressources une seule fois, lors de la création d’une collection, afin de réduire la fragmentation de la mémoire. La quantité de mémoire allouée dépend de la configuration des différents compteurs de composants dans game.project. Utilisez le profileur pour mesurer précisément l’utilisation des composants et des ressources et configurez votre jeu avec des valeurs maximales plus proches du nombre réel de composants et de ressources. Cela réduira la quantité de mémoire utilisée par votre jeu (consultez les informations sur les optimisations du nombre maximal de composants).

Optimiser le nombre de nœuds de l’interface graphique

Optimisez le nombre de nœuds de l’interface graphique en limitant le nombre maximal de nœuds dans le fichier GUI au strict nécessaire. Le champ Current Nodes des propriétés du composant GUI indique le nombre de nœuds utilisés par le composant GUI.

Taille du tas (HTML5)

La taille du tas d’un jeu HTML5 Defold peut être configurée à partir du champ heap_size dans game.project. Veillez à optimiser l’utilisation de la mémoire de votre jeu et à définir une taille minimale du tas.

Pour les petits jeux, il est possible d’atteindre une taille de tas de 32 Mo. Pour les jeux plus volumineux, visez 64–128 Mo. Si, par exemple, vous êtes à 58 Mo et qu’une optimisation supplémentaire n’est pas réalisable, vous pouvez vous en tenir à 64 Mo sans trop vous poser de questions. Il n’y a pas de taille cible stricte : elle dépend du jeu. Visez simplement des tailles plus petites, idéalement par paliers correspondant à des puissances de deux.

Pour vérifier l’utilisation actuelle du tas, vous pouvez lancer votre jeu et surveiller l’utilisation de la mémoire pendant que vous jouez dans le niveau ou la section qui consomme le plus de ressources :

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

Vous pouvez aussi ouvrir les outils de développement de votre navigateur et saisir ce qui suit dans la console :

HEAP8.length / 1024 / 1024

Si l’utilisation de la mémoire reste à 32 Mo, c’est parfait ! Sinon, suivez les étapes pour optimiser la taille du moteur lui-même et des ressources volumineuses telles que les sons et les textures.