Novolis.Avalonia.Gaming
2026.1.6.250
dotnet add package Novolis.Avalonia.Gaming --version 2026.1.6.250
NuGet\Install-Package Novolis.Avalonia.Gaming -Version 2026.1.6.250
<PackageReference Include="Novolis.Avalonia.Gaming" Version="2026.1.6.250" />
<PackageVersion Include="Novolis.Avalonia.Gaming" Version="2026.1.6.250" />
<PackageReference Include="Novolis.Avalonia.Gaming" />
paket add Novolis.Avalonia.Gaming --version 2026.1.6.250
#r "nuget: Novolis.Avalonia.Gaming, 2026.1.6.250"
#:package Novolis.Avalonia.Gaming@2026.1.6.250
#addin nuget:?package=Novolis.Avalonia.Gaming&version=2026.1.6.250
#tool nuget:?package=Novolis.Avalonia.Gaming&version=2026.1.6.250
Novolis.Avalonia.Gaming
Avalonia game shell for menus and HUD over Silk / Planar rendering (code-only, no XAML).
Use this when interactive UI (pause, encyclopedia, options, status strips) must sit above a GL viewport instead of being drawn into PlanarScene sprites.
Install
dotnet add package Novolis.Avalonia.Gaming
Prerequisites: Avalonia 12+, .NET 10. Novolis.Avalonia.Rendering (and thus Novolis.Rendering.Planar + Silk).
Local multi-repo iteration before GPR has the new build — keep the PackageReference and use ProjectReference mode:
pwsh -File d:\novolis\novolis-governance\build\Generate-Platform-Slnx.ps1
dotnet build d:\novolis\<consumer>\path\to\App.csproj -p:NovolisUseProjectReferences=true
Quick start
using Novolis.Avalonia.Gaming;
using Novolis.Avalonia.Rendering;
using Novolis.Rendering.Planar;
var hud = new HudStrip();
hud.SetTexts("WEEK 13", "9280 | 60 | 200", "ENCYCLOPEDIA");
var shell = GameShell.CreateWithPlanar(hud); // HardPause by default
shell.PlanarViewport!.Scene = new PlanarScene();
shell.PlanarViewport.FrameUpdating += (_, e) =>
{
if (!shell.ShouldAdvanceSimulation())
return;
// advance sim with e.DeltaSeconds
};
// Blocking menu — freezes sim under HardPause
shell.ShowModal(new TextBlock { Text = "Paused", FontSize = 24 });
window.Content = shell;
Headless / autopilot:
shell.PauseMode = GamePauseMode.RunAlways;
API
| Type | Role |
|---|---|
GameShell |
Viewport + HUD + modal layers; ShouldAdvanceSimulation() |
GamePauseMode |
HardPause (human session default) / RunAlways |
GameSimGate |
Pure tick gate (unit-testable) |
HudStrip |
Left / center / right status row |
ModalMenuHost |
Dimmed menu overlay (Escape / outside click → dismiss) |
Boundaries
| Package | Role |
|---|---|
Novolis.Avalonia.Rendering |
GL hosts only (PlanarSceneControl, CPU frames) |
Novolis.Avalonia.Gaming |
Avalonia chrome over those hosts |
Novolis.Avalonia.Studio |
Editor chrome (status/flash/busy) — not game loops |
Novolis.Avalonia.Briefing |
Post-run scorecards / feeds |
Game / campaign domain (Rebellion windows, Calypso captain copy) stays in the app. This package is host plumbing only.
Windows OpenGL
Same as Rendering — prefer WGL so OpenGlControlBase initializes:
appBuilder.UsePlatformDetect()
.With(new Win32PlatformOptions { RenderingMode = [Win32RenderingMode.Wgl] });
| 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
- Avalonia (>= 12.1.4)
- Novolis.Avalonia.Rendering (>= 2026.1.6.250)
- Novolis.Math.Geometry (>= 2026.1.1.61)
- Novolis.Rendering.Planar (>= 2026.1.1.86)
- Novolis.Rendering.Presentation.Abstractions (>= 2026.1.1.86)
- Novolis.Silk.Runtime (>= 2026.1.1.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.6.250 | 83 | 10/25/2026 |
| 2026.1.6.249 | 91 | 10/21/2026 |
| 2026.1.6.248 | 101 | 10/19/2026 |
| 2026.1.6.247 | 92 | 10/18/2026 |
| 2026.1.6.244 | 100 | 10/18/2026 |
| 2026.1.6.243 | 91 | 10/18/2026 |
| 2026.1.6.242 | 85 | 10/18/2026 |
| 2026.1.6.241 | 91 | 10/18/2026 |
| 2026.1.6.240 | 90 | 10/12/2026 |
| 2026.1.6.230 | 98 | 10/6/2026 |
| 2026.1.6.229 | 99 | 10/4/2026 |
| 2026.1.6.228 | 98 | 10/4/2026 |
| 2026.1.6.226 | 99 | 10/4/2026 |
| 2026.1.6.221 | 91 | 10/4/2026 |
| 2026.1.6.220 | 99 | 10/3/2026 |
| 2026.1.6.218 | 100 | 10/3/2026 |
| 2026.1.6.196 | 94 | 10/2/2026 |
| 2026.1.6.195 | 93 | 10/2/2026 |
| 2026.1.6.194 | 97 | 10/1/2026 |
| 2026.1.6.192 | 105 | 9/30/2026 |