Cave Engine 1.4.1 ist jetzt verfügbar. Dieses Update konzentriert sich auf Leistung, Verbesserungen im Arbeitsablauf und neue APIs, die Ihre Entwicklung schneller und skalierbarer machen. Wenn Sie 3D-Desktop-Spiele mit Python entwickeln, verbessert diese Version direkt die Laufzeiteffizienz, die Benutzerfreundlichkeit des Editors und die allgemeine Stabilität. Falls Sie es noch nicht wissen: Cave Engine ist eine leistungsstarke 3D-Spiel-Engine für die Desktop-Entwicklung, die einen C++-Kern mit Python-Skripting für schnelle Iterationen kombiniert. Sie richtet sich an Entwickler, die volle Kontrolle über Rendering, Systeme und Leistung wünschen, ohne dabei Produktivität zu opfern.
Mit wachsender Verbreitung und einer sich schnell erweiternden Nutzerbasis werden Updates schneller veröffentlicht, und 1.4.1 spiegelt diesen Schwung wider. Die letzte Version ist nicht einmal 2 Wochen her. :)
Dies ist ein Minor-Release, liefert jedoch bedeutende Verbesserungen im Rendering, in den Tools und der API-Konsistenz. Es spiegelt zudem direktes Feedback von Hunderten neuer Nutzer wider, die in den letzten Wochen zur Community hinzugekommen sind. Lassen Sie uns direkt zu den Änderungen kommen.

DDS Texture Support
Cave unterstützt jetzt das Importieren von .dds-Texturen, einschließlich der meisten wichtigen Formate und komprimierten Varianten. Das gibt Ihnen mehr Flexibilität beim Arbeiten mit optimierten Textur-Pipelines und externen Tools, die bereits DDS-Formate exportieren.
Transform Matrices Are Cached
Transformationsmatrizen werden nun standardmäßig in der gesamten Engine zwischengespeichert, einschließlich TransformComponent, TerrainComponent und Armature-Knochen. Dies verbessert sowohl das Rendering als auch die Physikberechnungen.
In internen Stresstests mit über 10.000 einzigartigen Entities erzielte diese Änderung allein einen durchschnittlichen Gewinn von ca. 10 FPS. Die Engine kann nun besser vorhersagen, wann Transformationswerte neu berechnet werden müssen, und reduziert so unnötige Arbeiten pro Frame.
Python API Changes (Required Update)
Aufgrund dieser Optimierung geben die Transformations-Getter keine Referenzen mehr zurück.
Folgendes funktioniert nicht mehr:
transf.getPosition() = cave.Vector3(1,0,0)
Sie müssen die Werte jetzt explizit setzen:
transf.setPosition(cave.Vector3(1,0,0))
Die Methode getPositionCopy() wurde entfernt, da getPosition() bereits eine Kopie zurückgibt.
Dieser Kompromiss war notwendig, um Konsistenz im Cache zu garantieren und die Leistungsverbesserungen freizuschalten. Bitte beachten Sie, dass beim Portieren eines bestehenden Projekts von älteren Cave-Versionen Ihr Code dadurch brechen kann, und Sie die oben genannten Anpassungen vornehmen müssen.
New Profiler UI
Die Benutzeroberfläche des Profilers wurde neu gestaltet, um Klarheit und Benutzerfreundlichkeit zu verbessern. Sie können jetzt Performance-Flaschenhälse schneller und mit genaueren Daten identifizieren. Prüfen Sie den Profiler-Reiter rechts:

