Releases: vadymchan/arise
v0.4.0
Description
This major release introduces a comprehensive editor, glTF 2.0 support, and advanced profiling capabilities. The project has been renamed from "game_engine" to "ARISE" (Advanced Rendering Interface & Sandbox Engine), reflecting its evolution into a more sophisticated graphics engine with integrated development tools.
Screenshots
Features
Integrated Editor
- Full-featured ImGui-based editor with scene management
- Scene hierarchy panel with entity selection
- Object inspector for transform manipulation
- Gizmo tools (ImGuizmo) for visual object transformation
- Multiple visualization modes (solid, wireframe, normal map, vertex normals, shader overdraw)
- Scene saving and loading functionality
- Entity search, filter, and sort capabilities
- Performance monitoring with FPS graphs
glTF 2.0 Asset Pipeline
- Complete glTF 2.0 model loading support
- KTX2/BasisU texture compression
- Runtime mesh optimization with meshoptimizer
- MikkTSpace tangent generation
- Deferred asset loading for better performance
- Support for PBR materials with translucency
Advanced Profiling
- Tracy integration for CPU and GPU profiling
- PIX event markers for DirectX debugging
- GPU markers and timing information
- Memory logging and tracking
- Comprehensive performance visualization
Architecture Improvements
- Entity Component System (ECS) with EnTT
- Refactor RHI architecture for better abstraction
- Hot-reload system for shaders
- File watcher for automatic resource updates
- Service locator pattern implementation
- Improved scene management system
Rendering Enhancements
- Structured buffer support for lights
- Light creation and management with gizmos
- Light visualization in the scene
- Bounding volume support (AABB)
- TBN matrix support for advanced shading
- Multiple render passes (base, debug, final)
Developer Experience
- Shader hot-reload functionality
- Runtime and compile-time RHI API selection
- Improved CMake build system with vcpkg integration
- Comprehensive configuration system
- Better error handling and logging
Dependencies Added
- EnTT - Entity Component System
- Tracy - Performance profiler
- cgltf - glTF parser
- libktx - KTX2/BasisU texture loader
- meshoptimizer - Runtime mesh optimization
- MikkTSpace - Tangent space generation
- Watcher - File watching library
- ImGuizmo - 3D gizmos
- ImGuiFileDialog - File dialogs
TODO
Next up on the roadmap:
- Add frame graph architecture (might evolve into full render graph later)
- Implement mouse picking - left click to select objects in the scene
- Add multi-selection support for selecting multiple entities at once
- Integrate bindless resources for better GPU resource management
- Fix input handling system (it's a bit wonky right now)
- Create render graph debugger to visualize input/output connections between passes
v0.3.0
Description
This release marks a significant milestone with the introduction of full support for the DirectX 12 rendering API. Alongside this, several key DirectX 12 related dependencies have been integrated to ensure a smooth and powerful development experience.
Screenshots
Features
Key highlights of this release include:
- Full support for the DirectX 12 rendering API.
- Integration of DirectX 12 related dependencies, including:
- DirectX 12 Agility SDK - Access the latest DirectX 12 features.
- DirectX Shader Compiler - Compile HLSL shaders to DirectX Intermediate Language (DXIL).
- Microsoft::DXIL - Work with DirectX Intermediate Language (DXIL).
- DirectX-Headers - Provides the headers required for DirectX development.
- vcpkg - Used for managing and building C++ libraries, particularly for fetching and integrating DirectX 12 dependencies.
- cmake-modules (FindWindowsSDK) - Locates and integrates the Windows SDK within the project.
TODO
Future development plans include:
- Code refactoring for improved maintainability (this is now the most important task, so I'll focus on this).
- Fixing bugs to ensure all functionalities work as intended.
- Adding functionality to change the rendering API at runtime.
- Adding a compile-time check for DirectX support on Windows (and possibly Xbox). If the target platform does not support DirectX 12, the DirectX-related code will be automatically disabled.
- Expanding engine capabilities.
- Optimizing performance.
- Implementing new features to enhance functionality.
- Providing detailed documentation (Doxygen).
v0.2.0
Description
This release focuses on enhancing the rendering architecture by introducing a generalized Render Hardware Interface (RHI) that abstracts away the specifics of the underlying rendering API implementations (Vulkan / DX12). This makes the engine more flexible and future-proof, allowing for easier integration of additional rendering APIs and improving cross-platform support.
Screenshots
Features
Key highlights of this release include:
- Support for a generalized RHI, which abstracts the specific implementation details of Vulkan and DX12, paving the way for future expansions and improved cross-platform compatibility.
- Updated elements of the custom math library according to the new version of the third-party API, enhancing mathematical operations and overall engine performance.
Minor updates
- Placed GLEW fetch in CMake into the OpenGL section, optimizing the build process by avoiding redundant fetches and speeding up the compilation.
- Various code refinements and optimizations.
TODO
Future development plans include:
- Expand engine capabilities. (This is a broad topic.)
- Provide full support for the DirectX 12 rendering API.
- Submit a pull request to the
math_librarythird-party repository with the suggested functionality currently located inmath_utils.h. - Support additional platforms. (Currently, I'm working on Windows, so I'm not sure if the code is portable.)
- Optimize performance.
- Refactor code for improved maintainability.
- Provide detailed documentation through Doxygen.
Issues found?
For any inquiries, suggestions, or feedback, please don't hesitate to contact me.
v0.1.0
Description
This is the first release of game_engine project (yes, i'm still trying to create a really cool name). This engine aims to be platform agnostic, supporting Windows (DirectX 12 and Vulkan), Linux (Vulkan), and macOS (Vulkan) platforms. Although this release focuses on Vulkan integration, the architecture is designed to accommodate other rendering APIs in future iterations.
Screenshots
Features
Key highlights of this release include:
- SDL for windowing;
- spdlog for efficient logging;
- custom math library for mathematical operations (BTW, check it out);
- CMake build system for simplified project building and third-party dependency management.
Testing
The project was tested on a Windows platform with the following hardware specifications:
- CPU: AMD Ryzen 5 5600X, 4578 MHz
- RAM: RIPJAWS V G.SKILL 32 GB 3600 MHZ CL18 1.35 V
- GPU: Zotac GAMING GeForce RTX 3060 Ti Twin Edge OC LHR
TODO
Future development plans include:
- Expanding engine capabilities
- Supporting additional platforms
- Performance optimization
- Code refactoring for improved maintainability
- Implementing new features to enhance functionality
- Providing detailed documentation
Issues found?
For any inquiries, suggestions, or feedback, please don't hesitate to contact me.









