A foundation, not a cage.

An extensible .NET game framework built to give you useful defaults without locking you into them.

C#  •  .NET 10  •  SDL3  •  Silk.NET  •  MIT

What is VOID?

Build the game. Keep control of the framework.

VOID is a lightweight, modular 2D game framework for developers who want a capable starting point without surrendering control of their architecture. Use the systems VOID provides, extend them when you need more, or replace them when your project needs something different.

Useful defaults

Start with rendering, input, audio, assets, saving, tooling, and common game systems already available.

Built to extend

Major systems expose clear extension points instead of assuming one implementation is right for every project.

Your project stays yours

VOID provides the foundation. It does not dictate how your entire game has to be structured.

Core systems

Everything you need to start building.

Practical framework-level systems without turning VOID into a giant all-in-one engine.

01

Rendering

Sprite and primitive batching, texture atlases, shaders, render targets, post-processing, and a renderer-neutral API.

02

Platform & Input

SDL3 windowing, displays, keyboard, mouse, gamepads, and fullscreen handling.

03

Assets & Tooling

Virtual mounts, custom asset types, pack loading, project templates, and encrypted asset packing tools.

04

Audio

OpenAL playback, sound pooling, priority-based voice stealing, and category volumes.

05

Game Systems

Coroutines, tweens, pathfinding, encrypted saves, logging, math helpers, and LDtk integration.

06

Extension Points

Custom renderers, asset sources, atlas packers, logging sinks, batchers, render targets, cameras, and more.

Design philosophy

A foundation,
not a cage.

Frameworks should remove work, not remove choices. VOID is designed around transparency, replaceable systems, and sensible defaults so you can start quickly without discovering later that the framework owns your architecture.

Use what works. Replace what doesn't.

Read the Design Philosophy

Rendering

OpenGL included. OpenGL not required.

VOID ships with a built-in Silk.NET.OpenGL renderer, but OpenGL is a backend, not the identity of the engine.

Public renderer-neutral contracts keep higher-level systems API-agnostic.
Custom backends can target Vulkan, Direct3D, Metal, WebGPU, or another API.
Native window handles are exposed through the renderer context when a backend needs them.
VOID Engine renderer architecture showing the API-agnostic rendering layer, renderer abstraction, pluggable graphics backends, SDL3, and OpenAL.

Real projects

Built for real games.

Real VOID project screenshots showing gameplay, in-game UI, and framework integration with LDtk.

VOID game project code beside an LDtk level, showing framework lifecycle, rendering, assets, collision, and level integration.
In-game VOID interface showing inventory items, item details, icons, selection highlighting, and input prompts.
Gameplay from a game built with VOID showing characters, a room, and an in-game dialogue box.

Start simple

Go as deep as you want.

You do not need to understand VOID's renderer architecture to make your first game. Start with the official project template and use the built-in systems. The deeper architecture is there when you need it.

Recommended: use the official template. It creates the expected project structure and references so you can start with a known-good setup.
terminal
dotnet new install Void.Templates

dotnet new voidgame -n MyGame
cd MyGame
dotnet run

Ready when you are

Build with VOID.

Start with the official template and get a correctly configured VOID project from the beginning.