Files
gig-line/Docs/controls.md
T
zwitschi 77f1d06749 qa: package + document controls (0.1.0 release check PASS)
- Docs/controls.md: full binding table + headless input-test note.
- AGigLineHUD: draw a control legend bottom-right every frame
  (WASD move / Mouse look / Space jump / R reset / Esc pause).
- Verified on the packaged Development build: launches straight into DemoMap, no
  missing-asset or linker errors; controls text confirmed in the capture
  (bottom-right bbox 426x12 px). Evidence in Docs/release-checks.md +
  Docs/perf/0.1.0-packaged-hud-controls.png.
2026-11-08 15:22:25 +01:00

37 lines
1.3 KiB
Markdown

# Controls (`0.1.0` walkable demo)
Keyboard and mouse. The same list is shown in-game, bottom-right of the frame
(`AGigLineHUD`), and the packaged Linux build ships with these bindings.
| Action | Key | Notes |
| --- | --- | --- |
| Move forward | `W` | 4 m/s walk |
| Move back | `S` | |
| Strafe right | `D` | |
| Strafe left | `A` | |
| Look | Mouse | Captured on launch; `Escape` releases it |
| Jump | `Space` | |
| Reset to start | `R` | Returns to the grounded spawn point |
| Pause / release mouse | `Escape` | Second press resumes and recaptures the mouse |
## Notes
- Movement is relative to where you are looking (controller yaw), so the capsule
stays upright on the sloped street.
- The mouse is captured on launch, so looking works without clicking first.
`Escape` toggles the capture as part of pause.
- Bindings are Enhanced Input actions in `/Game/Input` built by
`Tools/ue_create_input_assets.py`; the mapping context is `IMC_Default`.
## Testing input without a physical keyboard
`Tools/input_test.py` injects OS-level keyboard/mouse events through a virtual
`/dev/uinput` device (see `Tools/input_emulation.py`), e.g.:
```bash
python3 Tools/input_test.py --sequence move:2,look:3
```
It drives the focused game window exactly like real hardware, which is how the
controls were regression-tested on the packaged build.