ASUNDER
Cinematic Platformer
Programmer, Co-Producer
Unity
ASUNDER is a sidescrolling platformer game about a little rover exploring a vast planet. Categorize alien flora and uncover stunning vistas as you venture forth to complete the rover’s mission objectives. As you encounter new life and visit the diverse biomes of the world, you will discover companionship in the very spaces you occupy. Develop your relationship with the planet and learn about the rover who visited BG-308A before you, as you and the planet question what it means to be alone, yet together. While the rover is certainly capable of rolling, jumping, winching, beeping, and scanning, connecting with the planet might not be so easy.
ASUNDER was presented at the 2023 MAADEXPO at the University of Chicago, where it won second place among 20 other senior capstone projects.
Design and Development:
Working with a team of four, I made ASUNDER for my senior capstone project in the winter of 2023. Over the course of the 12-week project, we took the project from brainstorms and concepts, through prototype iterations, and ended with a polished product. On the team, I served as the lead programmer and co-producer, taking responsibility for all programming and much of the team's organization and production pipelines.
At the start of the project, we discussed our individual goals and roles for the semester and began brainstorming game concepts. We collectively settled on a game that would explore themes of exploration, loneliness, and connection through the story of a lone rover on a faraway planet. Our initial concepts accounted for 2-3 levels in the scope of the semester, and we began pre-production on the game.
In the pre-production phase, we started working on storyboards, art concepts, and mechanic prototypes. I focused on physics-based movement that could give the rover sprite character without requiring very many animation frames. Our goals for the first prototype solidified: Level 1 would introduce the game's mechanics as Atlas, the rover, climbs a mountain. Level 2 would introduce a pivotal narrative twist while Atlas traverses an underground cave system.
This is a playthrough of our midterm milestone for the project (then called Bygone instead of ASUNDER). Note the different art and narrative styles, and the lack of goals provided to the player.
Around halfway through our time for the project, we reached a fully playable prototype of the first level. We scheduled critique sessions with our project mentors and received mixed feedback: Our narrative wasn't landing and the game needed to provide more immediate goals for the player to work towards. We reflected on this feedback and decided to embark on an ambitious re-design.
As we rebuilt the project, we designed a new world and story and added new flower-scanning mechanics. We introduced a second character for Atlas to interact with: the spirit of the planet Asunder. And finally, we re-focused the gameplay to more effectively balance the narrative, platforming, and exploration. Although our changes were pretty drastic, we strongly believed in them as a team and used our experience from building the prototype to expedite the process.
With the new design in hand, we used the final month of time on the capstone to build the final product. We wanted to view our work as a demo for a larger game, allowing for bigger plans while focusing our efforts on an achievable product. We formalized each team member's role and established asset pipelines to streamline development. We then tested those roles and pipeline by creating a vertical slice -- just one screen's worth of platforming content polished to production quality. Finally, assured that our pipelines were effective, we accelerated the pace of production to build out the rest of the demo. In the end, we had time to finish one large level that contains the first important narrative beat of our story, while still budgeting time for a week of QA, bug-fixing, and adding polishing features like an opening and closing cutscenes, control tutorials, and a functional pause menu.
My Contributions:
Programming
Physics-based character control, including a winching mechanic for vertical moment
Rigging rover sprites for physics simulation
Using Cinemachine to create a dynamic and programmable camera system
Systems and tooling to allow my teammates to easily lay out functional levels in-engine
Integrating YarnSpinner for the game's narrative
Dynamic area-based background music systems that can be easily tweaked by our composer
Fully-featured pause menu and UI
Responsive control tutorials that update based on active input method
Interactive ending cutscene designed exactly to our narrative needs
Production
Set schedules and target deadlines to produce prototypes with time for iteration
Organized the team's deadlines and task lists through Discord, Trello, and Google Sheets
Taught teammates effective use of version control through PlasticSCM to avoid merge conflicts and lost work
Architected a production pipeline to avoid roadblocks and enable a full production pipeline
Managed QA to-do lists and prioritized features as we neared deadlines
Managed final merges and asset integration against tight exposition deadlines
Produced secondary materials for the exposition, including screenshots, video, and poster content