Programmer
Challenges:
Creating foundational systems of the game required they be modular and robust. The various associations and inheritances within them had to be thoughtfully implemented to avoid game-breaking bugs. Additionally, these systems needed to be flexible so that they could be used by other team members and extended upon to meet evolving needs.
To achieve this, I first designed each system in UML with base functionality then implemented them into script. Along with documentation, this provided a concise way for me to understand, communicate, and build upon my code effectively.
Challenges:
Serving as a pathway and platform, the grate had to both ignore and detect player collisions during respective player states. After achieving this, playtesting revealed a bug that allowed the player to infinitely jump while around the grate. This was because the character controller used a ray cast to detect ground- which was hitting the grate's trigger area and collider.
Base implementation is a trigger area that detects when the player is near the grate and adjusts collision detection between the two accordingly. To address the jumping bug, the trigger area and collider are assigned to a layer that ignores the player ray cast. Importantly, the grate's collider is a part of a separate object whose layer dynamically changes to allow for platforming.