The Mods or Upgrades of the game were completely redesigned to match the changes the designers had made to the base actions in the game. I was tasked with implementing all the new mods in Action Mods 1, Action Mods 2, and Movement Mods 2. I was also in charge of fixing bugs/making additions to some of the mods in Movement Mods 1 that had resulted from changes elsewhere in the codebase. Scott Duman was a huge help here as these were my first tasks on the project and I was still learning the codebase.
One of the other more important concepts we utilized here for having the mods modify the base actions was to use Unity’s scriptable objects. This allowed us to have the benefits of a struct, json, and/or prefab in one system. When used in conjunction with inheritance, we were able to have a very genericized system for connecting these different types of mods to the base actions in the game.
The Hub was my largest contribution to the project. It was the main reason I was brought onto the project, and after I had completed most of the work on the mods, it became my main focus. Everyone on the team had some ideas for what the hub might be like, so I made a gray box layout that combined everyone's goals for the hub and pitched what I had in mind for it. The feedback was really positive! I then went nose to the grindstone with implementing it’s multiple features such as the dialogue segments, the fight-board keeping track of which circuit the player was to load into, the background changing based upon the player’s progress, and more to make it fully functional. Thanks to our awesome artists, the screen ended up looking pretty cool!
The Hub was also pretty code heavy as while some of the screens had existed functionally before, there were many changes and new features. The Dialogue system was one of those new features. I had a blast working on story implementation as storytelling is one of the core reasons I got into game development. We again utilized scriptable objects for storing the information needed for each dialogue segment such as the text for each line or the path for the audio. We also utilized FMOD, an alternative audio engine, that allowed us to have a more optimized way of storing and handling over 120 dialogue files. Learning how to use their API with Unity was very interesting and useful!
The dialogue was written by Warren Guiles, Ryan Voss, and Myself. The actual story of the game and the Circuit Breaker world changed a lot over the course of the project. There were many different iterations of the story written by other team members at different times. Ultimately it had to be fully re-written due to the story before being out of scope and incohesive. This was my first time really writing for a game and I had a lot of fun! We did our best to include diegetic mentions to gameplay mechanics and enemies while also having the world be explained and have drama ensue. It came down to the wire with rewriting the story, and it would have been great to polish it more, but I was overall happy with what we came up with in the time we had.
The UI in the game when I joined had a finished look in some menus and a placeholder look in others. Overall the UI was incohesive as the art style of the project changed over time. As a result, a UI team was formed to redo all of the art for the UI. I was in charge of implementing most of the newer UI art and any new functionality that needed to be added to the menus being updated. This included all of the menus in the Hub, the Action panel, the Audience Panel, the Turn Order Panel, the ToolTip UI, the Tutorial Panels, the Main Menu, and the Options Menu.
Jumping into the largest codebase I had ever jumped into was intimidating, but a fun challenge and educational experience for me. I became much more familiar with different ways of tracking down which code was connected to what using IntelliSense while also communicating a lot with the programmers who had worked on the project since the beginning. As a result, I was able to get up to date on all the systems I was interacting with and become an integral part of the team.