Skip to content

Reference reading paths

References explain the ideas behind a workflow; Ludus source and tests define its actual behavior. Choose the path that matches the problem you are solving. The ordering below is a practical learning recommendation, not a claim that a book implements Ludus or that every catalogued chapter has been read.

1. Learn tool UX

David Lightbown, Designing the User Experience of Game Development Tools (CRC Press, 2015) — start with chapter 4, Analysis; chapter 5, Design; then chapter 6, Evaluation. These explain how to observe work, organize tasks and evaluate whether the resulting tool helps people complete them.

The consulted editor-design excerpts informed task-based work areas, visible boundaries and progressive disclosure. Thanks to David Lightbown for those ideas; the implementation retains Ludus's own Qt/controller/process boundaries.

Author's site · Ludus excerpt review and adaptations

2. Understand responsive tools

Graham Wihlidal, Game Engine Toolset Development (Thomson Course Technology, 2006) — chapter 37, Responsive UI During Intensive Processing, pp. 423–430. Read it when exploring progress, cancellation and background work.

Thanks to Graham Wihlidal: the consulted chapter reinforces keeping intensive work outside the UI thread. Its historical Windows Forms/exception examples are not Ludus code; Ludus uses its own supervised adapters and exception-free engine boundaries.

Author's projects · Ludus project-operation design

3. Explore document commands

Robert Nystrom, Game Programming Patterns, Command — a focused reading candidate for reversible edits and command ownership. The publisher/author's online chapter is available below. S2 will evaluate document undo and focused save routing; this recommendation does not claim those features already ship.

Read the author's Command chapter · S2 editor architecture

4. Read the build tools' own contracts

  • CMake presets: configure/build/test profiles, inheritance and selectable presets.
  • Qt Widgets: native widget/layout facilities; Ludus targets Qt 6.4-compatible APIs rather than assuming the newest documented API exists in its minimum build.
  • Emscripten filesystem: browser storage differs from desktop folders and requires explicit persistence.
  • GitHub Pages: the static artifact/deployment contract used by this documentation site.

5. Reproduce random choices

Start with the deterministic randomness guide to choose ordered PCG streams or addressed Philox samples. Its source list credits Salmon et al., O'Neill, Lemire and Vigna, plus the consulted Gems chapters on independent regeneration, playback isolation and rejection sampling.

The RNG chapter review explains which ideas were adopted or deferred and corrects claims that would otherwise mislead implementation. The guide identifies shipped APIs separately from future policies, persistence, GPU and editor work.

6. Understand platform boundaries

Start with platform targets and compatibility when writing a portability boundary or diagnosing a cross build.

David Etherton, “Designing and Maintaining Large Cross-Platform Libraries,” Game Programming Gems 4, chapter 1.4, pp. 35–41 — thanks for the guidance on sparse conditionals, centralized build rules and explicit size/byte-order facts. Ludus adapts these ideas with numeric selectors and negative compile tests, retains active-only legacy flags, and does not require a universal include.

Jason Hughes, “What to Look for When Evaluating Middleware for Integration,” Game Engine Gems 1, chapter 1, sections 1.10–1.13, pp. 10–12 — thanks for the guidance on small integration boundaries, scoped symbols and visible portability assumptions. Ludus's immutable descriptor is opt-in; its byte-order fact does not replace serialization codecs or runtime capability queries.

The consulted chapter review and adaptations records the implementation's departures. The chapters belong to the separately supplied reference library, not public wiki downloads.

Read the primary contracts alongside the design:

7. Measure time and retain stalls

Start with the high-resolution time guide for interval measurements, pause/resume, real-time deadlines and frame sampling. Its examples distinguish CPU time from simulation ticks and report discarded stall time.

The time architecture and consulted Gems review credit Noel Llopis's The Clock: Keeping Your Finger on the Pulse of the Game, Harvey/Marshall's Scheduling Game Events and John Bolton's A Basic Scheduler. The review explains the adopted value/sample ownership and the separate future scheduling contract; it makes no clock-resolution or performance-gain promise.

8. Own text and identify names

Start with strings and names and hashing for the shipped contracts. The strings chapter review records consulted sources, exact locators and adaptations.

Thanks to Stefan Reinalter, Compile-Time String Hashing in C++, Game Engine Gems 3, chapter 14, pp. 197–205, for precomputing literal metadata; Ludus keeps exact spellings and binds table-qualified IDs explicitly. Thanks to James Boer, A Flexible Text Parsing System, Game Programming Gems 2, §1.17, pp. 112–117, for compiled token dictionaries, and Jason Hughes, Pointer Patching Assets, Game Engine Gems 2, chapter 20, pp. 345–357, for packed storage inspiration. The cooker/dictionary ideas remain planned; runtime interning and freezing do not implement deterministic persistence.

The review distinguishes adopted ideas from deferred suggestions and Bloom filters. Its local PDF links are source locators in an ignored reference library, not downloadable wiki material. No chapter code is copied into the guide examples.

9. Improve procedural generation

Start with the procedural content generation design for cross-domain ownership, identity, editing and validation. The Gems and research review records actual readings; its conference and journal queue maps further reading to the P0-P5 slices and qualification gates.

Use the existing terrain generation owner for terrain-specific algorithms. Research candidates remain separate from shipped facilities and measured improvements. Follow the exact source and attribution procedure when adopting a technique.

Explore the larger local catalog

The ranked editor reading guide groups 246 catalogued articles/chapters by task and priority. Its PDF/TOC links refer to a separately supplied, ignored local reference library. They are not public wiki downloads. Use the bibliographic titles to obtain the sources through their authors, publishers or libraries; the wiki publishes original explanations and source links.

When adopting an idea, credit the exact author/title/chapter near affected code, state what was adapted, and record the detailed review. See contribution rules.