Odin & raylib · Reference
Glossary
The canonical vocabulary for this course — promoted only once a term has been used correctly.
The canonical language for this course. Lessons and reference pages use these words and no synonyms, so that a term keeps meaning exactly one thing.
A term is promoted to Terms once it has been used correctly and unprompted — the glossary records compressed understanding, not vocabulary that has merely been mentioned. Everything currently sits in Candidates, which is what a course three lessons old should look like.
Terms
Nothing promoted yet.
Candidates
Odin
Constant declaration (::):
A binding whose value exists at compile time. Procedures, types, and numbers are all
declared this way.
Avoid: Definition, alias, const
Variable declaration (:=):
A binding whose value exists at runtime, with its type inferred from the value.
Avoid: Assignment, let
Zero-initialisation:
The guarantee that every variable starts as its type’s zero value unless explicitly
declared = ---.
Avoid: Default value, null
defer:
A statement scheduled to run when the enclosing scope exits. The convention Odin uses in
place of destructors or a borrow checker.
Avoid: Cleanup hook, finally
Collection:
A named root that imports resolve against — core, base, vendor. Ships with the
compiler; not a package manager.
Avoid: Library path, module root
Array programming: Arithmetic operators applied component-wise to fixed-length arrays, with a scalar broadcast across every component. Avoid: Vector maths, SIMD
Implicit selector expression:
Writing .MEMBER where the enum type is already known from context.
Avoid: Enum shorthand, dot syntax
Pointer iteration (for &x in xs):
Ranging over a collection by pointer so that writes land in the collection. Ranging by
value yields an immutable copy.
Avoid: Mutable loop, by-ref loop
Game loop
Delta time (dt):
The duration of the previous frame in seconds. Rates are stored in per-second units and
multiplied by delta time to give per-frame amounts.
Avoid: Frame time, timestep
Edge-triggered input:
Input that is true for exactly one frame — IsKeyPressed, IsMouseButtonReleased.
Contrast with level-triggered input (IsKeyDown), true for as long as it is held.
Avoid: Just-pressed, one-shot
Related: Odin cheatsheet · raylib quick reference