Sobre o projeto

Irreden Engine é um motor de conteúdo e jogo voxel "pixelatable" isométrico, projetado para criar jogos com um estilo visual distinto. O motor é construído usando C++23 e suporta vários backends: OpenGL por padrão no Windows e Metal no macOS. Ele emprega uma arquitetura modular onde os componentes são compilados como bibliotecas estáticas, permitindo integração e desenvolvimento flexíveis. Módulos principais incluem: - **IRRender**: Lida com a renderização de voxels sem malha via shaders de computação, convertendo voxels 3D em canvases isométricas 2D. Possui rolagem de pixel interpolada para movimentos suaves da câmera e suporta múltiplos canvases de voxels. - **IRECS**: Um framework de Entity-Component-System (ECS) eficiente em cache e baseado em arquétipos, que permite definir sistemas com lambdas e criação em lote de entidades. - **IRAudio**: Suporta sondagem e conexão a dispositivos de áudio, entrada MIDI para controladores e streams de áudio em tempo real (em desenvolvimento). - **IRInput**: Gerencia a criação de janelas via GLFW e lida com entrada de teclado, mouse e gamepad sincronizada com o loop do jogo. - **IRScript**: Fornece um wrapper de API C para Lua para configuração em tempo de execução e potencial implementação futura totalmente baseada em Lua. - **IRVideo**: Habilita captura de framebuffer MP4/H264 usando FFmpeg, com toggles de gravação em tempo de execução. - **IRMath**: Inclui cálculos isométricos, wrappers GLM e funções de easing para animações. - **IRTime**: Oferece eventos de FPS fixo para atualizações consistentes e eventos de FPS ilimitado para renderização. O motor suporta a integração de projetos de jogo privados através de uma estrutura de diretório `creations/game/`, que descobre automaticamente os targets do CMake. As dependências incluem RtAudio, RtMidi, GLFW, GLM, EasyProfiler, SpdLogger, Fmt, Glad, StbImage, MeshOptimizer, Assimp, enkiTS, Lua e FFmpeg. As ferramentas de desenvolvimento incluem presets do CMake para configuração, construção, teste, formatação e linting. O projeto incentiva feedback sobre o design do motor e contribuições através de issues, modificações de prefabs ou publicação de projetos de código aberto.