Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Software design document

This is the top-down design of the Kerosene engine: what it is for, how it is put together, why it is put together that way, and where it is going. It is the place to start when you need the whole picture, and the place to record a design decision so it is not lost.

It is deliberately not a second copy of the rest of the book. Each chapter states the design and the reasoning, then links to the page that holds the detail:

If you want…Read
to use the engineMaking games
a reference for one featureDocumentation
the internals of one subsystemDevnotes
Status1.0.0-a4 (alpha)
Last reviewed2026-09-30
OwnerT342
ScopeThe workspace in this repository. The demo game lives in a separate repository (kerosene-demo).

Chapters

  1. Goals and scope
  2. Design principles
  3. Architecture
  4. Runtime
  5. Data and the build pipeline
  6. World and entities
  7. Subsystems
  8. Tools
  9. Public API
  10. Quality
  11. Decision log
  12. Status and roadmap
  13. Open issues

Editing this document

  • One chapter is one file in src/sdd/. Edit it, and keep the chapter list above and in src/SUMMARY.md in step.
  • Change Last reviewed above when you review the document, not on every typo fix.
  • State a design as a rule plus a reason. A rule with no reason cannot be re-examined later.
  • Anything that must stay true of the code belongs in a check (cargo xtask layers, a test), with the chapter pointing at it. A claim only in prose drifts.
  • New decisions go in the decision log; known gaps go in open issues. Remove an issue when it is fixed.
  • Diagrams are mermaid blocks, as in the devnotes.
  • Relative links only: CI runs scripts/check-links.py over the book.

To preview: mdbook serve in the repository root.