Skip to content

VOID Engine 2.0.1

Choose a tag to compare

@Shmellyorc Shmellyorc released this 13 Sep 15:54
· 60 commits to master since this release

VOID Engine 2.0.0

VOID 2.0 is here.

This release is a major architectural update that replaces VOID's old SFML-based foundation with a platform and rendering stack owned by VOID and designed around extensibility.

Packages

  • Void.Engine 2.0.1
  • Void.Packer 1.0.1
  • Void.Packer.CLI 1.0.1
  • Void.Templates 1.0.1

What's New

New Platform and Rendering Foundation

VOID is no longer built around SFML.

VOID 2.0 now uses:

  • SDL3-CS for windows, displays, events, keyboard, mouse, gamepads, fullscreen, and platform integration
  • Silk.NET.OpenGL for the built-in OpenGL renderer
  • Silk.NET.OpenAL with NAudio.SoundFile for audio

Pluggable Rendering

The renderer is no longer tied to OpenGL or an internal platform implementation.

VOID now exposes renderer-neutral APIs including:

  • IRendererBackend
  • IGraphicsDevice
  • IRendererContext
  • renderer-neutral textures, shaders, buffers, pipelines, samplers, render targets, and graphics resources

Developers can build their own backends for APIs such as Vulkan, Direct3D, Metal, OpenGL, or other custom renderers without forking VOID.

Camera and Math

VOID now includes its own matrix implementation and an extensible camera foundation.

Highlights include:

  • BaseCamera
  • VOID-owned Matrix
  • camera rotation
  • matrix-based WorldToScreen / ScreenToWorld
  • rotated camera bounds and culling
  • support for custom camera implementations

Rendering Performance

The 2.0 renderer received a large internal cleanup and optimization pass.

Changes include:

  • indexed sprite rendering using four vertices per sprite
  • reusable index buffers
  • reduced redundant OpenGL state changes
  • improved GPU buffer uploads
  • reduced unnecessary CPU-side copies
  • improved camera and atlas hot paths
  • rendering and batching correctness fixes

Texture Atlas Reliability

The atlas system received extensive correctness work, including:

  • fixes for overlapping Skyline regions
  • stronger Skyline and Guillotine validation
  • transactional defragmentation
  • safer custom IAtlasPacker support
  • synchronized CPU metadata and GPU uploads
  • improved LRU eviction and recovery
  • more accurate atlas metrics

Input, Audio, Logging, Pathfinding, and Core Fixes

VOID 2.0 also includes a large collection of improvements across the rest of the framework, including:

  • SDL3 keyboard, mouse, and gamepad input
  • improved InputAction handling
  • OpenAL-based audio
  • pathfinding correctness fixes
  • hardened logging and shutdown behavior
  • FastRandom, Vect2, FrameTime, DisplayMode, and Matrix fixes
  • improved LDtk setting lookups without exception-driven TryGet paths
  • extensive public API documentation cleanup

Asset Packer

The VOID asset packing tools have also been refreshed.

Void.Packer and Void.Packer.CLI provide:

  • AES-GCM authenticated encryption
  • compression
  • integrity verification
  • configurable chunked encryption
  • streaming reads
  • incremental updates

The installed CLI command is now:

void-packer

Migration

VOID 2.0 contains breaking changes for projects that directly relied on the old SFML-based graphics APIs.

Existing high-level VOID workflows remain familiar, but renderer integrations, graphics resources, camera extensions, and platform-specific code may require migration.

Install

dotnet add package Void.Engine

Or start with the project template:

dotnet new install Void.Templates
dotnet new voidgame -n MyGame

VOID 2.0 establishes the new foundation for the engine: renderer-neutral, platform-independent, extensible, and fully owned by VOID.