Cave Engine 1.4.1 ya está disponible. Esta actualización se centra en el rendimiento, mejoras en el flujo de trabajo y nuevas APIs que hacen tu desarrollo más rápido y escalable. Si estás creando juegos 3D de escritorio con Python, esta versión mejora directamente la eficiencia en tiempo de ejecución, la usabilidad del editor y la estabilidad general. Si aún no lo sabes, Cave Engine es un motor de juegos 3D de alto rendimiento diseñado para desarrollo en escritorio, que combina un núcleo en C++ con scripting en Python para iteraciones rápidas. Está dirigido a desarrolladores que desean control total sobre el renderizado, sistemas y rendimiento sin sacrificar la productividad.
Con una adopción creciente y una base de usuarios que se expande rápidamente, las actualizaciones se lanzan más rápido, y la 1.4.1 refleja ese impulso. La última versión fue hace menos de 2 semanas. :)
Esta es una versión menor, pero aporta mejoras significativas en renderizado, herramientas y consistencia de la API. También refleja comentarios directos de cientos de nuevos usuarios que se unieron al ecosistema en las últimas semanas. Vamos directo a los cambios.

Soporte de Texturas DDS
Cave ahora soporta la importación de texturas .dds, incluyendo la mayoría de formatos principales y variantes comprimidas. Esto te da más flexibilidad cuando trabajas con pipelines de texturas optimizados y herramientas externas que ya exportan formatos DDS.
Las Matrices de Transformación Ahora se Almacenan en Caché
Las matrices de transformación ahora se almacenan en caché por defecto en todo el motor, incluyendo TransformComponent, TerrainComponent y huesos de Armature. Esto mejora tanto el renderizado como los cálculos de física.
En pruebas internas con más de 10,000 entidades únicas, este cambio resultó en una ganancia promedio de ~10 FPS. El motor ahora puede predecir mejor cuándo las transformaciones necesitan recalcularse, reduciendo trabajo innecesario por fotograma.
Cambios en la API de Python (Actualización Requerida)
Debido a esta optimización, los getters de transformación ya no retornan referencias.
Esto ya no funciona:
transf.getPosition() = cave.Vector3(1,0,0)
Ahora debes establecer los valores explícitamente:
transf.setPosition(cave.Vector3(1,0,0))
Se removió el método getPositionCopy(), ya que getPosition() ya retorna una copia.
Este compromiso fue necesario para garantizar la consistencia de la caché y desbloquear las ganancias de rendimiento. Ten en cuenta que si estás portando un proyecto existente de versiones antiguas de Cave, esto puede romper tu código, así que tendrás que aplicar las correcciones sugeridas arriba.
Nueva Interfaz de Usuario para el Profiler
La interfaz del Profiler ha sido rediseñada para mejorar claridad y usabilidad. Ahora puedes identificar cuellos de botella de rendimiento más rápido y con datos más precisos. Revisa la pestaña Profiler a la derecha:

