Bryce Lindsey

Half Life Inspired Movement Game Prototype

This is a movement game I am currently working on in Godot. The game is inspired by movement of source games like Counter Strike, Half Life, Portal, etc. I am making the game solo and so it is relatively small in scope but it is essentially an obsticle course style game where the player uses bhopping, surfing, airstrafing and certain abilities like wall running and dashing to get to the end of the level as fast as possible.

Process

This project began as an experiment to replicate the satisfying movement mechanics found in games like Counter-Strike: Global Offensive KZ maps and Half-Life. My goal was to recreate the core feel of Source engine movement — bunny hopping, surfing, air-strafing — within the Godot engine from scratch. I started with basic player physics and gradually layered in each mechanic, testing constantly to ensure they felt smooth and intuitive. From there, I implemented bunny hopping and surfing mechanics, tweaking acceleration, friction, and gravity, etc. until the movement felt fluid and reactive. To keep the codebase flexible for future mechanics like wall running, dashing, and gliding, I created a finite state machine to handle movement transitions cleanly. The project is still ongoing, but the foundation is solid and scalable for adding more advanced mechanics.

Photo of surfing mechanics

What I learned

This was my first project using the Godot engine, and it has helped me get comfortable with its workflow, scripting language (GDScript), and overall scene/node system. Early on, I focused on learning how to structure a 3D project and how Godot handles input, physics, and custom movement — especially compared to other engines I've used. While the movement system is still evolving, this project gave me a chance to apply concepts I learned from working on a separate Roblox game, especially around code organization. I brought over the idea of using a finite state machine to keep my movement code modular and clean, which has made it easier to expand and experiment with mechanics like wall-running and dashing. I also starting learning some project management tools like Trello and Miro to keep my project on track. Overall, it's been a solid starting point for learning Godot through hands-on development, and it's given me a better sense of how I'd structure future gameplay systems in the engine.

Photo of source movement test

Documentation

Current GDD

View PDF