Cave Engine 1.4.1 уже доступен. Это обновление сосредоточено на производительности, улучшениях рабочего процесса и новых API, которые делают вашу разработку быстрее и более масштабируемой. Если вы создаёте 3D-десктопные игры с помощью Python, этот релиз напрямую повышает эффективность работы в рантайме, удобство редактора и общую стабильность. Если вы ещё не в курсе, Cave Engine — это высокопроизводительный 3D-игровой движок для настольной разработки, сочетающий ядро на C++ с Python-скриптами для быстрой итерации. Он ориентирован на разработчиков, которые хотят полного контроля над рендерингом, системами и производительностью без ущерба продуктивности.
С ростом популярности и быстро расширяющейся базой пользователей обновления выходят всё чаще, и версия 1.4.1 отражает этот импульс. Предыдущее обновление вышло менее чем 2 недели назад. :)
Это минорный релиз, но он приносит значительные улучшения в рендеринге, инструментах и согласованности API. Он также учитывает прямые отзывы сотен новых пользователей, присоединившихся к экосистеме за последние недели. Давайте перейдём к изменениям.

Поддержка DDS-текстур
Теперь Cave поддерживает импорт .dds текстур, включая большинство основных форматов и сжатых вариантов. Это даёт вам больше гибкости при работе с оптимизированными текстурными пайплайнами и внешними инструментами, которые уже экспортируют DDS.
Кэширование матриц трансформации
Матрицы трансформации теперь кэшируются по умолчанию во всём движке, включая TransformComponent, TerrainComponent и кости Armature. Это улучшает рендеринг и вычисления физики.
В внутренних стресс-тестах с более 10 000 уникальных Entity это изменение увеличило среднюю частоту кадров примерно на 10 FPS. Движок теперь лучше предсказывает, когда трансформы нуждаются в перерасчёте, снижая ненужную работу в каждом кадре.
Изменения в Python API (требуется обновление)
Из-за этой оптимизации методы получения трансформации больше не возвращают ссылки.
Теперь так больше не работает:
transf.getPosition() = cave.Vector3(1,0,0)
Значения теперь нужно явно устанавливать:
transf.setPosition(cave.Vector3(1,0,0))
Метод getPositionCopy() был удалён, так как getPosition() уже возвращает копию.
Такой компромисс был необходим для обеспечения согласованности кэша и достижения прироста производительности. Учтите, если вы переносите проект с более старой версии Cave, это может сломать ваш код, поэтому потребуется применить указанные выше исправления.
Новый интерфейс профайлера
Интерфейс профайлера был переработан для улучшения ясности и удобства использования. Теперь вы можете быстрее выявлять узкие места производительности с более точными данными. Проверьте вкладку Profiler справа:

Внутри сам профильный модуль также улучшен. Ожидайте более точных измерений и лучшей видимости факторов, влияющих на время кадра.
Быстрее оценка графа рендера
Оценка графа рендера оптимизирована за счёт дополнительного кэширования и многопоточности. Ранее большие сцены потребляли слишком много CPU. С этим обновлением процесс стал значительно быстрее и эффективнее. Это улучшение тесно связано с системой кэширования трансформ.
Сбор критически важных данных аналитики
Cave теперь собирает базовую аналитическую информацию об использовании для улучшения стабильности и ускорения исправления ошибок.
Это решение обсуждалось и голосовалось с сообществом, и большинство пользователей (92,8% за) поддержали такой подход. Собираемые данные строго технические и не включают ваши проекты, ассеты, код или личный контент.
Собираемые данные включают:
- Паттерны использования движка (открытие и закрытие без сбоев, запуск и остановка игры)
- Отчёты о сбоях
- Статус экспорта
Это обеспечивает лучшую видимость реальных проблем и помогает эффективно расставлять приоритеты для их решения. Главная цель — быстрее выявлять, исправлять и улучшать работу с Cave.
В правом верхнем углу редактора появилась кнопка Send Feedback. Вы можете отправлять отзывы в любое время прямо из движка.
Новый Python API: cave.ui.textAsProp(...)
Появился новый API для разработки инструментов внутри редактора.
Теперь можно отображать текст, как если бы это было поле свойства. Это улучшает UX кастомных инструментов и обеспечивает более согласованную интеграцию с интерфейсом редактора.
Улучшенная отрисовка Debug Bezier
Метод Scene addDebugBezier(...) теперь рендерит кривые Безье с улучшенными визуальными эффектами и производительностью.
Вы увидите:
- Направленные стрелки, движущиеся вдоль кривой
- Более плавный рендеринг
- Лучше производительность при большом количестве кривых
Теперь вы можете работать с сотнями debug Bezier в сцене без проблем с производительностью. Они остаются исключительно для отладки и не включаются в финальные сборки или в игру в режиме Play.
PathComponent – новые методы
PathComponent получил несколько новых методов Python API:
-
generateDerivativePath(self, outPath: PathComponent, width: float = 1) Генерирует новый путь, смещая края в обе стороны при сохранении связности.
-
balanceEdgeDirections(self) Переназначает направления рёбер для уменьшения конфликтов направлений в соединениях узлов.
-
mergeByDistance(self, distance: float = 0.001) Объединяет точки, находящиеся на заданном расстоянии.
-
clear(self) Очищает путь, удаляя все точки и рёбра.
Эти дополнения расширяют возможности процедурной генерации и работы с путями.
Улучшение редактирования документации
Редактирование документации стало более прямым. При открытии вкладки "Edit" у ассета Documentation можно изменять весь документ inline без открытия отдельного окна. Это снижает трение и улучшает рабочий процесс написания внутри редактора.
Оптимизация Mesh и ImageTexture
В ядро системы внесены улучшения производительности:
- Метод Mesh
mergeByDistance(...)теперь работает за O(n) вместо O(n²) - Загрузка
ImageTextureстала быстрее
Эти изменения снижают время обработки в больших сценах и проектах с большим количеством ассетов.
Исправления ошибок
- Исправлены случайные сбои GPU, вызванные Dear ImGui
- Исправлены сбои OpenGL
- Исправлено повторное появление окна обучения после завершения
Заключительные заметки
Cave Engine продолжает быстро развиваться, опираясь на реальное использование и прямые отзывы сообщества. Этот релиз сфокусирован на производительности, стабильности и улучшении инструментов, что напрямую влияет на ваш повседневный рабочий процесс.
Если вы уже используете Cave, обновляйтесь сейчас и воспользуйтесь улучшениями.
Если вы оцениваете игровые движки для 3D-десктопной разработки с Python, этот релиз укрепляет позицию Cave как серьёзного, готового к продукции варианта. Если это ваш случай, вы можете ознакомиться с ценообразованием и планами Cave Engine 1.4.1 здесь:
Узнайте больше о Cave Engine
FAQ
Хорош ли Cave Engine для 3D-десктопных игр?
Да. Cave создан специально для высокопроизводительной 3D-десктопной разработки с ядром на C++ и Python-скриптами.
Сломает ли кэширование трансформ моего код?
Только если вы полагались на возвращение ссылок. Теперь нужно использовать сеттеры вроде setPosition().
Безопасны ли данные аналитики?
Да. Собираются только технические данные. Личные файлы, ассеты и код не включаются.
Стал ли Cave Engine быстрее после этого обновления?
Да. Кэширование трансформов, оптимизация графа рендера и улучшения Mesh способствуют повышению производительности.
Спойлеры
Для версии Cave 1.6 небольшой спойлер:
