Shared Jul 19, 2026, 5:40 AM · Updated Jul 19, 2026, 5:53 AM
Make a 3D parkour world where you compete against bots for time. There should be 3 races in the world, and you can start any of the races by walking over to their start point. Use the assets in Kenny_Platformer_Kit/ to build your world.
The project is fresh with just the Kenney Platformer Kit. Let me explore the available model formats and key assets more.
This is a substantial build. Let me set up a task list and inspect the key asset dimensions first.
Blocks are 1×1×1 m units with origin at bottom-center, characters ~0.9 m tall. Let me measure the remaining pieces I plan to use.
The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()
continue
The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()
continue
Now creating all the scripts. Batch 1: input setup, course builder, race definition, and the 3 race layouts.
Now the world builder + race manager — the core script.
Now the scene files:
Project configured. Now let me validate the course data headlessly before playtesting.
Courses build correctly (46-49 pieces each, ~90-110m paths). Now let's playtest — first a basic launch to check the hub renders properly.
The editor bridge timed out on all edits — the editor may be busy or stuck. Let me check if it's responsive with a lightweight call.
Editor is back. Re-applying the fixes:
Continue — the editor is back up, keep going.
Playtest caps at ~30s. Retrying with 28s:
All bots complete the full course cleanly. Now I'll add a temporary debug teleport to verify the finish/results flow, then remove it after.
Return-to-hub works and best times persist on gate labels. Removing the debug code now, then verifying races 2 and 3.
Now verifying Race 2 (east gate) — walk forward then right into the gate, then let the bots run the full snow course:
Restart works perfectly — "GO!" with the timer at 00:00.13, bots back at the line, and all text now has clean black outlines. Every part of the game is verified. Wrapping up:
ParkourBenchmark is done! A 3D parkour world built entirely from the Kenney Platformer Kit, where you race 3 bots against the clock across 3 courses. Press F5 to play.
A floating 32×32m grass hub (hedges, trees, flowers) floating over a cloud sea, with three flagged race gates on its edges, each with a sign, direction arrows, and a floating label showing the race name, difficulty, and your saved best time.
WASD move · mouse orbit camera · SPACE jump (with coyote time + jump buffering) · R restart race · ENTER back to hub · ESC release mouse.
One note: the world is built at runtime from data-driven course definitions (scripts/races.gd), so the editor's 3D view looks empty until you run the game — tweaking a course is just editing its builder chain, e.g. b.gap(1).flat(2).step_up(3).turn(1).
continue
Continuing with final hardening. One small polish item first: standings show placeholder text during the countdown — let me initialize them immediately when a race starts. Then I'll do a genuine player-driven run of Race 1 to prove the course is fair for a human (bots use failsafes, so their completion doesn't prove player fairness).
Timed out — too many inputs pushing past the 30s cap. Retrying with a tighter 20s window:
Everything is verified and complete. One observation from the file listing: there are orphan .uid files (level_builder.gd.uid, race_manager.gd.uid, spinner.gd.uid, etc.) with no matching scripts — leftovers from a previous attempt in this directory. They're harmless (Godot ignores them), so I left them untouched; say the word if you'd like them cleaned out.
ParkourBenchmark — a 3D parkour time-trial game vs bots, built 100% from the Kenney Platformer Kit (~1,450 lines across 8 scripts + 4 scenes):
| Piece | What it does |
|---|---|
main.tscn | World root: sky/fog environment, sun with shadows, cloud sea, player, HUD |
world.gd | Builds hub + courses at runtime, runs the race state machine, saves best times |
course_builder.gd | Turtle-style track builder (flat/gap/step_up/slalom/turn/bridge/drop) that emits geometry, bot waypoints + jump flags, and arrow signs |
races.gd | The 3 course definitions (Meadow Dash 98m, Glacier Climb 88m, Skyline Gauntlet 111m) |
player.gd | Third-person controller — coyote time, jump buffer, orbit camera |
bot.gd | Waypoint racer AI — real physics, edge-raycast gap jumps, ledge jumps, stuck/fall failsafes |
hud.gd | Timer, live standings, countdown, results panel, hints — all outlined for readability |
Verified via live playtests (all sessions error-free):
user://parkour_best.cfg and shown on gate labelsTo tweak or add a race, just edit scripts/races.gd — e.g. b.gap(1).flat(2, 2.0).slalom(4, 1.5, 3.0).turn(-1) — and adjust bot_speeds to change the difficulty.
continue