Files
goldeneye-pc-port/docs/dev/M-35-PLAYTEST-CHECKLIST.md
T
James Dansereau 10b278311f docs: M-35 QoL run — review sheet, playtest checklist, options-menu plan
- M-35-QOL-REVIEW.md: per-change file:area breakdown, config keys with
  ranges/defaults, verification evidence.
- M-35-PLAYTEST-CHECKLIST.md: the human handoff — what to do, what
  correct feels like, which key tunes it. Item 0 (default-config
  regression) first.
- OPTIONS-MENU-PLAN.md: WI-3 design — recommends a port-layer fast3d 2D
  overlay over a src/ menu edit; resume checklist.

Claude-Session: https://claude.ai/code/session_01GULf6knbsqfsnW39tMr9WT
2026-09-02 01:30:01 -04:00

90 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# M-35 QoL playtest checklist
Everything on this branch is config-gated to prior behaviour, so the
**first** thing to confirm is that nothing changed with a default
`ge007.ini`. Then flip the new keys and check the feel.
Edit `data/ge007.ini` while the game is closed.
---
## 0. Regression (default config) — do first
- [ ] Delete `data/ge007.ini`, launch, quit. It rewrites with new keys:
`[Input] MouseCaptureMode = 0`, `[Game] ScreenShakeIntensity = 1`.
Existing keys keep their values.
- [ ] Play a level normally (mouse grabbed on focus, as before). Mouse look,
aim (RMB), menus — all exactly as the last build. **No behaviour change
expected at defaults.**
- [ ] Alt-tab away and back — cursor frees / re-grabs (unchanged).
## 1. Click-to-lock capture — `Input.MouseCaptureMode = 1`
- [ ] Launch. At the main menu the **OS cursor is visible and free**; moving
the mouse moves the game crosshair 1:1 (see item 3).
- [ ] Click in the window during a level → cursor hides, mouse-look engages.
- [ ] Press **ESC** during a level → cursor reappears, mouse-look stops,
you can move the pointer off the window. (ESC does *not* quit.)
- [ ] Click back in → re-locks. First click only re-locks — it must **not**
fire the weapon.
- [ ] Open the pause/watch (Start), then a front-end menu → cursor frees
automatically. Return to the stage → re-locks without a click.
- [ ] Alt-tab out mid-level → cursor frees; alt-tab back → stays free until
you click (Quake behaviour).
- **Correct feel:** exactly like Quake/Nightdive remasters — click to play,
ESC to get your cursor back.
- **Tune:** none — it's a mode toggle.
## 2. Aim sensitivity — B3
- [ ] With `Input.MouseCaptureMode` either value, hold RMB (aim mode) and
make small aiming corrections. Default is now `MouseAimSpeed = 16`
(was 25).
- **Correct feel:** you can settle the sight on a distant guard's head
without overshooting; a fast flick still crosses the screen.
- **Tune:** `Input.MouseAimSpeed` (1–100+). Up = faster. If hipfire turning
now feels faster than aiming, raise `MouseAimSpeed` or lower
`Input.MouseTurnSpeed` (default 100). `Input.AimBand` (5–40, default 20)
widens the usable stick range past the aim gate — raise it if aim feels
capped/notchy at the extremes.
- [ ] Check the D166 hipfire pitch (mouse up/down without RMB): still
proportional taps, consistent with the yaw. Tune
`Input.HipfirePitchSpeed` (default 100).
## 3. Menu pointer 1:1 — needs `Input.MouseCaptureMode = 1`
- [ ] On the mission-select grid, move the OS cursor to each of the four
**corner** level tiles — the game crosshair must reach all of them
(this is the D169 case; absolute mapping should make it exact now).
- [ ] File-select, mode-select, difficulty-select, watch menu — crosshair
tracks the OS cursor with no drift, no lag, no acceleration.
- [ ] Keyboard nav (arrows / stick) still works on every screen.
- **Correct feel:** the crosshair sits exactly under the OS pointer, like a
normal PC menu.
- **Tune:** `Input.MenuPointerSpeed` (default 100) still scales the legacy
relative path; with capture mode the absolute path ignores it. If tracking
feels off, check the window isn't a weird aspect ratio (the map assumes the
render fills the window).
- **Note:** in legacy mode (`MouseCaptureMode = 0`) the menu still uses the
D165/D169 relative estimator — 1:1 menu tracking requires capture mode.
## 4. Screen shake — `Game.ScreenShakeIntensity`
- [ ] Default `1` — explosions shake the screen exactly as before.
- [ ] Set `0` — no shake on explosions / big hits.
- [ ] Set `2`–`3` — exaggerated.
- **Correct:** `1` is indistinguishable from the current build.
---
## Single most important thing to test first
**Item 0** — confirm a default `ge007.ini` produces a build that plays
identically to `def0e0ac`. If that holds, everything else is opt-in polish.
## Known not-done (parked, see OPTIONS-MENU-PLAN.md)
- No in-game options **menu** yet — only the config file + the expanded
`config.c` API and the `Game.ScreenShakeIntensity` hook. The menu is a
port-layer overlay design, documented, not built.