About the Project

Inspiration

The idea for "Parkour Hobo" sparked from my fascination with the BuildIt app, a tool that lets users create and share custom levels. I loved the concept of empowering players to design their own experiences, but I wanted to put my own spin on it. Instead of a generic builder, I envisioned a gritty, urban parkour game with a hobo twist, blending retro aesthetics and a unique theme of navigating cityscapes with makeshift platforms. That’s how "Parkour Hobo" was born: a mix of creative freedom and quirky, street-level adventure.

What I Learned

Building this project taught me a ton about web development and 3D programming. I dove deep into Three.js to handle the 3D rendering and animations, which was a steep learning curve coming from 2D projects. I also got hands-on with TypeScript, mastering its type system to keep the code manageable. Figuring out how to integrate a standalone Course Builder with local storage and a main game interface stretched my skills in DOM manipulation, event handling, and JSON data structuring. Most importantly, I learned resilience; restarting from scratch isn’t fun, but it’s how you grow.

How I Built It

The project splits into two main parts: the main "Parkour Hobo" game and the standalone "Course Builder" web app, both powered by vanilla TypeScript and Three.js. The game features a pixelated start menu, 3rd-person gameplay with WASD controls, and a ranking system, all tied together with a retro vibe using CSS and the 'Press Start 2P' font. The Course Builder, hosted on GitHub Pages, lets players design courses with blocks like rooftops and garbage bags, generating a JSON build code that integrates with the main game via a post system. I used Vite for fast builds and deployment, keeping everything lightweight and framework-free for maximum control.

Challenges Faced

This wasn’t a smooth ride! The Course Builder was a bug-ridden mess in its early stages; blocks wouldn’t place right, the player got stuck, and the JSON output was a nightmare to debug. I had to scrap my initial attempts multiple times, each restart a lesson in patience. Even now, as I submit just before the deadline, there are lingering bugs, like occasional drag-and-drop glitches and animation hiccups. Time was my biggest enemy, but I’ve got a solid foundation down. I’m not done yet; new features like better mobile controls and more block types are on the way, so stay tuned for updates!

Built With

Share this project:

Updates