The tutorial

Glossary

Every word the tutorial teaches, with the page that explains it. If a word in the engine's API docs or the book stops you, look here.

Making games

WordWhat it meansWhere
FrameOne trip round the game's loop: read the input, update, draw. About 60 a secondBefore you start
Update, drawThe game loop's two jobs: what changes, and what it looks like nowStep 1
TileOne square of a levelStep 2
StateEverything that's true right now and could changeStep 2
CommandPlain data saying what a player asks for. The one way the state changesStep 3
DeterminismThe same state and command always give the same result, on every computerStep 5
OutcomeHow a game ends: a question asked of the stateStep 4
BotA player made of codeStep 9
Record, replayA level and its commands, and playing it againStep 9
HashA short number worked out from a whole value, which changes if any of it doesStep 9
TargetA kind of machine or place a game runs: desktop, web, a handheldStep 10
GateA check that must pass before a change goes inStep 10

Shuyi

WordWhat it meansWhere
ScreenOne thing the game shows: a title, a level, a menu. Implements ScreenStep 1
StackThe screens, one on another. Only the top hears inputStep 1
TransitionWhat update answers: stay, push, pop, quitStep 1
Result, uncoveredThe value a screen hands the one below when it popsStep 6
Ctx, contextWhat a screen is given to reach everything: text, colors, saves, dataStep 1
StageWhat the game is really about, which the title startsStep 2
BasicData, BasicGameThe short path: what the engine reads from your files, and your gameStep 1
OwnThe game's own part of its dataStep 2
ViewWhat's on a screen, as plain dataStep 1
SkinWhat decides how a view or scene looksStep 2
Glyph, cell, GlyphBufferA character; one place in the grid; the whole frame of 48 by 24Step 1
Text keyA name for a line of words in en.ronStep 1
PaletteThe game's colors, by nameStep 1
ActionSomething a player can ask for, like ConfirmStep 1
KeymapThe file saying which keys give which actionsStep 1
UiAction, ActionSetThe engine's six moves; the trait for a game's own actionsStep 5
BundleThe game's files, embedded in itStep 2
Kind, format, registryWhat you want from a file; what reads it; what finds the formatStep 2
Grid kit, scene, cameraThe engine's map painter; the plain data it paints; which part is in viewStep 2
TurnRulesThe trait of a turn game's rules: check, apply, legal_commands, outcomeStep 3
HistoryThe first state and every command sinceStep 5
MenuThe engine's menu widgetStep 6
StorageWhere saves go, whatever the machineStep 7
SaveFormat, SaveHeaderA save's name and version; reading only that versionStep 7
HarnessPlays your game with no window, for testsStep 1
GameToolsWhat connects a game to the engine's toolsStep 9
SnapshotA frame as textStep 9
IdWhat says which game this is; its saves are kept under itStep 10

Rust

WordWhat it meansWhere
Compiler, CargoWhat turns code into a program; the tool that runs it for youBefore you start
Crate, workspace, dependencyA package of code; crates built together; code yours is built onStep 1
fn, calling, returningA named list of instructions; running it; what it gives back. The last value with no ;Step 1
use, ::A shortcut to a name; walking down modulesStep 1
mod, pubMaking a file part of the program; letting others use itStep 1
TypeWhat kind of thing a value isStep 1
let, let mutA name for a value; one that may changeStep 1
MacroCode ending in !, that writes code while compilingStep 1
GenericsThe <...> blanks in a type, to fill inStep 1
ClosureA small nameless function, |x| { ... }Step 1
Box, dynA value in a box; "some type with this trait"Step 2
struct, deriveNamed values grouped in one; standard abilities written for youStep 1
Option, Some, NoneMaybe a valueStep 1
&, &mutBorrowing: to look at, or to changeStep 1
implAdding functions to a typeStep 1
TraitA list of functions a type promises to haveStep 1
enumOne of a fixed list of possibilitiesStep 1
if letOpen an Option or an enum, if it matchesStep 1
const, tuple struct, arrayA fixed value; a struct with unnamed fields; a list of fixed lengthStep 2
?If this is a None or an Err, return it nowStep 2
Result, Ok, ErrA value, or what went wrongStep 2
match, for, SelfHandle every possibility; a loop; the type this impl is forStep 2
BTreeSetA set that always keeps the same orderStep 2
FloatA number with a fractional part. Never in rulesStep 2
LifetimeThe 'a: how long a borrow lastsStep 2
PanicStop the program: for what can't happenStep 2
Iterator chain.map(...).filter(...).collect()Step 3
*, _The value a reference points to; "anything else"Step 3
Ownership, cloneEach value has one owner; a copyStep 5
Range, Vec, indexing0..n; a list that can grow; list[2]Step 6
Match guardAn arm with ifStep 6
let ... elseThis must match, or else do thisStep 7
TupleValues side by side, ("n", 1)Step 8
Feature, #[cfg]An optional part of a crate; including code only if it's onStep 9