HaberDashers
Role: Gameplay Programmer
Arcade Kart Racer
Simplified Physics
Launched to Steam!
UE4
57 Person Group Project
Spring 2020
For HaberDashers, I wore multiple hats from physics to gameplay to eventually Steam integration. My goal was looking for what was most needed by the team at the time to maximize potential. We were able to be the first second semester project ever at Guildhall to launch to Steam!
My Features
Kart Self Orientation
At the beginning of HaberDashers, we were given requirements to make arcade physics. The Karts shouldn’t feel like a real vehicle but more like Mario Kart. We tried out using a more physics based approach, but the Kart was too easy to flip or get in unsatisfying positions.
The Kart self orientation component fixes this problem by always keeping the kart aligned with the ground.
Calculate an average ground normal using multiple line traces
Project forward vector onto ground’s plane using the normal
Cross product of forward and ground normal gives new right vector
Interpolate to smoothly transition
Kart Speed Effector
Early on the level designers ran into the problem of their speed effects fighting each other for control. To ease their suffering I created a system that allowed them to call one function for any effect, and the component would handle all of the edge cases of overlapping speed ups, slow downs, and other physics changes.
Effect Transitions
Into
Hold
Out
Physics Changers
Max Speed
Additive and Multiplicative
Acceleration
Sliding
Turning Speed
Post Mortem
What went well
Organizing Kart team to have a solid foundation
Asking why something was needed to come up with the best solution
Always having an eye on the next problem. Moved from Kart Physics to Kart Effector to Kart Model swapping to Steam builds
What was learned
Going virtual requires pipelines to be very explicit. Grabbing the Game Designer as he walks by in person is fine, but messaging and calling him directly will stop your lead and producer from staying in the loop.
Your lead and your producer are your best allies whenever a snag is hit. They want you to succeed and will fight for you if you think there’s a problem in the game.
Communication problems will happen, but it is how you deal with them that decide if your team will succeed