Sobre o projeto

O VOID Engine é um framework leve e modular de jogos 2D criado para .NET. Fornece sistemas essenciais de desenvolvimento de jogos sem tentar tornar-se um motor gigante tudo-em-um, focando-se antes na arquitetura ao nível do framework que dá aos programadores padrões sólidos sem assumir que esses padrões servem todos os jogos. ## Sistemas e Funcionalidades - **Renderização**: renderização em lote de sprites e primitivas, atlas de texturas, shaders, render targets e pós-processamento via Silk.NET.OpenGL. - **API do Renderer**: contratos públicos neutros em relação ao renderer, permitindo backends personalizados como Vulkan, Direct3D ou Metal. - **Plataforma**: janelas SDL3, monitores, modos de ecrã inteiro, tratamento de input para teclado, rato e gamepads. - **Assets**: sistema de ficheiros virtual baseado em mounts, tipos de assets personalizados, carregamento de packs e despejo LRU. - **Áudio**: reprodução OpenAL via Silk.NET.OpenAL, pooling de sons, roubo de vozes baseado em prioridade e volumes por categoria. - **Gravação**: gravações encriptadas com AES-GCM com verificação de manifesto. - **Pathfinding**: A*, Dijkstra, BFS e flow fields. - **Coroutines**: tweens, sequenciação, atrasos, esperas e auxiliares de easing. - **Logging**: logging assíncrono com sinks de consola e ficheiro. - **Matemática**: vetores, matrizes, retângulos, cores e auxiliares aleatórios. - **Ferramentas**: templates de projeto e utilitários de empacotamento de assets encriptados. - **LDtk**: suporte integrado de níveis e assets. ## Extensibilidade O VOID oferece pontos de extensão diretos onde os programadores podem fornecer implementações personalizadas ou substituir módulos incorporados por completo, incluindo tipos de assets personalizados (`IAsset`), fontes de assets alternativas (`IMount`), algoritmos de empacotamento de texturas (`IAtlasPacker`), destinos de log (`ILogSink`) e backends gráficos (`IRendererBackend`, `IGraphicsDevice`). ## Asset Packer O framework inclui uma API e uma ferramenta de interface de linha de comandos (`Void.Packer.CLI`) para empacotar assets em arquivos autenticados e encriptados usando AES-GCM, compressão adaptativa e verificações de integridade por ficheiro. ## Plataformas Suportadas - Windows - macOS - Linux Requer .NET 10.