Ascend is a 2D horror puzzle platformer set in a dark laboratory from which the player must escape. They must navigate the monster filled rooms with their trusty lantern. It was built with Unity by a group of students. For this project, I helped lead programming among four programmers. I worked on the software architecture, save/respawn system, gameplay mechanics such as player movement and movable boxes, UI system, and more.
During Spring 2019, I lead the programming team. This involved leading the direction of code design, helping assign programming tasks, and performing code reviews. Also, as several members were new to Unity, I assisted in recommending tutorials, teaching basic concepts, and answering questions.
Game Manager: Josh Burke
Game Programmers: Anmol Agarwal, Will Bauer, Josh Burke, Bennett Bernardoni
Artists: Aras Yazgan, Litong Zeng
Game Designer: Andre Garner
Audio Creator: Will Bauer
Past Contributors: Sarah Elizabeth Anderson, Peter (Zehua) Chen, Diana Huang, Anirudh Sivaraman
My first contribution to the project was implementing movable boxes that could be pushed and pulled but wouldn't move when being jumped on. Although it isn't shown in the video demo the boxes will also fall when pushed off an edge. Next, I created player death and respawn system that fades the screen and reloads the previous save. Then, I added the fuel system to the lantern so it gradually dims until it is refilled at an oil barrel.
I also worked on adding functionality to systems created by other programmers. For the save system, I added a clearer and easier to use API. I simplified the implementation of the pause menu to allow easier extension. I created an interactables parent class to increase code reusability across all interactable objects.
Overall, I spent quite a bit of time refactoring the architecture of the code to improve consistency, simplicity, maintainability, and extensibility. This helped make the code able to be understood and worked on by all our team members regardless of their experience level. It also resolved a couple hidden bugs.