First roll: the walking skeleton
The game is now a game: a ball you can steer around a test arena, with rolling, jumping, a chase camera and a goal flag.
In plain words
The game is now a game: a ball you steer around a colourful test arena, with rolling, jumping, a chase camera, and a goal flag that celebrates and restarts when you reach it. It's deliberately ugly — grey-box shapes stand in for real art — because the point of week one is proving the whole chain works end to end: code, physics, camera, controls, win condition, and the automated build that wraps it all up for download.
Under the hood
The W1 "walking skeleton" (backlog epic E1), all in the C++ GDExtension:
- PlayerBall: torque-driven rolling with camera-relative input, air steering, a ray-checked jump, a speed clamp, and a temporary kill-Z respawn. Rolling a sphere with torque (rather than sliding a capsule) keeps momentum physical — the design pillar is "movement must feel great before anything else ships," and that starts with real angular physics.
- Follow camera, input map covering keyboard + gamepad with touch stubbed for the eventual Android build, stepped greybox platforms, and a goal flag that wins and reloads the scene.
- Verified the boring-but-vital way: local linux build green, exported game
boots headless with the scene loading and zero script errors — and this
was the first build to pass
check_pinswith noALLOW_UNPINNEDescape hatch. - Sibling QoL: a small helper script pulls the newest green CI artifacts
into
dist/ready-to-run, deriving the GitLab project from the origin remote so the script stays template-portable.
Next up on the honesty front: the exported game booted headless everywhere, but actually rendering on real machines turned out to be its own adventure — that post is coming.