Sobre el proyecto
ZEngine (Zodiac Engine) es un motor de renderizado 3D de código abierto escrito en C++, basado en la API gráfica Vulkan. El README lo posiciona para actividades como juegos y cómputo y visualización científica.
El proyecto se distribuye en tres componentes. ZEngine es el núcleo de ejecución, que abarca un ECS, el renderizador Vulkan, física, audio y un sistema de archivos virtual. Tetragrama es un editor construido sobre ZEngine para la creación de escenas y la gestión de activos. Panzerfaust es un lanzador de proyectos escrito en C#/.NET que crea, abre y administra proyectos de juegos; se aloja en un repositorio separado (ZodiacEngineHub).
Las plataformas compatibles son Windows, macOS y Linux (Debian/Ubuntu), todas descritas como desarrolladas y probadas activamente. La documentación completa vive en el wiki del proyecto, y se referencia un archivo de hoja de ruta.
La configuración requiere un conjunto de herramientas de C++ además de herramientas de apoyo. En Windows: Visual Studio 2022 con Desarrollo para escritorio con C++, MSVC v143 y el SDK de Windows 10/11, PowerShell Core, Python, CMake 4.1.2 o posterior y LLVM. En macOS: Xcode, Homebrew, luego CMake, NuGet, PowerShell Core y LLVM/ClangFormat mediante brew. En Linux: build-essential, CMake, Ninja, LLVM/Clang, Python 3 y NuGet mediante apt, además de PowerShell Core.
Las dependencias se obtienen automáticamente por CMake en tiempo de configuración mediante FetchContent, por lo que no se necesita inicialización manual de submódulos. La compilación se realiza mediante un script de PowerShell en la raíz del repositorio: BuildEngine.ps1 con -Configurations Debug o Release y -RunBuilds $True. Pasar -RunBuilds $False genera el directorio de compilación sin compilar, y omitir -Configurations compila ambas configuraciones.
La lista de dependencias es amplia y se agrupa por área. El renderizado y las ventanas usan Vulkan-Headers y Vulkan-Loader, VulkanMemoryAllocator para memoria de GPU, SPIRV-Cross, glslang y SPIRV-Tools para la canalización de compilación de shaders, y GLFW para creación de ventanas y entrada. El sistema de interfaz de usuario (ZUI) usa FreeType para rasterización de fuentes y rapidhash para hash de claves de widgets. La carga de activos cubre Assimp para importación 3D heredada, fastgltf para glTF 2.0, ufbx para FBX, meshoptimizer para caché de vértices, overdraw y optimización de LOD, STB para carga de imágenes (PNG, JPEG, HDR) y miniz para compresión zip/deflate. La memoria usa tlsf como asignador dinámico O(1) para losas de motor de tamaño variable. Los formatos de datos incluyen nlohmann/json, simdjson para la canalización de activos y yaml-cpp para configuración. El registro y las utilidades incluyen spdlog, fmt, stduuid, CLI11 y Tracy como perfilador de fotogramas opcional mediante el flag ZENGINE_TRACY. GoogleTest se usa para pruebas unitarias, y un flujo de trabajo de GitHub Actions compila y prueba el motor.
El proyecto está licenciado bajo MIT y acepta contribuciones, con una guía de contribución referenciada antes de abrir solicitudes de extracción.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.