Novolis Docs
novolis-raylib / getting-started.md

Getting started with Novolis.Raylib

dotnetraylibgamedevnovolis

Novolis.Raylib is a multi-package .NET 10 binding for raylib 6 and raygui.

Install

dotnet add package Novolis.Raylib

For test projects:

dotnet add package Novolis.Raylib.Testing

Pick an entry API

flowchart TB
  install[Novolis.Raylib]
  game[RayGame.Run]
  host[IHost + systems]
  shell[RaylibRuntimeShell]
  install --> game
  install --> host
  install --> shell
Use caseAPISample
Jam / prototype`Novolis.Raylib.Game` → `RayGame.Run``novolis-dogfooding/apps/raylib/HelloGame`
DI / phased loop`Novolis.Raylib.Hosting` → `AddRaylib`, `IRenderSystem``novolis-dogfooding/apps/raylib/HelloHosting`
Low-level control`Graphics`, `World`, `Hud`, `Gui``novolis-dogfooding/apps/raylib/HelloRuntime`
Automated tests`Novolis.Raylib.Testing``novolis-dogfooding/apps/raylib/HelloTesting`
Frame streaming / clips`Novolis.Raylib.Capture` (optional)`novolis-dogfooding/apps/raylib/HelloCapture`
Full 3D cockpit demo`Novolis.Raylib.Game``novolis-dogfooding/apps/raylib/XFighter`

Do not add direct package references to Novolis.Raylib.Native or Novolis.Raylib.Abstractions unless you extend the stack.

Drawing model

Within one frame:

  1. Graphics.BeginDrawing()
  2. Optional 3D: World.Begin(camera)World.End()
  3. Optional 2D overlay: Hud.*
  4. Optional UI: Gui.* (raygui, UTF-8)
  5. Graphics.EndDrawing()

Headless and CI

VariableEffect
`NOVOLIS_RAYLIB_HEADLESS=1`Skip blocking window loop
`NOVOLIS_RAYLIB_OFFSCREEN_TESTS=1`Enable test harness
`NOVOLIS_RAYLIB_NATIVE_TESTS=1`Load native DLLs in tests

Learn raylib concepts

Façade methods map to raylib C APIs. When you need parameter semantics, use the raylib cheatsheet and raylib wiki.

Package READMEs

Maintainers: codegen.md, testing.md.