Fastival
Arcade Racing Game
(Unreal Engine / Steam Release)

Project Overview

Fastival is a free-carnival-themed arcade racing game developed by SMU Guildhall’s Cohort 33 and released on Steam in June 2024. Players race through whimsical tracks like Whirling Welcome, Wack-a-Mole Field, and the Big Top, using bumper cars with unique statistics. I contributed as a race systems programmer, focusing on spline-based race logic, player identification UI, map handling, lap counting, saving race data, and optimizing performance

🔹 Technologies Used: C++, DirectX 11, HLSL, OBJ File Parsing, CPU/GPU Mesh Processing.

Key Concepts

  1. Spline-based race mechanics for smooth track navigation

  2. Dynamic player-label UI with world-space selectors per camera

  3. Win condition logic, lap counting, and position evaluation

  4. Level design coordination: authored map-level specs and supported asset integration

  5. Performance profiling via Unreal’s metrics and shader debugging tools

  6. Race-state save/load system for continuity between maps

Challenges & Lessons Learned

🔹 Camera UI Syncronization

Challenge:

  • Displaying floating player IDs from multiple cameras without performance hit or visual clutter.

Solution:

  • Grouped UI selectors under camera-specific canvases, requiring multiple copies of each UI element being created without being drawn to every camera.

  • Verified performance with profiling tools unique to Unreal Engine, specifically slate insights

🔹 Performance Optimization

Challenge:

  • Frame drops in certain shader-heavy scenes and UI-overload situations

Solution:

  • Used Unreal’s viewport performance counters and shader debugging modes to isolate bottlenecks.

  • Informed leads of critical issues and helped minimizing usage and cost of shaders, even when being drawn off screen or under the map.

🔹 First-time Large Team Dynamics

Lesson:

  • Coordinating with 47 team members taught me team communication, P4V usage in a large scale enviornment, and working fluidly within “producer/stakeholder” expectations in a structured pipeline.

💡 This project developed my understanding of large teams as well as how to handle the pressure of deadlines, stakeholders, critical issues, miscommunication and more.

Implementation Breakdown

Implementation Breakdown (How I Solved It)

🔹 OBJ File Loading & Parsing

  • Spline Mechanics & Lap Logic:

    • Retrieves player lap completion progress

    • Generates a score for each player based on the completed value and the lap counter value

    • Identifies player race position

    • Uses checkpoints on the track to find cheating

    • identifies whether or not the player is facing the wrong direction

  • HUD & Player ID System

    • Created a blueprint/UI component that attaches to characters

    • is unique for each camera

    • updates their label based on camera focus and distance.

  • Map Authoring Coordination

    • Researched how maps are made in games

    • Implemented simple maps using scene captures

    • Displayed player location and direction on maps using normalized world coordinates and orientations

    • Wrote documentation on how to implement maps for each track for Level Designers/Artists use

  • End of game scoring

    • Recorded players positions

    • Assigned a score value per position

    • Saved totaled score between rounds

    • Displayed results between rounds and at the race finale

Results & Showcase

What I Would Improve Next

If I could, I think that i would want to

  • Add more maps, more carts, more items, and more fun map based gimmicks.

  • Networked multiplayer support.

  • A fun post race minigame related to the podium.

Source Code/Links

  • https://store.steampowered.com/app/2830700/Fastival/