Shared · Updated
The full race flow verified end-to-end in simulation: countdown triggers on the start pad, bots run their paths, timer counts, finish produces standings, and fall-respawn works. Note the editor kept reverting my project.godot input-map edits, so the player script registers the input actions at runtime instead — this is robust regardless of project settings.
Here's what I built:
res://scenes/world.tscn (set as main scene)A central hub plaza built from Kenney grass blocks, decorated with trees, flowers, mushrooms and rocks. Three flag pads sit on the plaza edges — walk onto a flag pad to start that race (3-2-1 countdown, then GO).
Three courses, all built from the Kenney Platformer Kit with accurate trimesh collision:
player.gd): third-person CharacterBody3D with mouse-look SpringArm3D camera, WASD + Space jump, model turns to face movement.game.gd): state machine (free-roam → countdown → racing → results), race timer HUD, fall detection that respawns you at the race start (mid-race) or the hub (free roam), and auto-return to the hub after results.bot.gd): waypoint-path ghosts with hop arcs across gaps.Press Esc to release the mouse. Just hit play — you spawn in the hub with all three race pads labeled around you.