Skip to content

Controls

Movement and actions

Keys Action
W A S D Move
Mouse Look
Up / Down Move forward / back
Left / Right Turn
Shift Run (drains stamina)
F Light or douse the lantern

The arrow keys turn and move on their own, so the game is playable without a mouse.

Keys Title screen Playing Paused End screens
Enter or Space Start Resume Play again
Esc or P Quit Pause Resume Back to title
Q Quit Abandon run, back to title Back to title
F3 FPS counter FPS counter FPS counter FPS counter

End screens ignore input for the first second so a held key doesn't skip them.

The game also pauses on its own when the window loses focus. The mouse is captured while playing and released in every menu.

Changing bindings

Bindings are set in InputInit in src/game/input/input.HC. Each action takes a primary and an optional secondary SDL scancode:

InputBind(in, ACT_FORWARD, SC_W, SC_UP);
InputBind(in, ACT_LANTERN, SC_F);

Scancode constants live in src/runtime/platform/sdl_gl.HC. They are physical key positions, so movement stays in the WASD position on AZERTY keyboards (where those keys are labelled Z, Q, S, D). There is no in-game rebinding menu yet.

Mouse sensitivity is MOUSE_SENSITIVITY in src/game/world/player.HC.