top of page

Goosthetic

Fast-paced action FPS game made in Unreal Engine and published on Steam, DigiPen Game Gallery

Key Points
  • Led 6 programmers, and worked alongside 4 designers, 8 artists, and 2 sound designers on an Unreal game for 18 months.

  • Enabled rapid prototyping of the player controller allowing me and the other programmers to develop it in sync.

  • Refactored 3 enemy AI behaviors via behavior trees and custom logic, making them feel threatening to players.

  • Programmed UX aspects, including material-based sound triggers and procedural animation to make the game feel good for players, and tutorial pop-ups to make it easier to understand how to play.


Gameplay Programming
  • Directed the programming team to divide the work of the player controller into separate components, allowing myself and the rest of the programming team to work on sections of the controller synchronously and without conflicts in our source control.

  • Programmed the additive momentum controller, which allowed players to gain and maintain high speeds. It was made with a soft speed limit that could be exceeded and maintained so long as the player was navigating the level without interruption, rewarding skillful play with a more thrilling experience.

  • Refactored the early versions of each enemy into their final versions. The Exploder went from simply sliding along the ground to becoming a jumpy, springy force of destruction that could catch you off-guard without reacting in time. The Turret gained idling behavior to make them less stagnant, laser sights to indicate when they were aiming at the player, and burst-shot behavior to have a better chance at posing a threat. The Dummy gained new flying behavior such that it always followed towards the player and within their line of sight so they understood when it was attacking them.


UX Programming
  • Crafted the procedural animation system for the Goosthetic in partnership with a fellow engineer and an animator. The Goosthetic was able to reel to and from a point dynamically set by the game logic, and was given organic procedural adjustments via vector offsets and sine waves to give it the feel of a sticky hand toy. This contributed significantly to players feeling like they were flying through the air with a bizarre and silly device that felt natural to use.

  • Created dynamic UI pop-ups for the controls and keybinds of the game, with variables for the UX designer to edit their animations and to ensure they pop up only when absolutely necessary. Players were able to learn how to play the game significantly better with these pop-ups.

  • Developed material-based footstep sound triggers in conjunction with the audio designers by assigning materials to every walkable surfaces (walls included) that sent messages to the Wwise system to play certain sounds, with variables to adjust how often the sounds played based on the speed of the player. Doing this grounded the experience and made players feel like they were running around a decaying laboratory.

  • Programmed dynamic UI pop-ups for the names of each area of the level and paired them with volumes the level designers could adjust the position and size of for each area and rename them according to the narrative. Adding this simple narrative/UX flair made it much easier for the player to know where they were (and when they were backtracking) and helped them understand the implied narrative.


Leadership
  • Led a team of 6 programmers. This included having regular meetings to discuss progress, revisit the production timeline, and perform code reviews; managing the technical direction of the project, from how the engine and version control were used to file naming conventions; and facilitating cross-discipline collaboration between the programmers and the people on the team they were helping.

  • Regularly worked with the rest of the disciplines to ensure the project was going smoothly. This included participating in regular lead meetings; brainstorming how to reduce scope and maximize the best aspects of the game with production; and pairs programming with anyone who was working on features I was helping to implement.

  • Made sure to consistently communicate with the instructors with the progress of technical aspects of the game as often as possible, and asking them for help and advice when needed.


Professional Growth
  • This is without a doubt the best team I had worked with up to this point. The progress we made on an ambitious idea was incredible, and the mutual appreciation for each other and our work was wonderful for both morale and development. I want to do my part in replicating the social dynamics of this team and the attitudes towards game development we had whenever possible, by bringing the lessons in cross-discipline communication to my future projects.

  • Unreal is a beast of an engine, and using it for the first time and learning the ins and outs of it through trial-and-error was valuable. I also understand its many quirks and oddities, and would have structured the project and future projects I do in the engine very differently to unlock its potential.

  • Version control management turns out to be much more important when projects get larger than 5 people, let alone over 20. Given the many issues we faced with file sharing and locking over the course of the project, I learned how pertinent it is to establish a technical project structure quickly and adhere to it strictly, such that it doesn't inhibit both synchronous and asynchronous progress.

bottom of page