Sobre o projeto
ZEngine (Zodiac Engine) é um motor de renderização 3D de código aberto escrito em C++ e construído sobre a API gráfica Vulkan. O README o posiciona para atividades como jogos e computação e visualização científica.
O projeto é distribuído como três componentes. ZEngine é o runtime principal, cobrindo um ECS, o renderizador Vulkan, física, áudio e um sistema de arquivos virtual. Tetragrama é um editor construído sobre o ZEngine para autoria de cenas e gerenciamento de ativos. Panzerfaust é um lançador de projetos escrito em C#/.NET que cria, abre e gerencia projetos de jogos; ele está hospedado em um repositório separado (ZodiacEngineHub).
As plataformas suportadas são Windows, macOS e Linux (Debian/Ubuntu), todas descritas como ativamente desenvolvidas e testadas. A documentação completa está no wiki do projeto, e um arquivo de roadmap é referenciado.
A configuração requer um conjunto de ferramentas C++ além de ferramentas de suporte. No Windows: Visual Studio 2022 com Desenvolvimento para desktop com C++, MSVC v143 e o SDK do Windows 10/11, PowerShell Core, Python, CMake 4.1.2 ou posterior e LLVM. No macOS: Xcode, Homebrew e depois CMake, NuGet, PowerShell Core e LLVM/ClangFormat via brew. No Linux: build-essential, CMake, Ninja, LLVM/Clang, Python 3 e NuGet via apt, além de PowerShell Core.
As dependências são obtidas automaticamente pelo CMake no momento da configuração via FetchContent, portanto nenhuma inicialização manual de submódulos é necessária. A compilação é conduzida por um script PowerShell na raiz do repositório: BuildEngine.ps1 com -Configurations Debug ou Release e -RunBuilds $True. Passar -RunBuilds $False gera o diretório de build sem compilar, e omitir -Configurations compila ambas as configurações.
A lista de dependências é ampla e agrupada por área. Renderização e janelas usam Vulkan-Headers e Vulkan-Loader, VulkanMemoryAllocator para memória GPU, SPIRV-Cross, glslang e SPIRV-Tools para o pipeline de compilação de shaders, e GLFW para criação de janelas e entrada. O sistema de UI (ZUI) usa FreeType para rasterização de fontes e rapidhash para hash de chaves de widgets. O carregamento de ativos cobre Assimp para importação 3D legada, fastgltf para glTF 2.0, ufbx para FBX, meshoptimizer para cache de vértices, overdraw e otimização LOD, STB para carregamento de imagens (PNG, JPEG, HDR) e miniz para compressão zip/deflate. Memória usa tlsf como um alocador dinâmico O(1) para slabs de motor de tamanho variável. Formatos de dados incluem nlohmann/json, simdjson para o pipeline de ativos e yaml-cpp para configuração. Logging e utilitários incluem spdlog, fmt, stduuid, CLI11 e Tracy como um perfilador de quadros opcional via a flag ZENGINE_TRACY. GoogleTest é usado para testes unitários, e um fluxo de trabalho GitHub Actions compila e testa o motor.
O projeto é licenciado sob MIT e aceita contribuições, com um guia de contribuição referenciado antes de abrir pull requests.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.