Skip to content

What's New in Brine2D

Track Brine2D's evolution from early beta to stable release. See what's changed, what's new, and what's coming next.


Latest Release

v0.9.0-beta - January 2026

Major architectural release with package separation, .NET 10 support, and comprehensive improvements.

Highlights:

  • ๐Ÿ“ฆ Package Separation - Brine2D + Brine2D.SDL for better modularity
  • ๐ŸŽต Track-Based Audio - Precise audio control with track handles
  • ๐Ÿ“Š Performance Monitoring - Built-in FPS, frame time, and memory stats
  • ๐ŸŽจ GPU Renderer Improvements - Now the default with automatic batching
  • ๐Ÿ”ข .NET 10 Support - Built on the latest .NET

See Full Changelog


Release History

Beta Releases

Version Release Date Highlights
v0.9.0-beta Jan 2026 Package separation, track-based audio, .NET 10
v0.8.0-beta Dec 2025 Particle textures, spatial audio, texture atlasing
v0.7.0-beta Nov 2025 GPU renderer, post-processing, EventBus
v0.6.0-beta Oct 2025 Scene transitions, UI framework, collision system

Version Support

Currently Supported

Version Status Support Until .NET Version
v0.9.0-beta โœ… Latest - .NET 10
v0.8.0-beta โš ๏ธ Maintenance Mar 2026 .NET 10
v0.7.0-beta โŒ End of life - .NET 9

v0.7.0 End of Life

v0.7.0 and earlier are no longer supported. Please upgrade to v0.9.0.


Migration Guides

Upgrading from v0.8.0 to v0.9.0

Breaking changes:

  1. Package names changed
<!-- Old (v0.8.0) -->
<PackageReference Include="Brine2D" Version="0.8.0-beta" />

<!-- New (v0.9.0) -->
<PackageReference Include="Brine2D" Version="0.9.0-beta" />
<PackageReference Include="Brine2D.SDL" Version="0.9.0-beta" />
  1. Audio API updated
// Old (v0.8.0)
int channel = _audio.PlaySound(_shootSound);
_audio.StopChannel(channel);

// New (v0.9.0)
nint track = _audio.PlaySoundWithTrack(_shootSound);
_audio.StopTrack(track);
  1. Namespace changes
// Old
using Brine2D.Rendering;

// New
using Brine2D.SDL;  // For SDL implementations

Full Migration Guide


Upgrading from v0.7.0 to v0.9.0

Major changes:

  1. .NET 10 required
# Download .NET 10 SDK
https://dotnet.microsoft.com/download/dotnet/10.0
  1. Property injection pattern (v0.8.0+)
// Old (v0.7.0)
public class GameScene : Scene
{
    private readonly IRenderer _renderer;

    public GameScene(IRenderer renderer, ILogger<GameScene> logger)
        : base(logger)
    {
        _renderer = renderer;
    }
}

// New (v0.9.0)
public class GameScene : Scene
{
    public GameScene(IInputContext input)
    {
        // Only inject YOUR services
    }

    protected override void OnRender(GameTime gameTime)
    {
        Renderer.DrawText(...);  // Framework property!
    }
}

See v0.8.0 Changelog


Roadmap

Planned for v0.10.0 (Q2 2026)

  • ๐Ÿงช Testing framework - Built-in testing utilities for scenes/entities
  • ๐Ÿ”Š Audio effects - Reverb, echo, filters
  • ๐Ÿ“ฑ Mobile support - Android and iOS via .NET MAUI
  • ๐ŸŽฌ Timeline system - Cutscenes and scripted events
  • ๐Ÿ“ฆ Asset pipeline - Asset preprocessing and optimization

Planned for v1.0.0 Stable (Q3 2026)

  • ๐Ÿ”’ API stability - No more breaking changes
  • ๐Ÿ“š Complete documentation - Every feature documented
  • ๐ŸŽ“ Video tutorials - YouTube series
  • ๐Ÿ† Production ready - Battle-tested in real games
  • ๐ŸŒ Community site - Showcase, tutorials, forums

View Full Roadmap


Feature Comparison

v0.9.5 vs v0.9.0

Feature v0.9.0 v0.9.5 Change
Package Model Brine2D + Brine2D.SDL Single Brine2D โœ… Simplified
Builder API AddSDL3Rendering builder.Configure โœ… Breaking
Options Flat Nested (Window, Rendering) โœ… Breaking
Scene Constructor Manual injection + base(logger) Framework properties โœ… Breaking
Scene Lifecycle Had OnInitializeAsync Removed โœ… Breaking
Input Enum Keys Key โœ… Breaking
Component Had OnUpdate Only OnAdded/OnRemoved โœ… Breaking
Entity.Id Guid long โœ… Breaking
LoadScene Async Void (fire-and-forget) โœ… Breaking

v0.9.0 vs v0.8.0

Feature v0.8.0 v0.9.0 Change
Package Structure Monolithic Modular (Core + SDL) โœ… Improved
Audio API Channel-based Track-based โœ… Breaking
.NET Version .NET 10 .NET 10 No change
Performance Monitoring โŒ None โœ… Built-in โœ… New
GPU Renderer Optional Default โœ… Improved
Particle Textures โœ… Yes โœ… Yes No change
Spatial Audio โœ… Yes โœ… Enhanced โœ… Improved

Breaking Changes Log

v0.9.0

  • Audio: PlaySound() returns nint instead of int
  • Audio: StopChannel() replaced with StopTrack()
  • Packages: Split into Brine2D and Brine2D.SDL
  • Namespaces: Brine2D.Rendering โ†’ Brine2D.SDL (implementations)

v0.8.0

  • Scenes: Constructor injection changed (Logger/World/Renderer now properties)
  • Scenes: base(logger) constructor call removed
  • ECS: World is now a framework property, not injected

v0.7.0

  • Rendering: SDL3GPURenderer introduced as separate backend
  • EventBus: Moved from Brine2D.ECS to Brine2D.Core

Deprecation Notices

Deprecated in v0.9.0

API Replacement Removal Date
IAudioService.StopChannel(int) IAudioService.StopTrack(nint) v0.10.0
IAudioService.PauseChannel(int) IAudioService.PauseTrack(nint) v0.10.0
IAudioService.IsChannelPlaying(int) Check track stopped event v0.10.0

Update Your Code

Deprecated APIs will be removed in v0.10.0 (Q2 2026). Migrate now to avoid issues.


Release Philosophy

Brine2D follows Semantic Versioning:

  • Major (1.0, 2.0) - Breaking changes
  • Minor (0.9, 0.10) - New features, may include breaking changes in beta
  • Patch (0.9.1, 0.9.2) - Bug fixes only, no breaking changes

Beta Phase (Current)

  • APIs may change between releases
  • Major features still being added
  • Performance improvements ongoing
  • Community feedback shapes direction

Stable Phase (v1.0+)

  • No breaking changes without major version bump
  • Long-term support for each major version
  • Predictable release schedule
  • Production-ready stability

Get Notified

Stay up to date with Brine2D releases:

  • ๐Ÿ”” Watch on GitHub - Star the repo for notifications
  • ๐Ÿ“ Read the blog - Dev blog (coming soon)
  • ๐Ÿฆ Follow on Twitter - @Brine2D (coming soon)
  • ๐Ÿ“ง Mailing list - Subscribe (coming soon)

Contributing

Help shape Brine2D's future:


See a specific version: v0.9.5 | v0.9.0 | v0.8.0 | v0.7.0 | v0.6.0