I didn’t really have many set expectations going into the class. My friends told me we’d get to do a group project, so I thought it would be a fun way to break into a programming application I’d always been interested in but had never really approached as a more seasoned software developer. When our first project ended up being analog, I was definitely pretty surprised, but I loved board games anyway.
One of the most compelling offerings from the course was the serious space to analyze games. I have more experience with literature, but since games are so artful, I’d always been fascinated with how they were put together and their design philosophies. The MDA structure in particular really stuck with me. Employing that paradigm during the critical play was very productive, as I enjoyed thinking of the games from all sorts of design levels.
Making games myself, I definitely felt the conflict between the inner vision and the nebulous realm of realizing truly what that means. It takes inspiration to conceive a tight premise, and the steps to realizing it are often unclear on so many levels. To that end, many of the exercises employed by the staff such as the critical plays and readings on productive game design were insightful. I also got an excuse to sample some of my To-Play list such as Portal and The Stanley Parable.
One of the most meaningful experiences was the development of P2. I onboarded Godot, and that was a bit strenuous. Abstracting how to implement functionality, I had just never thought that if I wanted to program tables, I’d have to program a table manager to handle table logic, that there had to be a way to get the table manager to talk to customers, and that the endpoints of communication had to be decided in a way that was acceptable by the team. Knowing what I know now, I would’ve opted to take time standardizing our coding approach, so we could implement new features and prototype a lot faster. There is something to be said about not worrying too much about perfection, but when interacting with my team’s code, some classic set and get functions consistent with a design philosophy would’ve just made digestion a lot easier.
I grew a lot adapting to a new language and having conversations I never thought I would: “Me: How are we doing customer AI? Logan: a finite state machine.” When Alexander started multiplayer, something completely exorbitant and required a rehaul of core base functionality just a few days before the game was due, well, it was exhilarating to discuss the design challenges. Caitlin and Andrew also did a lot to give an identity to the game, which was really exciting to see.
Next time, I’ll be more invested in communicating specific design details with my team and be more proactive with tackling direct git tickets. I also want to learn more about github, so I don’t suffer any more than I already have.