A WIP parkour game featuring procedural animations and a replay system. Powered by Godot 4.
The following player states (moves) are currently implemented:
- Idle
- Animations and feet placement adapt to floor shape.
- When standing near walls the player character will touch them :3.
- Moving
- Automatically blends between a walking and a running animation based on player velocity.
- Fall protection when walking near a ledge.
- Stepping
- While moving, automatically step over small obstacles.
- Grinding
- The player will grind to a halt when exiting the running state.
- One of the legs will be selected as the leading one, based on the camera angle and movement direction.
- Jumping
- Falling
- Crane
- Triggered when landing on the edge of an obstacle.
- Vaulting
- Vault over thin obstacles.
- Vault onto elevated surfaces.
- Landing. The landing type is determined based on the player velocity and input.
- Soft
- Hold the
crouchkey to perform a safety tap to absorb vertical velocity.
- Hold the
- Roll
- Tap the
crouchkey just before landing to perform a roll (must have high vertical velocity).
- Tap the
- Harsh
- Don't press anything to slam into the ground and break a few bones.
- Soft
- Sliding
- Slide under obstacles and down slopes.
- Slide speed and duration depends on the surface steepness and material.
- Crouching
- Crawling
- Crawl on uneven terrain and over gaps.
- Ledge Grab
- Move forward while falling to grab onto nearby ledges. Afterwards the player will enter one of 4 states:
- Cat Hang
- Selected when a vertical surface is found underneath the ledge.
- Allows turning around and jumping away from the ledge.
- Allows climbing up onto/over the ledge.
- Hanging
- A fallback state, selected when there's no suitable surface to place feet on.
- Hanging (recovering)
- Selected when the player has too much vertical momentum. After a few seconds switches to Cat Hang or Hanging.
- Falling
- At extreme velocities, the player will take damage and keep falling.
- Cat Hang
- Move forward while falling to grab onto nearby ledges. Afterwards the player will enter one of 4 states:
- Tic Tac
- Bounce off walls and clear short obstacles.
- Break Through
- Smash through doors.
Some states have missing or incomplete animations. There are also bugs. LOTS OF BUGS.
The replay system allows recording your gameplay and playing it back. Check the Controls section below for current keybinds. The frames of the replay are recorded at the end of each PhysicsProcess event (at 60 tps). What is recorded:
- Player model state
- Camera transform
- Player properties (velocity, position etc.)
- Debug information (player state info, animation values, raycast data etc.)
- Game information (framerate, C# exceptions, frame count etc.)
Two types of replays are available: standard and debug. Standard replays can be recorded by pressing the key, specified in the controls section. After the recording is finished, you will be prompted to save the recording to a file. You can then view recorded replays. Debug replay functions similarly to the Replay Buffer feature found in OBS. The recording is always running in the background and stores last 30 seconds of gameplay. After watching the debug replay the buffer is cleared.
- Exit replay player button
- Copy all caught exceptions to clipboard button
Debug Overlayelements- Replay player model
- Replay progress bar
- Pause/Resume button
- Current replay time
- Current replay frame
- Camera mode toggle
- Debug options dropdown menu
- total replay frames
- Total replay duration
- Hold
W/A/S/Dto move (run/walk). - Press
Altto toggle the ability to run (on by default). - Press
Spaceto jump.- Hold
Wand jump towards a low obstacle to vault over it.
- Hold
- While falling:
- Hold
Wwhen in front of a ledge to ledge grab. - Hold
Wwhen above a ledge to do a crane. - Hold
Ctrlto do a soft landing.- Alternatively, press
Ctrljust before landing to do a roll (only activates when the vertical velocity is high enough).
- Alternatively, press
- Hold
- While in a cat hang:
- Press
Spaceto climb up.- Press
Spaceagain while climbing up to queue a vault over move (if there's enough room on the other side).
- Press
- Press
Ctrlto let go. - Turn around and press
Spaceto do a wall jump.
- Press
- While hanging:
- Press
Ctrlto let go.
- Press
- Hold
Ctrlwhile standing still/walking to crouch. When crouched:- Hold
W/A/S/Dto crawl. - Double tap
Wto do a roll.
- Hold
- Hold
Ctrlwhile running to slide.- Release
Ctrlto stand up early. - Release
Wto stop.
- Release
- In order to perform a tic tac:
- Hold
Wand move parallel to (or slightly towards) a wall. - Press
Spaceto jump. - While in the air, tap
AorDto move diagonally into the wall.
- Hold
- Press
LMBto break through a door. - Press
]to start recording a replay. Press again to stop and save the recording. - Press
[to open and watch a saved replay. - Press
'to watch the current debug replay. - Press
-to respawn the player. - Press
`to unlock the mouse pointer. - Press
F11to toggle fullscreen. - Press
Alt+F4or holdESCto close the game.
- Press
Spaceto pause/resume. When paused:- Press
.to go 1 frame forward. - Press
,to go 1 frame back. - Hold
RMBto control the camera.- POV mode:
- Camera control is disabled (lol).
- Orbit mode:
- Move the mouse to rotate the camera.
- Scroll wheel to zoom in/out.
- Free flight mode:
- Hold
W/A/S/Dto move the camera. - Move the mouse to rotate the camera.
- Hold
Ctrlto descend andSpaceto ascend. - Hold
Shiftto speed up andAltto slow down.
- Hold
- POV mode:
- Press
- imgui-godot (MIT)
- Linear Stairs Generator (MIT)
- Godot CSG Dev Blocks (CC0)
- NativeFileDialogSharp (Zlib)
- MessagePack-CSharp (MIT)
- BOCCHI THE ROCK! Gotoh Hitori by sjzh.hua (CC-BY-NC-4.0)





