Quick Side Quests
Small builds and fast experiments
Standalone Projects
Complete systems built end to end
Under Construction
Active work currently in progress

Back to Standalone Projects

Walk in the Parkour Pathfinding

A pathfinding system that uses parkour-style movement to navigate complex environments in an engaging fashion, capable of obstacle avoidance.

A truly enjoyable pathfinding experience.

Detailed project page

Detailed

Problem Definition

Using simple randwalks or A* for platforming paths in a voxel environment led to unenjoyable or boring routes that didn't respect player engagement constraints.

Solution and Outcome

I simulated player jump constraints in sampled environments and used that state to generate procedural platforming paths in an efficient way. The resulting algorithm produced more interesting routes that respected jump feasibility and engagement considerations.

Overview of Initial Knowledge and Procedure

In essence, it is a server side plugin to generate procedural parkour. This is done by Utilizing the property of a minecraft jump that the player can travel 4 blocks horizontally from 1 block of space and 1.25 vertically to create parabola with an extra term to make it 3D. From this we obtain a volume that contains all possible jump points. We then pre calculate all possible jump points into a list for fast access so that we do not need to recalculate every time. When picking a new jump, we just sample from the list and add its local position to the last jump.

Generating and visualizing the jumps

Static sampler preview. Drag to orbit, scroll to zoom.

Class Overviews

What I Learned

General Concepts
  • Organizing large projects into sensible packages and ownership boundaries.
  • Planning features and controlling scope creep.
  • Breaking complex systems into smaller, testable components.
  • Debugging across multiple classes and async workflows.
  • Singletons, static vs non-static objects, and why object cloning matters.
  • IntelliJ run configs and hotswap workflow for rapid iteration.
  • Core linear algebra concepts including atan2.
  • JSON import, arrays, hashes, iterators, enhanced loops, and package design.
  • Input streams and try/catch error handling patterns.
API Specific
  • Building a Spigot plugin and registering commands.
  • Using interfaces and command contracts.
  • Using sound and block enums effectively.
  • Using Spigot scheduler tasks for asynchronous behavior.
  • Working with World, Player, Location, Block, and Chunk.
Tags Robotics Forestry platform Virtual pivot steering
Robotics Forestry platform Virtual pivot steering Low-impact pathing Adjustable bogey suspension
Skills Mechanical engineering Iterative design Systems testing
Mechanical engineering Automotive steering geometry Prototype instrumentation Integration testing Engineering communication