About this project

Irreden Engine is an isometric "pixelatable" voxel content and game engine designed for creating games with a distinct visual style. The engine is built using C++23 and supports multiple backends: OpenGL by default on Windows and Metal on macOS. It employs a modular architecture where components are compiled as static libraries, allowing for flexible integration and development. Key modules include: - **IRRender**: Handles meshless voxel rendering via compute shaders, converting 3D voxels to 2D isometric canvases. It features interpolated pixel scrolling for smooth camera movements and supports multiple voxel canvases. - **IRECS**: A cache-efficient, archetype-based Entity-Component-System (ECS) framework that allows defining systems with lambdas and batch entity creation. - **IRAudio**: Supports probing and connecting to audio devices, MIDI input for controllers, and real-time audio streams (in development). - **IRInput**: Manages window creation via GLFW and handles keyboard, mouse, and gamepad input synchronized with the game loop. - **IRScript**: Provides a Lua C API wrapper for runtime configuration and potential future full Lua-based implementation. - **IRVideo**: Enables MP4/H264 framebuffer capture using FFmpeg, with runtime recording toggles. - **IRMath**: Includes isometric calculations, GLM wrappers, and easing functions for animations. - **IRTime**: Offers fixed FPS events for consistent updates and uncapped FPS events for rendering. The engine supports integrating private game projects through a `creations/game/` directory structure, which auto-discovers CMake targets. Dependencies include RtAudio, RtMidi, GLFW, GLM, EasyProfiler, SpdLogger, Fmt, Glad, StbImage, MeshOptimizer, Assimp, enkiTS, Lua, and FFmpeg. Development tools include CMake presets for configuration, building, testing, formatting, and linting. The project encourages feedback on engine design and contributions through issues, prefab modifications, or publishing open-source projects.