Parkour Benchmark — Kimi 3

Shared · Updated

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.
Kimi K3·

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.

Todos
  • ●Inspect GLB asset dimensions (blocks, characters, flags)
  • ○Set up project settings: main scene, input map, window
  • ○Create player controller + third-person camera
  • ○Create bot AI (waypoint-following racer)
  • ○Build race data + world builder (hub + 3 courses)
  • ○Race manager: start gates, timer, results, best times
  • ○HUD: timer, position, countdown, results panel
  • ○Playtest, verify all 3 races, fix issues
  • ○Polish: decorations, labels, arrows, fences

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.

Error

Ziva couldn't finish this request.

Ziva reported: The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()

continue
Kimi K3·
Work failed
Error

Ziva couldn't finish this request.

Ziva reported: The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()

continue
Kimi K3·
Continue — the editor is back up, keep going.
Kimi K3·

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.

The World

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.

The 3 Races

  • Race 1 — Meadow Dash (EASY, grass, ~98m): wide runway, small gaps, stairs, a gentle slalom, and a turn east before the finish hill.
  • Race 2 — Glacier Climb (MEDIUM, snow, ~88m): climbs to y=6, a 1-wide snow bridge, slalom, a 3m plunge, a narrow beam crossing.
  • Race 3 — Skyline Gauntlet (HARD, grass, ~111m): precision 1×1 landings, wide slaloms, 1-wide stairs, narrow beams, and a 3m gap.

How Racing Works

  • Walk into any gate → 3-2-1-GO countdown → you and 3 bots (Bolt, Dash, Ziggy — with floating name tags) race the same course.
  • Bots use real physics + waypoint AI (they jump gaps via an edge-detection raycast, climb stairs, and recover from falls) — all three were verified to finish every course.
  • Live HUD: timer, your position (1st–4th), and a standings panel with progress %.
  • Cross the finish → results panel ranking everyone by time (unfinished bots get projected "~" times), NEW BEST detection with best times saved to disk and shown on gate labels.
  • ENTER returns to the hub, R instantly restarts the race; falling respawns you at the start line while the clock keeps running.

Controls

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
Kimi K3·

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.

Final state of the game

ParkourBenchmark — a 3D parkour time-trial game vs bots, built 100% from the Kenney Platformer Kit (~1,450 lines across 8 scripts + 4 scenes):

PieceWhat it does
main.tscnWorld root: sky/fog environment, sun with shadows, cloud sea, player, HUD
world.gdBuilds hub + courses at runtime, runs the race state machine, saves best times
course_builder.gdTurtle-style track builder (flat/gap/step_up/slalom/turn/bridge/drop) that emits geometry, bot waypoints + jump flags, and arrow signs
races.gdThe 3 course definitions (Meadow Dash 98m, Glacier Climb 88m, Skyline Gauntlet 111m)
player.gdThird-person controller — coyote time, jump buffer, orbit camera
bot.gdWaypoint racer AI — real physics, edge-raycast gap jumps, ledge jumps, stuck/fall failsafes
hud.gdTimer, live standings, countdown, results panel, hints — all outlined for readability

Verified via live playtests (all sessions error-free):

  • ✅ Walk into any of the 3 gates → countdown → race starts
  • ✅ All 3 bots finish all 3 courses (FIN confirmed on each)
  • ✅ Finish → ranked results with projected bot times + NEW BEST, saved to user://parkour_best.cfg and shown on gate labels
  • ✅ ENTER returns to hub, R restarts mid-race (verified resetting timer + countdown)
  • ✅ Falls respawn you at the start line mid-race with the clock running
  • ✅ Player physics is fair for every obstacle (7m jump range vs ≤3m gaps, 2m jump height vs 1m steps)

To 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
Kimi K3·