Freight Hopper

Freight Hopper is a physics-based, first-person platformer with an emphasis on fast movement on top of trains. These levitating trains will travel through dangerous environments and potentially will crash sending the player flying. This project, developed by Husky Game Studio, was released 2022

Freight Hopper Steam Release

Freight Hopper, developed by Husky Game Studio, and I am the lead developer for the project. Using C# in Unity, I worked on the main features of the project like the player controller,  player abilities, and general physics. The general physics of the project are levitating trains, a complex gravity system, teleportation portals, wind, and more. However, these systems were scrapped in favor of a more polished vertical slice.

Speaking of the player controller, this was a feature I had to research thoroughly on how to get right. This meant following the advice of more talented developers, testing with our target player base, and constantly refining the system through feedback from players and developers. This was important to perfect as it is the core feature of Freight Hopper and if it wasn't perfect nothing else in the project would matter to the player.

Besides working on this core gameplay aspect, I also spent a large time making sure the project was performant. This included simplifying procedurally generated meshes, profiling existing code, and generally tweaking graphic settings. This project was inspired by Clustertruck by Landfall and one of the complaints people had of the game was the poor performance. Therefore, I made sure even someone with an old laptop could still run the game well. In some cases reducing garbage creation leads to magnitudes of difference in performance.

When working with other developers I learned a lot about the struggles of working with others, especially with our size of 10 people. For example, how does a team figure out what features to prioritize or how to go from level design to a fully fleshed-out level full of models and interactions? As a team, we combated these issues by doing weekly SCRUM meetings, white boxing levels, and dividing the project using Kanban boards. In the meantime, we all had to find a way to make time for the project as nearly all of us were full-time students at the University of Washington Bothell.