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

Den Speicherverbrauch optimieren

Texturkomprimierung

Texturkomprimierung verringert nicht nur die Größe der Ressourcen im Archiv deines Spiels. Komprimierte Texturen können auch den benötigten GPU-Speicher reduzieren.

Dynamisches Laden

Die meisten Spiele haben zumindest einige Inhalte, die nur selten verwendet werden. Aus Sicht des Speicherverbrauchs ist es nicht sinnvoll, solche Inhalte ständig im Speicher zu halten. Stattdessen solltest du sie bei Bedarf laden und wieder entladen, wenn sie nicht mehr benötigt werden. Dabei musst du natürlich abwägen: Du kannst Inhalte sofort verfügbar halten, was zur Laufzeit Speicher kostet, oder sie bei Bedarf laden, was Ladezeit kostet.

Defold bietet mehrere Möglichkeiten, Inhalte dynamisch zu laden:

Komponentenzähler optimieren

Defold reserviert den Speicher für Komponenten (components) und Ressourcen einmalig beim Erstellen einer Sammlung (collection), um die Speicherfragmentierung zu verringern. Die reservierte Speichermenge hängt von der Konfiguration verschiedener Komponentenzähler in game.project ab. Verwende den Profiler, um die genaue Nutzung von Komponenten und Ressourcen zu ermitteln, und konfiguriere dein Spiel mit Maximalwerten, die näher an der tatsächlichen Anzahl der Komponenten und Ressourcen liegen. Dadurch verringert sich der Speicherverbrauch deines Spiels (siehe die Informationen zur Optimierung der maximalen Komponentenanzahl).

Anzahl der GUI-Knoten optimieren

Optimiere die Anzahl der GUI-Knoten (GUI nodes), indem du die maximale Knotenanzahl in der GUI-Datei auf die tatsächlich benötigte Anzahl setzt. Das Feld Current Nodes in den Eigenschaften der GUI-Komponente zeigt die Anzahl der von der GUI-Komponente verwendeten Knoten an.

Heap-Größe (HTML5)

Die Heap-Größe eines HTML5-Spiels von Defold lässt sich über das Feld heap_size in game.project konfigurieren. Achte darauf, den Speicherverbrauch deines Spiels zu optimieren und eine möglichst kleine Heap-Größe festzulegen.

Für kleine Spiele ist eine Heap-Größe von 32 MB erreichbar. Für größere Spiele solltest du 64–128 MB anstreben. Wenn du beispielsweise bei 58 MB liegst und weitere Optimierungen nicht machbar sind, kannst du dich ohne langes Grübeln für 64 MB entscheiden. Es gibt keine feste Zielgröße — sie hängt vom Spiel ab. Strebe möglichst kleine Größen an, idealerweise in Stufen, die Zweierpotenzen entsprechen.

Um den aktuellen Heap-Verbrauch zu prüfen, kannst du dein Spiel starten, im „ressourcenintensivsten“ Level oder Abschnitt spielen und dabei den Speicherverbrauch beobachten:

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

Du kannst auch die Entwicklerwerkzeuge deines Browsers öffnen und Folgendes in die Konsole eingeben:

HEAP8.length / 1024 / 1024

Wenn der Speicherverbrauch bei 32 MB bleibt, ist das großartig! Andernfalls befolge die Schritte, um die Größe der Engine selbst und großer Assets wie Audiodateien und Texturen zu optimieren.