Novolis Docs
novolis-governance / gameengine-reference-policy.md

Frank.GameEngine reference policy

dotnetgovernancenovolis

Governs how Frank.GameEngine relates to Novolis graphics and simulation repos.

Decision (locked)

  • Primary graphics path: novolis-raylib → Novolis.Raylib.* per raylib ecosystem spec.
  • Frank.GameEngine: active selective mining — no bulk migration; personal repo stays unarchived.

Rationale

FactorFrank.GameEngineNovolis.Raylib
Graphics couplingMultiple renderers (RayLib, MonoGame, Experimental)Single focused Raylib stack
Packaging11+ engine packages, 0.3.x releasesCurated aggregate + facets
Strategic fitGeneral engine (ECS-adjacent)Platform infra + progressive complexity
OverlapFrank.GameEngine.Rendering.RayLib duplicates raylib binding workCanonical for Novolis games

Do not migrate

Frank package / areaReason
Frank.GameEngine.Rendering.RayLibSuperseded by Novolis.Raylib
Frank.GameEngine.Rendering.MonoGameOut of scope unless Novolis adds MonoGame lane
Frank.GameEngine.Rendering.ExperimentalUnstable
Frank.GameEngine.CoreOrchestrates rendering stack — rebuild under Novolis if needed
Samples / AppHostStay on personal repo

Migrated (wave 7)

Frank sourceNovolis packageRepo
Frank.GameEngine.Primitives/SubPrimitives/*Novolis.Math.Arraysnovolis-math
Geometry subset (Polygon, TriangleMesh, transforms, cameras, …)Novolis.Math.Geometrynovolis-math
Dogfood-grown occupancy / view controllersNovolis.Simulation.*novolis-simulation (see simulation-layer-policy.md)

Brief: extraction-briefs/wave-7-gameengine-math.md

May mine later (with issue + review)

Renderer-agnostic modules may inform `novolis-physics`, `novolis-raylib`, or `novolis-math` only if:

  1. No dependency on Frank.GameEngine.Rendering.*
  2. Clear Novolis API redesign (not copy-paste)
  3. Tests ported or rewritten
  4. Documented in an extraction brief
ModuleCandidate Novolis homeCondition
Frank.GameEngine.Physicsnovolis-physics or game2D facetScene/GameObject model — redesign required
Frank.GameEngine.Assets (ObjHelper)novolis-raylibWave 7b after geometry ships
Frank.GameEngine.InputNovolis.Raylib or hostingPrefer Raylib input path first
Frank.GameEngine.AudioDeferPlatform-specific
GameObject, Scene, Scene2DStay in Frank.GameEngineEngine graph, not math

Personal repo README (partial migration — do not archive)

> **Partially on Novolis:** `Novolis.Math.Arrays` and `Novolis.Math.Geometry` live in [novolis-math](https://github.com/Novolis-Platform/novolis-math).
> Graphics: use [Novolis.Raylib](https://github.com/Novolis-Platform/novolis-raylib). This repo remains the home for samples, engine core, and unmigrated code.

Distinct from HexGame

HexGame is a personal architecture specification (authoritative core + adapters). It is not Frank.GameEngine and is not a Novolis package family. Do not migrate HexGame NuGet into the platform or invent a GameKit umbrella. Composition guidance: hexgame-authoritative-core.md. Frank.GameEngine remains selective mining into Math / Physics / Raylib / Simulation per this policy.

Related