FELIX WILTON

WiltonFelix24@gmail.com

Andy's Disk Golf Game - Unreal Engine 5

Project Summary

Developed a personalized disk golf game for Andy Zosel's (my father-in-law) 50th birthday. The unlockable characters are all members of Andy's family, and their unique skills reflect their real personalities!

  • Features: Frisbee physics, unlockable characters, quests/challenges, levels, stat tracking, savegame
  • Skills: Unreal Engine 5, MetaHuman, C++, Blueprints
View and download the project on GitHub
Game Programming Patterns

Unreal Engine Development & Game Programming Patterns

I drew on my familiarity with existing features in Unreal Engine to speed up iteration and development cycles:

  • Building for Windows
  • Music and sound effects
  • Save game data
  • Game, menu, and pause UI (Slate)

My implementation used game programming best practice, referencing Game Programming Patterns by Robert Nystrom:

  • Observer pattern
  • Object pooling
  • Singleton
Character unlock procedure

Unique Characters and Unlocking System

A key game system I developed was the characters and character unlocking. Designed in UE's MetaHuman creator, each character is a visual representation of a member of Andy's family. Additionally, each character has a unique set of skills that reflect their real personality and lead to novel gameplay.

The quests to unlock each character encourage varied gameplay. The different difficulties create reward, challenge, and player progresssion. Most quests encourage use of different character skills to accomplish specific goals.

Players must master the game's mechanics and become familiar with every map to unlock all characters.

Preview of some of the different maps

Level Design

An important feature for a fun disk golf game is the fun disk golf courses!

I designed a series of maps that challenge players in a variety of ways. I created obstacles including trees, rocks, structures, and water traps. Some levels test throwing accuracy while others challenge platforming skills. Different character skills (speed, waterproof, projectile visualization, etc) lead to unique gameplay within each level.

Animation of frisbee flight

Frisbee Physics (C++)

I programmed a deterministic frisbee flight simulation in C++, including drag, lift, and pitching forces. Players can learn and master the frisbee dynamics to improve their score on each course. Players have direct control over frisbee roll angle, power, spin direction, and overall trajectory. One character skill creates a trajectory visualization. Due to the deterministic nature of the trajectory, game includes a replay system for players to review their previous throws and understand the performance of the frisbee.

Physics simulation based on: Simulation of a spin-stabilized sports disc, Crowther and Potts (2007)