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
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:
- 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" />
- 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);
- Namespace changes
// Old
using Brine2D.Rendering;
// New
using Brine2D.SDL; // For SDL implementations
Upgrading from v0.7.0 to v0.9.0¶
Major changes:
- .NET 10 required
# Download .NET 10 SDK
https://dotnet.microsoft.com/download/dotnet/10.0
- 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!
}
}
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
Feature Comparison¶
v0.9.5 vs v0.9.0¶
| Feature | v0.9.0 | v0.9.5 | Change |
|---|---|---|---|
| Package Model | Brine2D + Brine2D.SDL | Single Brine2D | |
| Builder API | AddSDL3Rendering |
builder.Configure |
|
| Options | Flat | Nested (Window, Rendering) | |
| Scene Constructor | Manual injection + base(logger) |
Framework properties | |
| Scene Lifecycle | Had OnInitializeAsync | Removed | |
| Input Enum | Keys |
Key |
|
| Component | Had OnUpdate | Only OnAdded/OnRemoved | |
| Entity.Id | Guid | long | |
| LoadScene | Async | Void (fire-and-forget) |
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()returnsnintinstead ofint - Audio:
StopChannel()replaced withStopTrack() - Packages: Split into
Brine2DandBrine2D.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:
Worldis now a framework property, not injected
v0.7.0¶
- Rendering:
SDL3GPURendererintroduced as separate backend - EventBus: Moved from
Brine2D.ECStoBrine2D.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:
- ๐ก Request features - Open an issue
- ๐ Report bugs - Bug report template
- ๐ค Submit PRs - Contributing guide
- ๐ฌ Join discussions - GitHub Discussions
See a specific version: v0.9.5 | v0.9.0 | v0.8.0 | v0.7.0 | v0.6.0