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
Spline-based race mechanics for smooth track navigation
Dynamic player-label UI with world-space selectors per camera
Win condition logic, lap counting, and position evaluation
Level design coordination: authored map-level specs and supported asset integration
Performance profiling via Unreal’s metrics and shader debugging tools
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
Source Code/Links
https://store.steampowered.com/app/2830700/Fastival/