About this project

VOID Engine is a lightweight, modular 2D game framework built for .NET. It provides essential game development systems without attempting to become a giant all-in-one engine, focusing instead on framework-level architecture that gives developers solid defaults without assuming those defaults fit every game. ## Systems and Features - **Rendering**: Batched sprite and primitive rendering, texture atlasing, shaders, render targets, and post-processing via Silk.NET.OpenGL. - **Renderer API**: Public renderer-neutral contracts allowing custom backends such as Vulkan, Direct3D, or Metal. - **Platform**: SDL3 windowing, displays, fullscreen modes, input handling for keyboard, mouse, and gamepads. - **Assets**: Mount-based virtual file system, custom asset types, pack loading, and LRU eviction. - **Audio**: OpenAL playback via Silk.NET.OpenAL, sound pooling, priority-based voice stealing, and category volumes. - **Saving**: AES-GCM encrypted saves with manifest verification. - **Pathfinding**: A*, Dijkstra, BFS, and flow fields. - **Coroutines**: Tweens, sequencing, delays, waits, and easing helpers. - **Logging**: Async logging with console and file sinks. - **Math**: Vectors, matrices, rectangles, colors, and random helpers. - **Tooling**: Project templates and encrypted asset packing utilities. - **LDtk**: Integrated level and asset support. ## Extensibility VOID offers straightforward extension points where developers can supply custom implementations or replace built-in modules entirely, including custom asset types (`IAsset`), alternate asset sources (`IMount`), texture packing algorithms (`IAtlasPacker`), log destinations (`ILogSink`), and graphics backends (`IRendererBackend`, `IGraphicsDevice`). ## Asset Packer The framework includes an API and a command-line interface tool (`Void.Packer.CLI`) for packaging assets into authenticated, encrypted archives using AES-GCM, adaptive compression, and per-file integrity checks. ## Supported Platforms - Windows - macOS - Linux Requires .NET 10.