Learning

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