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

Nomenclature

Quick reference for symbols, notation, and abbreviations the book uses. Concept definitions live in the glossary; this page covers the shorthand only.

Symbols

SymbolMeaning
§NSection number — e.g., §5 refers to section 5.
Leads to / becomes / transitions to. Appears in section titles (e.g., §29 “10K → 1M”) and prose.
[!NOTE] / [!TIP] / [!WARNING]Callout box — content the reader should pay particular attention to.

Text formatting

FormMeaning
monospaceCode: types, variable names, function names, file paths.
italicFirst definition of a term, or emphasis.
boldA term being highlighted as load-bearing in the current paragraph.

Variables you will see across chapters

VariableMeaning
i, jIndex into a table. i is the index of the row currently under discussion.
t or tickTick number — the simulator’s step counter.
idStable entity identifier (an integer).
genGeneration counter, paired with a slot index to detect stale references (§10).
pos, velPosition and velocity of a creature.
to_remove, to_insertBuffers of pending mutations applied at end-of-tick (§22).

Rust types used in code

TypeWhat it is
Vec<T>Heap-allocated, growable array of T. The book’s “table.”
&[T]Read-only borrow of a contiguous slice.
&mut [T]Mutable borrow of a contiguous slice.
usizePointer-sized unsigned integer. Used for table indices.
u8 / u16 / u32 / u64Unsigned integers, sized in bits.
f32 / f6432-bit and 64-bit floats.

Abbreviations

AcronymExpanded
ECSEntity-Component-Systems
EBPExistence-Based Processing
DODData-Oriented Design
SoAStructure of Arrays — each field is its own column.
AoSArray of Structures — each row is its own struct.
DAGDirected Acyclic Graph
IOPSI/O Operations Per Second
TDDTest-Driven Development
LRULeast Recently Used (cache eviction policy)

Naming in code

  • snake_case for variables, functions, fields.
  • PascalCase for types and traits.
  • SCREAMING_SNAKE for constants.
  • File names mirror their dominant content: creatures.rs defines the creature table, motion.rs the motion system.