novolis-raylib / getting-started.md
Getting started with Novolis.Raylib
Raylib 6 for modern .NET
dotnetraylibgamedevnovolis
Novolis.Raylib is a multi-package .NET 10 binding for raylib 6 and raygui.
Install
dotnet add package Novolis.RaylibFor test projects:
dotnet add package Novolis.Raylib.TestingPick an entry API
flowchart TB
install[Novolis.Raylib]
game[RayGame.Run]
host[IHost + systems]
shell[RaylibRuntimeShell]
install --> game
install --> host
install --> shell| Use case | API | Sample |
|---|---|---|
| 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:
Graphics.BeginDrawing()- Optional 3D:
World.Begin(camera)…World.End() - Optional 2D overlay:
Hud.* - Optional UI:
Gui.*(raygui, UTF-8) Graphics.EndDrawing()
Headless and CI
| Variable | Effect |
|---|---|
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.