BSGameLib.Game
1.0.11-preview
dotnet add package BSGameLib.Game --version 1.0.11-preview
NuGet\Install-Package BSGameLib.Game -Version 1.0.11-preview
<PackageReference Include="BSGameLib.Game" Version="1.0.11-preview" />
<PackageVersion Include="BSGameLib.Game" Version="1.0.11-preview" />
<PackageReference Include="BSGameLib.Game" />
paket add BSGameLib.Game --version 1.0.11-preview
#r "nuget: BSGameLib.Game, 1.0.11-preview"
#:package BSGameLib.Game@1.0.11-preview
#addin nuget:?package=BSGameLib.Game&version=1.0.11-preview&prerelease
#tool nuget:?package=BSGameLib.Game&version=1.0.11-preview&prerelease
BSGameLib.Game
A 2D game engine for .NET: derive from Game, override what you need, and call Run(). SDL3 owns
the window and input; rendering goes through Vulkan, or OpenGL, behind a frame graph; services live
in a Microsoft.Extensions.DependencyInjection container your game adds to.
- Vulkan (the default) and OpenGL renderers, with sprite and shape batching, text, materials and custom shaders, full-screen effects, point lights and render targets.
- Shaders compiled to SPIR-V at build: list your GLSL as
BSGameLibShaderitems and the package's build step compiles them, so a game needs no shader compiler at runtime. - Textures, texture atlases, BMFont and TrueType fonts, and content overlays for mods.
- Keyboard, mouse and gamepad input, with bindings and input contexts.
- Audio on SDL3_mixer, localization from JSON, and Dear ImGui.
- Windows, Linux and macOS, with SDL3 and MoltenVK brought in by
BSGameLib.Sdl3.Interop.
using BSGameLib.Game;
using BSGameLib.Game.Drawing;
using BSGameLib.Game.Input;
using BSGameLib.Game.Rendering;
using var game = new MyGame();
game.Run();
public class MyGame : Game
{
public MyGame() : base(new WindowOptions { Title = "My Game", Width = 1280, Height = 720 }) { }
protected override void Update(IGameTime gameTime)
{
if (Keyboard.IsKeyDown(Key.Escape))
Exit();
base.Update(gameTime);
}
protected override void Draw(IGameTime gameTime)
{
using var encoder = Graphics2D.Begin();
encoder.Clear(Color.CornflowerBlue);
encoder.SubmitShape(ShapeDrawOptions.RectangleFilled(new Rectangle(20, 20, 220, 80), Color.White));
}
}
Shaders of your own, compiled at build and embedded:
<ItemGroup>
<EmbeddedResource Include="Shaders\*" />
<BSGameLibShader Include="Shaders\*.vert;Shaders\*.frag" />
</ItemGroup>
For menus and other UI, add BSGameLib.UI.
Documentation: https://docs.burningstormstudios.com/
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BSGameLib.Core (>= 1.0.3-preview)
- BSGameLib.Sdl3.Interop (>= 1.0.4-preview)
- ImGui.NET (>= 1.91.6.1)
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- OpenTK.Graphics (>= 4.9.3)
- Pfim (>= 0.11.3)
- Scrutor (>= 5.0.1)
- SevenZip (>= 19.0.0)
- Silk.NET.Shaderc.Native (>= 2.23.0)
- Silk.NET.Vulkan (>= 2.23.0)
- Silk.NET.Vulkan.Extensions.EXT (>= 2.22.0)
- Silk.NET.Vulkan.Extensions.KHR (>= 2.22.0)
- Singulink.Collections.Weak (>= 2.1.0)
- SkiaSharp (>= 2.88.8)
- SkiaSharp.NativeAssets.Linux (>= 2.88.8)
- System.IO.Abstractions (>= 21.0.29)
- TestableIO.System.IO.Abstractions (>= 21.0.29)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on BSGameLib.Game:
| Package | Downloads |
|---|---|
|
BSGameLib.UI
The UI layer for BSGameLib.Game: views in XML or C#, bound to view-models, with layouts, controls, styles, themes, toasts and tooltips. |
|
|
BSGameLib.Game.ShaderCompiler
Compiles GLSL to SPIR-V at runtime for BSGameLib.Game's Vulkan renderer, with an on-disk cache, for shaders the build never saw. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.11-preview | 56 | 11/9/2026 |