Releases: SpaRcle-Studio/SREngine
Releases · SpaRcle-Studio/SREngine
SpaRcle Engine v0.0.7
RU Список изменений
Нововведения:
- Реализованы компоненты AudioListener и AudioSource для работы с аудио.
- Добавлена кросс-платформенная библиотека fmtlib для красивого и удобного вывода логов.
- Реализована отрисовка отладочных мешей.
- Реализован Transform2D, реализованы Anchor и PositionMode для настройки UI.
- Добавлена кнопка над сценой для подключение к PhysX Visual Debugger. Теперь движок никогда не пытается к нему подключиться во время инициализации физики.
- Добавлена статистика сборки CI.
- Добавлены бейджи активности коммитов и discord.
- Реализована удобная система свойств компонентов.
- Реализован StringAtom. Шейдеры и материалы теперь используют его вместо std::string.
- Добавлен framebuffer viewer в редактор.
- Добавлена кроссплатформенная хеш-функция, так как оказывается стандартный std::hash выдает разный хеш на разных компиляторах и платформах.
- В окне иерархии теперь есть возможность горизонтального скролла.
- Добавлена возможность не сохранять сущности, такие как компоненты и игровые объекты. Полезно для редактора.
- Реализован собственный Gizmo средствами движка, отказ от ImGuizmo. Теперь Gizmo работает для UI. Его так же можно использовать для игр, так как является игровым компонентом.
- Добавлен EntityRefProperty для компонентов. Компоненты теперь используют систему свойств и не требуют force-миграции.
- Реализована система слоев для игровых объектов, переписана отрисовка с MeshCluster на RenderStrategy + MeshDrawerPass.
- Реализованы новые и исправлены некоторые из существующих фичей: ClearDepthPass, CascadedShadowMapPass и т. д.
- Добавлена система для работы с сетями, реализован TCP протокол, частично сделан P2P.
- Добавлена реализация широких целых чисел (uint256_t и т.д.).
- Добавлено окно для удобной отладки ошибок рендера на сцене, а так же просмотра статистики рендера.
- Добавлена система оверлеев, теперь ImGui это оверлей.
- Добавлены Sliced-Image для UI.
- Добавлен конфигурационный файл с подсветкой синтаксиса для SRSL в CLion.
- Добавлена возможность отмены и возврата действий в Transform инспектора.
- Добавлены FileWatchers для отслеживания изменений файлов.
- Добавлено автоматическое закрытие Issue с падением сборки, после успешного билда.
- Добавлена упаковка критически важных для работы двикжка файлов в исполняемый файл.
- Теперь движок ялвяется полностью portable и не имеет динамических библиотек.
Исправления:
- Исправлены многочисленные падения при работе в редакторе.
- Исправлена чистка буфера Stacktrace, ранее она не производилась и текст наслаивался друг на друга.
- Исправлена проверка изменений файлов, теперь сперва проверяются мета-данные, и только потом вычисляется хеш.
- Исправлена загрузка тегов игровых объектов.
- Исправлено сохранение EntityRef.
- Исправлена вставка не текстового содержимого в редакторе.
- Исправлено открытие файлов в приложениях по умолчанию.
- Исправлена неправильная обработка пути в PhysicsMaterialEditor.
- Исправлена миграция, ломающая сцены.
- Исправлено несколько проблем с многопоточностью -> исправлена многоэкземплярность синглтонов под компилятором GCC.
- Исправлена возможность инъекции команд.
- Улучшен алгоритм выбора графического девайса GPU.
- Исправлена утечка памяти SharedPtr. Теперь при обнаружении утечек памяти будут выводиться логи.
Рефакторинг:
- Полный переход с легаси графического конвейера Environment на нововведенный Pipeline.
- Директория Utils стала сабмодулем. Создан репозиторий SRCommon. Это очень полезный репозиторий для любого проекта, так как он содержит математику, хеширование, сериализацию, реализацию синглтонов и т.д.
- Директория Graphics стала сабмодулем. Создан репозиторий SRRenderer.
- Переименованы старые header include guards.
- Оптимизировано обновление сцены.
- Проведен рефакторинг внутренней имплементации Behaviour.
- Проведен рефакторинг и фикс кнопки Exit в EditorGUI.cpp
- Проведен рефакторинг инспектора и добавлена дополнительная информация.
- Убраны лишние virtual в местах, где методы уже помечены override.
- Полностью убраны старые неймспейсы Framework и Helper. Теперь они везде называются SpaRcle и Utils.
- Улучшена внутрення реализация Rigidbody.
- Произведен полный рефакторинг CI.
В разработке:
- Начата реализация поддержки Linux. В данный момент мы занимаемся имплементацией поддержки окон X11.
- Была попытка реализовать свою систему Blueprint'ов, но она провалилась из-за отсутствия нормального редактора.
- Ведутся активные работы по переходу с ImGui на нашу собственную систему UI, постепенно добавляются фичи для 2D графики.
Main changes:
- Implemented AudioListener and AudioSource components for working with audio.
- Added cross-platform library fmtlib for nice and convenient output of logs.
- Implemented rendering of debug meshes.
- Implemented Transform2D, implemented Anchor and PositionMode for UI customization.
- Added button above the scene to connect to PhysX Visual Debugger. Now the engine never tries to connect to it during initialization of physics.
- Added CI build statistics.
- Added commit and discord activity badges.
- Implemented a convenient system of component properties.
- Implemented StringAtom. Shaders and materials now use it instead of std::string.
- Added framebuffer viewer to editor.
- Added cross-platform hash function, since std::hash produces different hashes on different compilers and platforms.
- Hierarchy widget now supports horizontal scrolling.
- Added option to not save entities such as components and game objects. Useful for the editor.
- Implemented engine's own Gizmo which is now used instead of ImGuizmo. Now Gizmo works for UI. It can also be used for games, as it is a game component.
- Added EntityRefProperty for components. Components now use property system and do not require force-migration.
- Implemented layer system for game objects, refactored rendering from MeshCluster to RenderStrategy + MeshDrawerPass.
- Implemented new and fixed some of the existing features: ClearDepthPass, CascadedShadowMapPass, etc.
- Added asio library and some of the network logics, implemented TCP protocol, partially implemented P2P.
- Added implementation of wide integers (uint256_t, etc.).
- Added a window for convenient debugging of render errors on the scene, as well as viewing render statistics.
- Added overlay system, now ImGui is an overlay.
- Implemented SlicedImage UI component.
- Added syntax highlighting configuration file for SRSL in CLion.
- Added ability to undo and revert actions in Transform inspector.
- Added FileWatchers to track file changes.
- Added automatic closing of GitHub Issues caused by an unsuccessful build, after a successful build.
- Added embedding of critical files for the engine's runtime into the executable file.
- The engine's executable is now fully portable and has no dynamic libraries.
Fixes:
- Fixed numerous crashes when working in the editor.
- Fixed Stacktrace buffer cleaning, previously it was not performed and text was layered on top of each other.
- Fixed checking if a file was changed. Now metadata is checked first, and only then hash is calculated.
- Fixed loading of game object tags.
- Fixed EntityRef saving.
- Fixed inserting of non-text content in the editor.
- Fixed opening files in default applications.
- Fixed incorrect path handling in PhysicsMaterialEditor.
- Fixed scene breaking on migration.
- Fixed several multi-threading issues -> fixed multi-existence of singletons under the GCC compiler.
- Fixed the ability to inject commands.
- Improved GPU graphics device selection algorithm.
- SharedPtr memory leak fixed. Now logs will be displayed when memory leaks are detected.
Refactoring:
- Complete transition from the legacy Environment graphics pipeline to the new Pipeline.
- Utils directory became a sub-module. SRCommon repository was created. This is a very useful repository for any project as it contains math, hashing, serialization, singleton implementation, etc.
- Graphics directory became a sub-module. SRRenderer repository created.
- Renamed old header include guards.
- Optimized scene update.
- Behaviour internal implementation was refactored.
- Refactoring and fixing of the Exit button in EditorGUI.cpp.
- Refactoring of the inspector and adding additional information.
- Removed unnecessary virtual in places where methods are already marked override.
- Completely removed old Framework and Helper namespaces. Now they are called SpaRcle and Utils everywhere.
- Improved internal implementation of Rigidbody.
- Complete refactoring of CI.
In development:
- Linux support has been started. We are currently working on implementation of X11 windows support.
- There was an attempt to implement our own Blueprints system, but it failed due to the lack of a normal editor.
- We are actively working on transition from ImGui to our own UI system, implementing features for 2D graphics.
What's Changed
- SpaRcle Engine v0.0.7 by @Monika0000, @innerviewer in #193
Full Changelog: release/0.0.6...release/0.0.7
SpaRcle Engine v0.0.6
Нововведения:
- Добавлен редактор физических материалов
- Доработаны и оптимизированы каскадные карты теней
- Проходы рендера теперь могут работать с буфером глубины и трафарета
- Проходы рендера теперь могут использовать несколько слоев рендера
- Технологии рендера могут управлять построением графической очереди на низком уровне
- В SRSL был добавлен механизм инклудов
- В SRSL были добавлены push-contant'ы
- Добавлен компонент AudioSource для воспроизведения звуков
- Добавлена в редактор возможность открывать префабы из иерархии
- Добавлен механизм отслеживания файлов FileWatcher
- Добавлен язык визуального программирования SRLM
- Заложен механизм для реализации оверлеев
- В SceneViewer теперь можно выбирать источник разрешения экрана
- Добавлена возможность перезагрузки движка без завершения процесса
- Добавлена миграция для Transform
- Улучшен EnumReflector, теперь можно получить его экземпляр для абстрактного взаимодействия
- Во вкладку статистики добавлена информации о графических очередях и видео памяти
- Улучшен внешний вид редактора префабов
- Добавлена кнопка возврата из префаба обратно на сцену
- Начата работа над лаунчером
- Начата работа над Anchor
Исправления:
- Исправлены падения в релиз билде из версии 0.0.5 при выделении объектов
- Исправлены проблемы само-затенения
- Исправлены случайные падения при быстром перезапуске сцены
- Исправлена работа Stretch в Transform2D
- Вставка объектов в иерархию теперь обратима
- Оптимизированы скелетные анимации
- Оптимизация скелета в статике
- Исправлена утечка памяти шейдерных программ при удалении камеры
- Теперь все Singleton'ы уничтожаются при закрытии приложения
Рефакторинг:
- Макрос SR_POW теперь использует std::pow, добавлен SR_SQARE
- Рефакторинг Sprite2D, теперь это Sprite
- Рефакторинг сохранения сцен
- Рефакторинг main.cpp, теперь вся логика в классе Application
- Рефакторинг графического интерфейса
- Рефакторинг взаимодействия с ImGui
- Рефакторинг графического конвейера
- Был удален старый CrashHandler
What's Changed
- SpaRcle Engine v0.0.6 by @Monika0000, @innerviewer, @Drakeme and @CaptainSlider in https://github.com/Monika0000/SREngine/pull/18
Full Changelog: Monika0000/SREngine@master@{1day}...master
SpaRcle Engine v0.0.5
Нововведения:
- Интегрирована библиотека tracy
- Добавлено переключение мультисемплинга "на лету"
- Оптимизация перезагрузки ресурсов
- Добавлена возможность работы с текстом
- Добавлен EntityRef
- Переведен SkinnedMesh на EntityRef
- Реализован undocking окон из основного окна
- Настроена автосборка через Github Actions
- Начата работа над продвинутыми анимациями
- Добавлено символьное связывание префабов
- Добавлена поддержка скелетов с большим числом костей
- Добавлена кнопка сброса окон редактора
- Добавлена горячая перезагрузка моделей
- Меш больше не является файловым ресурсом
- Добавлены перезагрузчики для ресурсов
- Оптимизация скриптов, использование одного экземпляра
- Кеширование последней сцены
- Спиральная загрузка чанков
- Добавлен raycast для физики
- Оптимизация компиляции скриптов
- Проведен рефакторинг шейдерного языка SRSL
- Добавлено кеширование моделей assimp'а
- Добавлена кнопка back для префабов
- Редизайн кнопок иерархии
- Префабы теперь отображаются разными цветами в иерархии
Исправления:
- Исправлены падения при ошибках в скриптах
- Исправлено сохранение положения камеры при запуске сцены
- Исправлено падение при комбинации клавиш Win + D
- Исправлены проблемы с многопоточностью
- Исправлено обновление дерева сцены
- Исправлены многочисленные мелкие проблемы в архитектуре
What's Changed
- SpaRcle Engine v0.0.5 by @Monika0000 in https://github.com/Monika0000/SREngine/pull/13
Full Changelog: Monika0000/SREngine@v0.0.4...v0.0.5
SpaRcle Engine v0.0.4
Нововведения:
- Добавлен проход рендера цветового буфера
- Добавлен проход рендера SSAO
- Добавлен проход рендера пост-процессинга
- Добавлен проход рендера кадрового буфера
- Добавлена возможность выбора объектов в редакторе кликом по ним
- Добавлена возможность выключения буфера глубины
- Добавлен рендер текста и эмодзи
- Портирование сборки под андроид (только сборка)
- Улучшена работа и настраиваемость физики
- Добавлена возможность обработки столкновений в скриптах
- Добавлены триггеры
- Добавлена система миграции сцены
- Добавлена система тегов игровых объектов
- Полностью переписан SRSL, множество нововведений и исправлений, предусмотрена легкая расширяемость
- Добавлены скелетные анимации
- Добавлена иконка исполняемому файлу
- Добавлен счетчик кадров в редакторе
- Сцена теперь может иметь компоненты
- Добавлены префабы и их редактор (отдельная спец-сцена)
- Добавлена отложенная загрузка компонентов
- Добавлено сохранение последнего местоположения камеры редактора
- Добавлена горячая перезагрузка шейдеров
Исправления:
- Рефакторинг оконной системы
- Новый более оптимальный способ обновления сцены
- Исправлено удаление кэшированных регионов
- Добавлена очередь сцен, что исправило множество проблем с перезагрузкой и запуском сцены
- Исправлено освобождение памяти скайбокса
- Оптимизация хранения информации о сцене в игровых объектах
- Оптимизация ресурсной системы
- Оптимизация скорости сохранения и загрузки сцены
- Оптимизация матричных вычислений, уменьшен числовой тип с double на float
What's Changed
- Dev by @Monika0000 in https://github.com/Monika0000/SREngine/pull/11
- Dev by @Monika0000 in https://github.com/Monika0000/SREngine/pull/12
Full Changelog: Monika0000/SREngine@v0.0.3...v0.0.4
SpaRcle Engine v0.0.3
Нововведения:
- Добавлен компонент Rigidbody, есть возможность использовать 2 типа физических объектов (Sphere3D и Cube3D)
- Добавлен процедурный меш
- Добавлена возможность отмены использования guizmo
- Добавлены отладочные классы DebugDraw + DebugRenderer. Можно рисовать линии, кубы и сферы
- Новая более качественная дефолтная текстура
- Отложенная загрузка компонентов
- Новые математические функции для расчета шумов Перлина
- Улучшение функционала FileBrowser
Исправления:
- Исправлены блокировки осей при использовании углов Эйлера
- Исправлен запуск под видеокартой GTX 1050 Ti
- Переделана структура модулей движка в более удобную
- Исправлена рассинхронизация между несколькими камерами
- Исправлены утечки памяти при череде быстрых выделений дескрипторов
- Исправлен краш при перезагрузке скриптов с ошибкой компиляции
- Исправлена выгрузка объектов при выходе их за пределы области загрузки
- Оптимизации рендера
- Оптимизация дерева объектов и компонентов
- Оптимизация иерархических трансформаций
SpaRcle Engine v0.0.2
Нововведения:
- Добавлена новая система рендера с возможностью полной кастомизации,
- Закончена иерархическая трансформация объектов,
- Добавлена поддержка прозрачной геометрии,
- Добавлена поддержка кадровых буферов,
- Доработано окно сцены,
- Добавлены 2д спрайты,
- Расширен функционал файлового проводника,
- Добавлена возможность замены мешей.
Исправления:
- Объединен основной поток движка и поток рендера для большей стабильности,
- Оптимизация применения материалов,
- Исправлена синхронизация выгрузки ресурсов,
- Исправлен краш при смене материала с разными шейдерами.
Незакончено:
- Трансформация 2д графики,
- Оптимизация файлового проводника,
- Базовая физика.