The Cat-astrophe

The Cat-astrophe

by Aeon Studios

Software Engineering Project 5 (GAM300)

Introduction

The Software Engineering Project 5 (GAM300) marked a pivotal juncture in my journey through computer science and game development at university. This course was a departure from conventional academic learning, pushing me to apply a wide range of skills and knowledge.

Collaborating with a team of 8 other programmers and 3 designers, to not only conceptualize but also implement a complete 3D game engine (AeonCore) and editor (Aeon Editor) from scratch using C++. This endeavor required not just advanced programming expertise, but also a profound understanding of game design principles. Collaborating in a large and diverse team, we navigated the complexities of large-scale software development, learning to integrate various perspectives and skill sets effectively.

Game Objective

"The Cat-astrophe" is designed as a competitive 3D 2-player game where strategy and quick thinking are paramount. Players engage in a spirited race against time and each other, with the goal of being the first to score 10 points. Players score points by skillfully navigating their avatars to push plus-point boxes into their designated zones, all under the pressure of a ticking clock.

Accomplishments & Challenges

Role: Product Manager, Physics Lead, Architecture Lead

In my role as a product manager and architecture lead for the Software Engineering Project 5, I spearheaded the implementation of the Entity Component System (ECS) in our engine, AeonCore. This was crucial in managing game entities, contributing significantly to the modularity of our game's architecture. Alongside this, I took on the challenge of integrating PhysX with our custom physics engine, ACPhysics (AeonCorePhysics), to create dynamic physical interactions in our game. This integration is instrumental in bringing new level of depth and realism to the gameplay experience.

In addition to my primary responsibilities, I initiated the foundational work on game objects and state serialization, an aspect crucial to our project's success. By employing RTTR and RapidJSON, I laid the groundwork to ensure that the game's state was accurately preserved and restored. This initial phase of development was essential in establishing a framework for maintaining consistent gameplay and enhancing player experience. My contribution in this area provided a solid base upon which one of my teammates continued to build, further developing and refining the serialization process to meet our project's evolving needs.

Beyond technical development, my role as product manager entailed leading our team, managing all aspects of project documentation, submissions, and liaising with professors to ensure project alignment with academic standards. This dual role of technical and managerial leadership was instrumental in navigating the project through various challenges.

The journey through this project was marked by numerous technical hurdles, particularly in refining ACPhysics and optimizing the ECS. These challenges necessitated persistent efforts in debugging and optimization, leading us to achieve a more stable and responsive game environment. The serialization aspect of the project also demanded extensive testing and refinement, eventually resulting in a robust and reliable state management system. This experience served not only as a bridge to professional-level game development but also as a profound lesson in the realities of team-based, technical projects. It laid a base foundation for my future endeavors, preparing me for the intensive and dynamic nature of full-scale production in the tech industry.