This is my Final Degree Project that I worked on during my last year at university. The objective of this project was to develop a multi-genre third-person character controller that has different presets for various game genres and can also be modified by the user in order to adapt better to the needs of their prototype. To do so, different game genres that use a Third-Person Character Controller were researched and analyzed to determine their main characteristics and find out what affects each genre's game feel.
After completing Bubble Heights, I became increasingly interested in the design of character controllers across different game genres. I noticed that many of my classmates, especially those without a strong programming background, struggled to find reliable, flexible character controllers that could be easily integrated into their projects.
To address this, I developed a modular Unity package featuring a fully customizable 3D character controller, built entirely from scratch. The system is physics-based and supports a wide range of gameplay scenarios, with exposed variables for fine-tuning speed, gravity, acceleration, jump dynamics, damping, and more, making it accessible for both designers and non-programmers. It includes full animation integration, allowing for smooth, reactive transitions tied directly to character movement.
The package comes with three pre-configured presets: Third-Person Shooter, 3D Platformer, and Adventure, each tailored to common gameplay needs and ready to use out of the box.
The presets had some common mechanics, such as movement and jump, but each preset also had custom mechanics.
Third-Person Shooter: aiming, shooting, crouching.
3D Platformer: crouching, apex jump, double jump, dash.
Adventure: gliding and climbing.
Throughout development, I placed a strong emphasis on game feel, using Steve Swink’s Game Feel: A Game Designer’s Guide to Virtual Sensation as a core reference, alongside practical analysis of games like Lil Gator Game for a 3D platformer reference, Mass Effect 3 for a third-person shooter, A Short Hike, and Stray for adventure. This influenced not only how the character moved, but how the camera behaved, how feedback was delivered, and how responsive the controls felt in moment-to-moment play.
I also tested the system with potential users, including designers and students with limited programming experience, to evaluate usability, gather feedback, and refine movement behavior. This iterative feedback loop helped ensure the controller delivered both technical flexibility and a strong player-facing feel.