Roach Collector is a Third Person Shooter with Rogue-Like elements built in Unity 2020 for a university module where I had to work in a team to develop a game over the course of a semester. Roach Collector is based in a post-apocalyptic world where you have to go from location to location taking down the leader of that camp, each level had a focus on openness that allowed the player to take multiple paths through each level where each path would have different; loot, enemies and challenges.

Built in Unity 2020.1.14f1

Built in 6 months. January 2021 - June 2021

Features

  • Inventory system. The player can pick up various items throughout levels such as ammo, guns, armour, and general valuable items that could be sold.
  • “Stash”: This is where the player could stash various items at their hideout where they wouldn’t lose it if they died.
  • Stealth elements: Take down enemies how you want to. Whether that be through silent takedowns or through shooting your way through.
  • Save System: Roach Collector features a save system based on the .NET serialization system, this means that each saveable object in a level will added to the players save file and there status could be saved and loaded depending on what they were, for example the black market would save what guns and armour were already bought, the inventory system was also baked into the saving system to allow the player to come in and out of each level with their loot.
  • Utility Theory-based Finite State Machine (FSM): Each enemy AI in the game would act based on a FSM, this allows them to switch between states in a managed way, however for the combat systems where there are many actions that would be worthwhile such as; taking cover, shooting at the player, calling for backup, or retreating. A Utility theory system was produced where each action would be evaluated as to how useful it is and then the AI would take that action.
  • Video

    Challenges

    Teamwork and communication: In the early days of developing Roach Collector my team and I suffered various communication errors and were developing features for the game that just weren’t needed or we all had different ideas of what the game was going to be. It wasn’t until April (around 3 months into development) that we actually sat down and figured out what we wanted to develop.

    GitHub issues: This was the first team-based project I had used GitHub for and this came with some confusion primarily with how we can all work together without stepping on each other toes, this was eventually solved when we figured out the branching system.

    Clarity and Ease of Use: For Roach Collector I developed various systems such as the Save system, inventory and the Combat AI. However none of these system had documentation written for them at first as they originally just made for my own independent projects. This caused some of my team to be confused about how they work and how to use them, this was solved when I wrote documentation for them that included guided tutorials on how each system worked.