mirror of
https://github.com/Heretek-AI/game-engine.git
synced 2026-11-07 10:55:58 -10:00
P7-06 user manual
The engine user manual: getting started, a tour of the editor, and the
scripting, rendering and physics guides, plus three step-by-step
tutorials. Every C# snippet in docs/manual/ is extracted by
tools/manual_snippets/ and compiled in CI — keep every snippet
compilable or the manual-snippets job fails. Rules for writing
snippets are in docs/manual/README.md under "For manual authors".
Entry points:
docs/manual/getting-started.md— install, first project, first rundocs/manual/editor-tour.md— panels, hierarchy, inspector, play modedocs/manual/scripting.md— components, systems, hot reloaddocs/manual/rendering.md— camera, lights, meshes, screenshotsdocs/manual/physics.md— bodies, colliders, raycasts, eventsdocs/manual/tutorial-hello-cube.md— tutorial 1: spinning cubedocs/manual/tutorial-marble-physics.md— tutorial 2: rolling marbledocs/manual/tutorial-scene-capture.md— tutorial 3: headless capture
For manual authors (snippet contract)
Every ```csharp fence in docs/manual/ is extracted and compiled in CI
(managed job, "Compile manual snippets"). The rules:
- One fence = one compilable member (a full method, property, or type)
or a block of top-level statements. The extractor wraps statements in
a
Run()method; members compile as-is inside a holder class. - No top-level statements mixed with member declarations in one fence;
no
namespacedeclarations, nofile-scoped anything. - Type snippets compile as nested types (the holder is a plain
class, so
public partial struct Mover : IComponentnests fine). unsafeandEngine.*references are available;System.Text.Jsoncomes transitively viaEngine.Editor. Anything else must be fully qualified (System.IO.Path,System.MathF, ...).- Instance-style methods are fine (holder is not static). Statements
using
using varare fine too — the oldusing\sregex false positive onusing varstatements is fixed with a lookahead.
Regenerate + verify locally before pushing:
dotnet run --project tools/manual_snippets/manual_snippets.csproj -c Release -- .
dotnet build tools/manual_snippets/manual_check.csproj -c Release --nologo