top of page

Afterlife

Overview

  • Engine: Unity (C#)

  • Genre: 3D First-Person Puzzle Adventure

  • Team Size: 2 Developers

  • Duration: 11 Weeks

Key Responsibilities

  • Lead Gameplay Programmer: Architected all core gameplay systems, player mechanics, and physics-based interactions.

  • Technical Design: Translated narrative concepts into functional puzzle mechanics.

  • Project Management: Successfully pivoted and delivered the project following a mid-development team reduction.

Project Summary

A physics-driven puzzle game developed during my undergraduate degree. After a team restructure, I took full ownership of the technical implementation, collaborating closely with a 3D artist to merge atmospheric exploration with complex environmental puzzles.

Technical Implementation

Core Gameplay

"Afterlife" is built prioritizing fluid traversal and physics-based puzzle logic. 

​

  • Ability System: Implemented a state-based traversal system including gliding and directional boosting. Mechanics are integrated into the physics loop by manipulating velocity vectors, ensuring that special abilities feel like an extension of the base movement rather than overriding it.

  • Progression Logic: Developed a "Gate & Key" system where world triggers (buttons and totems) manage scene state. This was designed to be easily expandable, allowing for complex level flow without hard-coding specific sequence dependencies.

Character Controller & Input

​The player controller was built using Unity’s New Input System to provide a responsive, professional feel.

  • Movement Physics: Utilized the Character Controller component to handle collision and grounded logic. I implemented custom gravity modifiers to facilitate the gliding mechanic, allowing for fine-tuned descent rates.

  • Camera & Constraints: Built a decoupled camera system where horizontal rotation is applied to the player root, while vertical pitch is clamped on the local transform to prevent gimbal lock and simulate realistic physiological constraints.

  • Resource Management: Created a collection system for "Feather" pickups that refills energy buffers, utilizing an observer-style pattern to update UI and player state simultaneously.

afterlife01.png

Gameplay screenshot showing the energy refilling feathers.

Interactable Framework & Tooling

To support a collaborative workflow with my artist, I developed a flexible interaction system.

  • Proximity Detection: Implemented an optimized scanning system that toggles world-space UI prompts based on distance and line-of-sight to interactable layers.

  • Scriptable Object Architecture: I leveraged ScriptableObjects to create a data-driven narrative system. This allowed the designer to:

    • Define dialogue and lore strings without touching code.

    • Map specific "Power-Up" unlocks to workbenches via the Inspector.

    • Enable the artist to balance the game's progression and narrative flow independently of the core codebase.

afterlife02.png

The player object with the view of the camera

afterlife03.png

Interaction with a workbench showing some narration and the explanation for upgrades

bottom of page