Добро пожаловать в Cave Engine 1.6.2 - заметки о выпуске! Этот выпуск короткий, так как в нем в основном исправления ошибок и улучшения качества жизни, но он также вводит пару новых функций, которые помогут вам создавать ваши игры. Давайте в этом разберемся.
Если вы об этом не знали, Cave Engine определенно является самым простым и быстрым игровым движком для независимых разработчиков, хобби-проектов, программистов на Python или небольшой команды, ищущей способ создавать 3D-видеоигры. Вы можете узнать больше, нажав здесь.
Различные стили ссылок для логических блоков
Если вам не нравятся традиционные стили ссылок логических блоков "подобные Безье", вы можете изменить их на прямые линии, стиль манхаттан или даже метро-стиль (угол 45 градусов):

Вы решаете. Это всего лишь визуальная настройка, поэтому она не повлияет на выполнение логических блоков, но может помочь вам организовать вашу логику.
Иконки пользовательских исполняемых файлов
Если вы экспортируете свою игру для Windows, теперь вы можете выбрать текстуру, которая будет использоваться в качестве иконки .exe:

Эта опция доступна рядом с кнопкой "Создать игру для Windows".
Новый встроенный индикатор прогресса для редактора
Ранее индикаторы прогресса обрабатывались как отдельный поток или отдельное окно. Это вызывало множество странных случайностей, не говоря уже о том, что это выглядело некрасиво.

Теперь, когда вы загружаете свою игру, сохраняете ее или импортируете ассеты, индикатор прогресса будет появляться в главном окне редактора и в процессе.
Объяснено поведение свойств

Ассеты, такие как логические блоки и корневая сущность шаблона, позволяют вам определять пользовательские свойства, которые затем инициализируются для каждого экземпляра данного ассета. Это вызывало много путаницы среди пользователей касательно того, как они работают, многие пользователи ошибочно сообщали об этом как об ошибке:
"Если я изменю значение свойства в логическом блоке, оно не обновляется в компоненте логического блока"
Это не ошибка, а связано с тем фактом, что значение этих свойств - начальное значение для инициализации, а не конечное. Чтобы прояснить это, я добавил информационный текст:
Фактическое поведение: Свойства определяют значения по умолчанию, используемые при создании новых компонентов логических блоков. Как только вы создаете экземпляр этих логических блоков, любые изменения в значениях ниже не обновят компоненты. Чтобы настроить значения для конкретного экземпляра, измените их в компоненте логического блока.
Исправления:
- Исправлено: сбои состояния OpenGL (очень важное исправление)
- Исправлено: ui::InputTextOnly(...) был небезопасен в Linux
- Исправлено: мигание браузера ассетов в Linux
- Исправлено: RenderGraph::Remove(...) не обрабатывал крайний случай с нулевой сущностью
- Исправлено: MeshComponent вызывал нарушение памяти в RenderGraph
- Исправлено: диалоговые окна не работали на некоторых дистрибутивах Linux
- Добавлен дополнительный код трассировки для выявления проблем с компонентами логических блоков в будущем