The learning curve
I wanted a game that was minimal enough for me to just worry about the programming. I dabbled in some 3d asset building but quickly lost sight of the full project. This project was meant to be as simple as possible yet feel like more than a demonstration. This is why I ended up building 5 different modes that are all played in a different way, with different systems for each.
As stated in my Game Development Journal (that can be found below) during the process of developing this game, I found the methods I used for all my systems could’ve been approached in a better way. One that I will specifically pick out is the sequential puzzle system, which remembers the order in which pressure plates were activated. I used a binary array that was the same length as the number of plates in the puzzle. When a plate was activated in the right order it would change a 0 in the array to a 1. Once the order was incorrect the entire array was reset to all 0s. Though this system works, I felt that using an array was the wrong data structure for this type of system, as it had no information on the plates, just the order in which they needed to be activated.
Overall, all the code I typed was made as modular as possible, which allowed me to easily make multiple modes. If needed, I could easily incorporate any of the systems in the individual levels into one single level. It was very important that I had menus and that the game was played with a controller. Up till this point I had never made a game with either, I wanted to push myself to learn as much as I possibly could during development. I’ll never be a good game programmer if I only stick to what I know. To make better games I need to be a more versatile programmer, and this is just the start of that process!