top of page

DISASTER GOLF

Game Development Senior Capstone Project
9 Months | Aug. 2021 - May 2022
Launched Jan. 23, 2024

DESCRIPTION

    Disaster Golf is a fast paced golf game where players use disasters as clubs. I was one of approx. 30 members on the team and acted as one of its engineers with a focus on UI and Tools.

    My biggest strength in this project was my ability to rapidly adapt to new tasks. I was frequently moved around the team to relieve code-based blockers that manifested during development.

    Working in the UI team, I touched nearly every UI element and ensured reliability and usability. I also redesigned the tutorial levels when that task was left unassigned.

    I was tasked with creating tools for our team's Level Designers. Creating an easy to use asset spawner, the Level Designers quickly built new levels.

Responsibilities

  • Created and maintained level tools.

  • Created the initial art pipeline.

  • Coded the tutorial.

  • Implemented various UI elements.

  • Advised other programmers for UI.

  • Dialogue system [CUT].

  • Dedicated bug fixer.

  • Was available to assist other sub-teams.

  • Reworked tutorial design.

  • Playtested game weekly.

  • Experimented with gameplay to find interesting interactions.

Engineering Skills Learned

  • Compartmentalizing data.

  • Working with pipelines on a large project.

  • Working with GitHub on a large team.

  • Thoroughness with code comments.

  • Reading and implementing design docs.

  • Reading and debugging others' code.

  • Utilizing existing documentation to quickly learn new systems.

  • Writing documentation for systems.

  • Estimating time and complexity of tasks.

  • Following up on completed systems for feedback.

Design Skills Learned

  • Working with Agile Development over an extended period.

  • Communicating on a large team of mixed disciplines.

  • Processing feedback from multiple, sometimes competing voices.

  • Thinking from players' perspective.

  • Iterating with limited resources.

  • Utilizing Jira with a dedicated producer.

  • Broking down core gameplay into teachable steps.

  • Scrapping work that didn't work.

Engineering

Compartmentalizing Data

  • Working with UI department, data kept needing to be repeated and managed, so compartmentalizing data became vital.

  • After details like a Disaster's name and icon were compartmentalized, they could be edited in one place. It was easy to update UI to read and load this new format.

  • This streamlined the pipeline for updating Disaster information throughout the UI and was expanded to other areas, such as level select.

DG UI Loader.PNG

Click to view in a higher resolution

Tools.png

Click to view in a higher resolution

Level Tools

  • I developed two tools for the Level Designers, the Object Spawner and Object Modifier.

  • The Object Spawner scanned assets folders with keywords to sort all complete assets. They found it easy to navigate and never used an unprepared object by accident.
  • The Object Modifier was an interface to modify to objects. It organized Unity's functionality into a form the Level Designers found easier to use.
  • These tools allowed our Level Designers to rapidly build levels and the increased productivity let our level scope to expand.
  • I entered this project with no experience creating tools. Researching tutorials and documentation, I delivered these tools in two weeks.

Dialogue

  • We wanted to expand player communication and flavor with narration, especially in the tutorial.

  • I was tasked with preparing the dialogue player for the game, handling both its audio and subtitle implementation.
  • The dialogue was wanted for scripted moments and random moments, so I ensured it was flexible to handle both scenarios.
  • Although the system was feature complete, it was cut due to other complications. While my effort was scrapped, I was glad the decision bettered the game.
Dialogue System.png

Click to view in a higher resolution

Level Select.PNG

Click to view in a higher resolution

UI Development

  • I was one of 4 total engineers who worked on the UI team.
  • I often completed my tasks with spare time so I lend my assistance to others on the UI team, often debugging or taking backlogged tasks.
  • With multiple programmers working on UI, I had to learn to quickly read other's code to continue my work.
  • When I was allowed to restructure the level select screen to the left, I compartmentalized it so it'd be easier to add more. This proved profitable as more levels were added after I left the project.

Golf Hole

  • No golf game is complete without a proper hole! It was decided to make the hole via code to allow for rapid level iteration.
  • This was my first time working with Unity physics layers and render ordering in depth and needed to research solutions.
  • A combination of changing physics layers and special shaders allowed it to carve out a spot in any terrain it was placed on.
  • This task taught me a lot about how to understand an engine and utilizing its documentation.
Hole.PNG

Click to view in a higher resolution

Design

Tutorial Layout

  • Our game's tutorial was mistakenly created too early during development and kept being left behind. I decided to take up the task of reworking them before the task became out of scope.

  • The main constraint was that levels couldn't undergo any major layout changes so I had to get creative with what we had.

  • Some changes included reversing the level direction, using parts from other levels, and changing the tutorial order.

  • The hardest to change was the Combo Tutorial where the ball must cross a gab via comboing Disasters. The gap was either too big or too small and was either too hard or skippable.

  • My solution was to add a freeze frame part way through and wait for the player to combo with Lightning. This ensured the player engaged with the concept without any difficulty.

Hover to grow video

Hippos.PNG

Click to view in a higher resolution

Hippos

  • While working with another department, I worked with the Hazards team to implement the hippos!

  • I worked closely with the designers on the hazards team to ensure that what I made fit their specifications.

  • Aside from following directions, I also offered additional options that revealed themselves during the implementation that the designers utilized.

  • This was the first time I worked with a pure designer. It took some adjusting to adapt to the difference in language but I was able to manage and code these wonderful hippos.

UI Design

  • While working on UI, I was given the chance to add input to the UI design.

  • I did my best to maintain the consistency of the UI, learning to mimic our UI lead's design style when preparing menus.

  • I influenced the Disaster Help menu the most, assisting with the spacing and designing the "Expanded View" screen.

  • I made sure not to overstep my role. I consistently stayed in contact with the UI team and ensured they knew changes I made, could give any feedback, and grant or deny approval.

Help Menu.PNG

Click to view in a higher resolution

bottom of page