Об этом проекте
ZEngine (Zodiac Engine) — это открытый 3D-движок рендеринга, написанный на C++ и построенный на графическом API Vulkan. В README он позиционируется для таких задач, как игры, научные вычисления и визуализация.
Проект поставляется в виде трёх компонентов. ZEngine — это основная среда выполнения, охватывающая ECS, рендерер Vulkan, физику, аудио и виртуальную файловую систему. Tetragrama — это редактор, построенный поверх ZEngine для создания сцен и управления ресурсами. Panzerfaust — это лаунчер проектов, написанный на C#/.NET, который создаёт, открывает и управляет игровыми проектами; он размещён в отдельном репозитории (ZodiacEngineHub).
Поддерживаемые платформы — Windows, macOS и Linux (Debian/Ubuntu), все описаны как активно разрабатываемые и тестируемые. Полная документация находится в вики проекта, также упоминается файл дорожной карты.
Для настройки требуется инструментальная цепочка C++ и вспомогательные инструменты. В Windows: Visual Studio 2022 с рабочей нагрузкой «Разработка классических приложений на C++», MSVC v143 и Windows 10/11 SDK, PowerShell Core, Python, CMake 4.1.2 или новее и LLVM. В macOS: Xcode, Homebrew, затем CMake, NuGet, PowerShell Core и LLVM/ClangFormat через brew. В Linux: build-essential, CMake, Ninja, LLVM/Clang, Python 3 и NuGet через apt, а также PowerShell Core.
Зависимости автоматически загружаются CMake во время конфигурации через FetchContent, поэтому ручная инициализация подмодулей не требуется. Сборка управляется скриптом PowerShell в корне репозитория: BuildEngine.ps1 с -Configurations Debug или Release и -RunBuilds $True. Передача -RunBuilds $False создаёт каталог сборки без компиляции, а пропуск -Configurations собирает обе конфигурации.
Список зависимостей широк и сгруппирован по назначению. Рендеринг и оконная система используют Vulkan-Headers и Vulkan-Loader, VulkanMemoryAllocator для памяти GPU, SPIRV-Cross, glslang и SPIRV-Tools для конвейера компиляции шейдеров, а GLFW для создания окон и ввода. Система UI (ZUI) использует FreeType для растеризации шрифтов и rapidhash для хеширования ключей виджетов. Загрузка ресурсов охватывает Assimp для импорта устаревших 3D-форматов, fastgltf для glTF 2.0, ufbx для FBX, meshoptimizer для оптимизации вершинного кеша, перерисовки и LOD, STB для загрузки изображений (PNG, JPEG, HDR) и miniz для сжатия zip/deflate. Память использует tlsf как динамический аллокатор O(1) для изменяемых по размеру блоков движка. Форматы данных включают nlohmann/json, simdjson для конвейера ресурсов и yaml-cpp для конфигурации. Логирование и утилиты включают spdlog, fmt, stduuid, CLI11 и Tracy как опциональный профилировщик кадров через флаг ZENGINE_TRACY. GoogleTest используется для модульного тестирования, а рабочий процесс GitHub Actions собирает и тестирует движок.
Проект распространяется под лицензией MIT и приветствует вклад, перед открытием pull request упоминается руководство по участию.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.