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)

EBP is this book’s shorthand. The spelled-out term - existence-based processing - is Richard Fabian’s, from Data-Oriented Design; §17 introduces it from the simulator. An acronym index will not list “EBP” because the source literature spells the term out rather than abbreviating it.

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.