Internamente, el sistema de profiling también recibió mejoras. Puedes esperar mediciones más precisas y mejor visibilidad de lo que impacta el tiempo por frame.
Evaluación más Rápida del Render Graph
La evaluación del render graph ha sido optimizada con almacenamiento en caché adicional y mejoras en threading. Escenarios grandes antes consumían mucho más CPU de lo deseado. Con esta actualización, la evaluación es significativamente más rápida y eficiente. Esta mejora está directamente ligada al sistema de caché de transformaciones.
Recolección Crítica de Datos de Analytics
Cave ahora recopila datos básicos de uso para mejorar la estabilidad y acelerar la corrección de errores.
Esta decisión fue discutida y votada con la comunidad, y la mayoría de los usuarios (92,8% a favor) aprobó el enfoque. Los datos recopilados son estrictamente técnicos y no incluyen tus proyectos, assets, código ni ningún contenido personal.
Los datos recopilados incluyen:
- Patrones de uso del motor (si se abrió y cerró correctamente, si el juego inició y se detuvo sin problemas)
- Reportes de fallos
- Estado de exportación
Esto permite mejor visibilidad de problemas reales y ayuda a priorizar correcciones eficazmente. El objetivo principal es priorizar, corregir y mejorar cualquier problema que puedas enfrentar con Cave, más rápido.
También encontrarás un botón Send Feedback en la esquina superior derecha del Editor. Puedes enviar comentarios en cualquier momento directamente desde el motor.
Nueva API de Python: cave.ui.textAsProp(...)
Hay una nueva API disponible para desarrollo de herramientas dentro del Editor.
Ahora puedes mostrar texto como si fuera un campo de propiedad. Esto mejora la experiencia de usuario en herramientas personalizadas y permite una integración más consistente con la interfaz del Editor.
Mejora en el Dibujo de Bezier para Debug
El método addDebugBezier(...) de Scene ahora renderiza curvas Bezier con mejor visual y rendimiento.
Verás:
- Flechas direccionales moviéndose a lo largo de la curva
- Renderizado más suave
- Mejor rendimiento con grandes cantidades
Ahora puedes trabajar con cientos de Beziers de debug en una escena sin problemas de rendimiento. Estos siguen siendo solo para debug y no se incluyen en builds finales ni durante el modo Play del juego.
PathComponent – Nuevos Métodos
El PathComponent recibió varios nuevos métodos en la API de Python:
-
generateDerivativePath(self, outPath: PathComponent, width: float = 1) Genera un nuevo camino desplazando bordes a ambos lados mientras preserva la conectividad.
-
balanceEdgeDirections(self) Reasigna direcciones de bordes para reducir conflictos direccionales en conexiones de nodos.
-
mergeByDistance(self, distance: float = 0.001) Fusiona puntos que están dentro de una distancia especificada.
-
clear(self) Elimina todos los puntos y bordes del camino.
Estas adiciones amplían las capacidades de generación procedural y manipulación de caminos.
Mejoras en la Edición de Documentación
Ahora la edición de documentación es más directa. Al abrir la pestaña "Edit" de un Asset Documentation, puedes modificar el documento completo en línea sin abrir una ventana separada. Esto reduce la fricción y mejora el flujo de trabajo de escritura dentro del Editor.
Optimización de Mesh e ImageTexture
Se aplicaron mejoras de rendimiento en sistemas centrales:
mergeByDistance(...)de Mesh ahora es O(n) en lugar de O(n²)- La carga de
ImageTexturees más rápida
Estos cambios reducen el tiempo de procesamiento en escenas grandes y proyectos con muchos assets.
Corrección de Errores
- Se corrigieron fallos aleatorios de GPU causados por Dear ImGui
- Se corrigieron fallos en OpenGL
- Se corrigió la ventana de bienvenida que aparecía repetidamente después de completarla
Notas Finales
Cave Engine sigue evolucionando rápidamente, impulsado por el uso real y el feedback directo de la comunidad. Esta versión se enfoca en rendimiento, estabilidad y mejores herramientas, lo que impacta directamente tu flujo diario de trabajo.
Si ya usas Cave, actualiza ahora y aprovecha las mejoras.
Si estás evaluando motores para desarrollo 3D de escritorio con Python, esta actualización fortalece a Cave como una opción seria y lista para producción. Si es tu caso, puedes ver los precios y planes de Cave Engine 1.4.1 aquí:
Más información sobre Cave Engine
Preguntas Frecuentes
¿Cave Engine es bueno para juegos 3D de escritorio?
Sí. Cave está construido específicamente para desarrollo 3D de escritorio de alto rendimiento con núcleo en C++ y scripting en Python.
¿El almacenamiento en caché de transformaciones romperá mi código?
Solo si dependías de retornos por referencia. Ahora debes usar setters como setPosition().
¿Los datos de analytics son seguros?
Sí. Solo se recopilan datos técnicos. No se incluyen archivos personales, assets ni código.
¿Cave Engine es más rápido después de esta actualización?
Sí. El almacenamiento en caché de transformaciones, la optimización del render graph y mejoras en mesh contribuyen a un mejor rendimiento.
Spoilers
Para Cave 1.6, aquí tienes un pequeño spoiler:
