Optimierungen

Einführung

Godot folgt einer ausgewogenen Leistungsphilosophie. Bei der Leistungsoptimierung kommt es immer wieder zu Kompromissen in der Frage der richtigen Balance zwischen Geschwindigkeit und der Benutzerfreundlichkeit und Flexibilität. Einige konkrete Beispiele hierfür sind:

  • Das effiziente Rendern einer Vielzahl von Objekten ist einfach. Muss jedoch eine besonders aufwändige Szene gerendert werden, kann es ineffizient werden. Um dies zu lösen, muss vor dem Rendering eine Berechnung der sichtbaren und damit aktuell relevanten Objekte stattfinden, wodurch das Rendern ineffizienter wird, gleichzeitig jedoch weniger Objekte gezeichnet werden, sodass sich die Effizienz insgesamt verbessert.

  • Auch das Setzen der Eigenschaften jedes Materials für jedes Objekt, das gezeichnet werden muss, ist langsam. Um dies zu lösen, werden Objekte nach dem Material sortiert, um Performanceeinbußen zu senken, wenngleich auch das Sortieren selbst seine Kosten hat.

  • Und auch in 3D-Physik-Berechnungen besteht eine ähnliche Situation. Die besten Algorithmen für die Verarbeitung großer Mengen von Physikobjekten (z.B. SAP) sind beim Einfügen/Entfernen von Objekten und Raycasting vergleichsweise langsam. Im Gegensatz dazu, können Algorithmen, die ein schnelleres Einfügen und Entfernen sowie Raycasting ermöglichen, nicht so viele aktive Objekte verarbeiten.

Und es gibt noch viele weitere Beispiele! Die meisten Spiele-Engines bieten ein breites Anwendungsspektrum an, dabei werden ausgewogene Algorithmen den Algorithmen vorgezogen, die in manchen Situationen schnell und in anderen langsam sind, oder Algorithmen, die zwar schnell, jedoch komplizierter zu verwenden sind.

Godot bildet dabei keine Ausnahme. Während es so konzipiert ist, dass die Backends für verschiedene Algorithmen austauschbar sind, haben bei den Standard-Backends Ausgewogenheit und Flexibilität Vorrang vor Leistung.

Vor diesem Hintergrund soll in dieser Anleitung erklärt werden, wie Sie die maximale Leistung von Godot erzielen können. Während die Anleitungen in beliebiger Reihenfolge gelesen werden können, ist es eine gute Idee, bei folgendem zu beginnen Generelle Optimierungs-Tipps.

Allgemein

CPU

GPU

2D

3D

Multi-Threading