Macrae Smith

Introduction
Journey through the fantastical world of Aion as Kila, a Keeper of Time. In this single-player action-adventure platformer, you explore floating islands and combat savages who are stealing time. With a magical staff and time manipulation at your hand, fulfill your destiny and restore peace to Aion.
Duration: May 2025 - December 2025
Technologies: Unreal Engine
Team Size: 26 (7 programmers)
Role: Lead Programmer
Responsibilities
Lead Programmer.
Managed and organized team of 7 programmers.
Assisted in design and architecture of core gameplay features.
Delivered technical progress updates in stakeholder milestone reviews.
Managed Steam API and ensured product quality for release requirements.
Developed and implemented tools for puzzle, audio, UI, and camera systems.
Lead Programmer - Team Management

My primary contribution to the project was serving as Lead Programmer. I worked directly with the game designer, lead level designer, and lead artist to ensure technical decisions aligned with the overall vision of the game. Because our melee combat systems were tightly coupled with engineering constraints, many design decisions were shaped by the capabilities of our tools and team. I made it a priority to deeply understand our technical stack so I could advise on feasibility, scope, and long-term maintainability during active design discussions.
In collaboration with our producers, I organized milestone delivery documentation and maintained structured task planning for the programming team. I tracked progress, clarified requirements, and ensured deadlines remained realistic and achievable. Rather than simply distributing work, I assigned tasks based on individual strengths and interests, which improved both quality and team ownership.
I worked closely with each programmer to remove blockers, review architecture decisions, and maintain steady progress across systems. When tradeoffs were necessary, I gathered input from the team before solidifying direction and clearly communicated the reasoning behind decisions, even when they required compromise.
Within a cross-cultural team environment, I adapted my communication style to maintain clarity and openness. I focused on building trust, encouraging feedback, and creating space for technical discussion while still providing firm direction when needed. By balancing collaboration with accountability, I helped maintain team cohesion while consistently moving the project forward.
Technical Milestone Reports

Operating in a simulated production environment, I was responsible for delivering detailed technical reports to stakeholders. Bi-monthly reviews required clear updates on progress, system stability, and upcoming risks. My role was to present the current state of the game honestly while addressing concerns with concrete data and actionable plans.
These reports included milestone tracking, technical artifacts, and structured risk assessments. I evaluated system maturity, identified potential bottlenecks, and communicated mitigation strategies before issues impacted delivery.
Stakeholder feedback did not stop at discussion. I translated suggestions into actionable tasks by evaluating technical feasibility, team bandwidth, and long-term cost versus benefit. This required balancing scope, skill distribution, and production timelines to ensure that requested changes strengthened the project without destabilizing it.
By combining transparent reporting with pragmatic decision-making, I helped maintain stakeholder confidence while protecting the team’s execution capacity.
Melee Combat

Melee combat was the largest technical risk on the project. Delivering responsive, believable combat required tight coordination between animation, gameplay code, VFX, and AI, all within limited production time. Compounding this, the team was learning new tools and working in an area that was new for several developers, which introduced uncertainty early in development.
Because combat influenced core design decisions, we had to move forward with overall game direction while still discovering technical constraints. My role was to maintain close communication with the animation and combat teams to continuously evaluate feasibility. I helped assess what we could realistically achieve within schedule and where we needed to simplify or provide fallback solutions.
A major focus was architecting combat systems to support iteration. We designed them to degrade gracefully if certain animation features, transitions, or tool workflows proved too costly. This allowed us to preserve responsiveness and player feedback without depending on high-risk features.
Combat required more than animation timing. It depended on coordinated hit reactions, VFX, and time-dilated hit stops to sell impact, while still supporting believable AI behavior and maintaining strong player control. Much of my responsibility centered on ensuring these systems were planned in coordination rather than developed in isolation.
While I was not deeply involved in direct implementation, I played a key role in guiding the technical direction, managing risk, and aligning combat architecture with production realities.
Tools

As technical lead, much of my work focused on building systems and tools that supported both programmers and designers. I translated experiential goals into stable, data-driven implementations and exposed tuning controls that allowed designers to iterate safely without constant engineering support.
Camera
Our game required a fluid third-person camera that could support both melee combat and 3D platforming. The challenge was not just technical, but experiential. Combat demanded responsiveness and strong framing, while traversal required clarity and spatial awareness.
Due to the technical engineering and player experience focused tuning, this was a collaborative effort between programmers and designers. I worked closely between both teams to ensure clear communication to translate subjective design feedback about “feel” into concrete, tunable parameters the engineering team could implement safely.
I developed camera interpolation utilities and smoothing tools that allowed designers to iterate on transitions without destabilizing core logic. I also implemented environmental avoidance helpers to reduce clipping and obstruction issues. In addition, I built the connective systems that allowed in-game cinematics to transition cleanly into and out of gameplay.
My role was in providing technical tools that empowered iteration, and helping the camera evolve into a system that served both gameplay and player experience.
Puzzles
Early prototypes produced engaging and challenging puzzles, but the implementation was fragmented across isolated scripts and one-off logic. This made iteration difficult and limited reuse across levels.
I consolidated this functionality into a unified puzzle framework. Core logic was centralized into shared systems, while exposing configurable parameters that allowed level designers to place and configure puzzles directly within levels. This reduced duplication, improved maintainability, and ensured that systemic changes could propagate consistently across the entire game.
Audio
In collaboration with composers from SMU Meadows School of Music, I implemented a layered, state-driven music system. Instead of hard switching tracks, the system dynamically mixed stems based on gameplay state such as exploration, combat, boss encounters, and puzzles.
I also built a dialogue playback system for recorded voice lines with prioritization and state management to ensure clarity during gameplay.
UI
I created a dynamic UI system that embedded input glyphs directly into tutorial text and menus. The system detected the active input device at runtime and swapped glyph sets automatically between keyboard, mouse, and controller.This eliminated duplicated UI content and ensured consistency across PC and handheld targets.
Graphics Scalability
I implemented a graphics scalability framework integrated into the settings menu. Players could adjust lighting, shadows, texture quality, and resolution scaling at runtime.
These settings were tied directly to engine-level feature toggles and performance-critical parameters, allowing the game to scale across a wide range of hardware without separate content paths.
Steam Deck
I took ownership of Steam Deck support, handling profiling and optimization across CPU and GPU workloads. By identifying frame-time bottlenecks and reducing rendering and gameplay overhead, I achieved stable handheld performance.
I also ensured UI layouts and input behavior adapted correctly to varying screen sizes and aspect ratios.