Intern erhielt das Profiler-System ebenfalls Verbesserungen. Sie können genauere Messungen und bessere Einblicke in die Faktoren erwarten, die Ihre Frame-Zeit beeinflussen.
Faster Render Graph Evaluation
Die Auswertung des Render-Graphs wurde mit zusätzlichem Caching und Verbesserungen im Threading optimiert. Große Szenen verbrauchten zuvor deutlich mehr CPU als gewünscht. Mit diesem Update ist die Auswertung deutlich schneller und effizienter. Diese Verbesserung ist direkt mit dem Transform-Caching-System verknüpft.
Critical Analytics Data Collection
Cave sammelt jetzt grundlegende Nutzungsanalysen, um Stabilität zu verbessern und Fehlerbehebungen zu beschleunigen.
Diese Entscheidung wurde in der Community diskutiert und abgestimmt, wobei die meisten Nutzer (92,8% dafür) diesem Ansatz zustimmten. Die gesammelten Daten sind rein technisch und enthalten nicht Ihre Projekte, Assets, Codes oder persönliche Inhalte.
Gesammelt werden:
- Muster der Engine-Nutzung (ob sie korrekt geöffnet und geschlossen wurde, ob das Spiel gestartet und ohne Probleme beendet wurde)
- Absturzberichte
- Exportstatus
Dies ermöglicht bessere Einblicke in reale Probleme und hilft, Fehler effektiver zu priorisieren. Das Hauptziel ist es, Probleme schneller zu priorisieren, zu beheben und zu verbessern.
Sie finden zudem eine Send Feedback-Schaltfläche oben rechts im Editor. Sie können jederzeit direkt aus der Engine Feedback senden.
New Python API: cave.ui.textAsProp(...)
Eine neue API steht für die Werkzeugentwicklung im Editor zur Verfügung.
Sie können nun Text anzeigen, als wäre er ein Eigenschaftsfeld. Dies verbessert die Benutzererfahrung mit benutzerdefinierten Werkzeugen und ermöglicht eine konsistentere Integration in die Editor-Oberfläche.
Improved Debug Bezier Drawing
Die addDebugBezier(...)-Methode der Scene rendert nun Bezier-Kurven mit verbesserten visuellen Effekten und Leistung.
Sie sehen:
- Richtungs-Pfeile, die sich entlang der Kurve bewegen
- Glattere Darstellung
- Bessere Leistung bei großen Mengen
Sie können jetzt hunderte Debug-Beziers in einer Szene verwenden, ohne Leistungseinbußen. Diese sind weiterhin nur für Debug-Zwecke und werden nicht in finale Builds oder im Spiel während des Play-Modus einbezogen.
PathComponent – New Methods
Der PathComponent erhielt mehrere neue Python-API-Methoden:
-
generateDerivativePath(self, outPath: PathComponent, width: float = 1) Generiert einen neuen Pfad, der Kanten beidseitig versetzt und die Verbindung beibehält.
-
balanceEdgeDirections(self) Weise Kantenrichtungen neu zu, um Richtungs-Konflikte in Knotenverbindungen zu reduzieren.
-
mergeByDistance(self, distance: float = 0.001) Verschmilzt Punkte, die innerhalb eines bestimmten Abstands liegen.
-
clear(self) Entfernt alle Punkte und Kanten vom Pfad.
Diese Erweiterungen verbessern prozedurale Generierung und Pfadmanipulation.
Improved Documentation Editing
Das Bearbeiten von Dokumentationen ist jetzt direkter. Wenn Sie den "Edit"-Tab eines Documentation Assets öffnen, können Sie das gesamte Dokument inline bearbeiten, ohne ein separates Fenster zu öffnen. Dies verringert Reibung und verbessert die Schreibarbeit im Editor.
Mesh and ImageTexture Optimization
Es wurden Leistungsverbesserungen an Kernsystemen vorgenommen:
mergeByDistance(...)von Mesh ist jetzt O(n) anstelle von O(n²)- Laden von
ImageTextureist schneller
Diese Änderungen reduzieren die Verarbeitungszeit in großen Szenen und asset-intensiven Projekten.
Bug Fixes
- Behebung zufälliger GPU-Abstürze verursacht durch Dear ImGui
- Behebung von OpenGL-Abstürzen
- Behebung des Onboarding-Fensters, das nach Abschluss mehrfach erschien
Final Notes
Cave Engine entwickelt sich weiterhin schnell, getrieben von realer Nutzung und direktem Community-Feedback. Dieses Release fokussiert sich auf Leistung, Stabilität und bessere Werkzeuge, was sich direkt auf Ihren täglichen Arbeitsablauf auswirkt.
Wenn Sie Cave bereits verwenden, aktualisieren Sie jetzt und profitieren Sie von den Verbesserungen.
Falls Sie Spiel-Engines für 3D-Desktop-Entwicklung mit Python evaluieren, stärkt diese Version Cave als ernstzunehmende, produktionsreife Option. Falls dies auf Sie zutrifft, finden Sie hier die Preis- und Planübersicht von Cave Engine 1.4.1:
Learn More about Cave Engine
FAQ
Is Cave Engine good for 3D desktop games?
Ja. Cave wurde speziell für leistungsstarke 3D-Desktop-Entwicklung mit einem C++-Kern und Python-Skripting entwickelt.
Will transform caching break my code?
Nur wenn Sie sich auf Referenzrückgaben verlassen haben. Sie müssen jetzt Setter wie setPosition() verwenden.
Is analytics data safe?
Ja. Es werden nur technische Daten gesammelt. Keine persönlichen Dateien, Assets oder Codes sind enthalten.
Is Cave Engine faster after this update?
Ja. Transform-Caching, Render-Graph-Optimierung und Mesh-Verbesserungen tragen alle zu besserer Leistung bei.
Spoilers
Für Cave 1.6 hier ein kleiner Spoiler:
