Novolis.Avalonia.Gaming
2026.1.6.263
dotnet add package Novolis.Avalonia.Gaming --version 2026.1.6.263
NuGet\Install-Package Novolis.Avalonia.Gaming -Version 2026.1.6.263
<PackageReference Include="Novolis.Avalonia.Gaming" Version="2026.1.6.263" />
<PackageVersion Include="Novolis.Avalonia.Gaming" Version="2026.1.6.263" />
<PackageReference Include="Novolis.Avalonia.Gaming" />
paket add Novolis.Avalonia.Gaming --version 2026.1.6.263
#r "nuget: Novolis.Avalonia.Gaming, 2026.1.6.263"
#:package Novolis.Avalonia.Gaming@2026.1.6.263
#addin nuget:?package=Novolis.Avalonia.Gaming&version=2026.1.6.263
#tool nuget:?package=Novolis.Avalonia.Gaming&version=2026.1.6.263
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.263)
- Novolis.Math.Geometry (>= 2026.1.1.68)
- Novolis.Rendering.Planar (>= 2026.1.1.104)
- Novolis.Rendering.Presentation.Abstractions (>= 2026.1.1.104)
- Novolis.Silk.Runtime (>= 2026.1.1.30)
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.263 | 76 | 11/10/2026 |
| 2026.1.6.262 | 74 | 11/10/2026 |
| 2026.1.6.260 | 76 | 11/10/2026 |
| 2026.1.6.259 | 93 | 11/9/2026 |
| 2026.1.6.253 | 84 | 11/9/2026 |
| 2026.1.6.252 | 87 | 11/8/2026 |
| 2026.1.6.250 | 113 | 10/25/2026 |
| 2026.1.6.249 | 102 | 10/21/2026 |
| 2026.1.6.248 | 111 | 10/19/2026 |
| 2026.1.6.247 | 97 | 10/18/2026 |
| 2026.1.6.244 | 111 | 10/18/2026 |
| 2026.1.6.243 | 99 | 10/18/2026 |
| 2026.1.6.242 | 92 | 10/18/2026 |
| 2026.1.6.241 | 98 | 10/18/2026 |
| 2026.1.6.240 | 95 | 10/12/2026 |
| 2026.1.6.230 | 103 | 10/6/2026 |
| 2026.1.6.229 | 103 | 10/4/2026 |
| 2026.1.6.228 | 104 | 10/4/2026 |
| 2026.1.6.226 | 105 | 10/4/2026 |
| 2026.1.6.221 | 100 | 10/4/2026 |