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!