June finished out Structure of Game Design and Rules of the Game for me.  In structure of game design, we covered better ways to put together a game, and then did so.  Our project lasted about two weeks and really helped me understand implementations of singletons, wrappers for things like direct x and fmod, as well as the object factory/object manager, and states.

We used states fairly heavily in SGD and while I previously had not understood their important, I now see no reason to go any other way as far as switching between, well, different states in my game.  I also fell in love with the singleton design pattern during SGD. And then I fell back out of love with it, and then I finally settled on a happy medium for them.  While initially I thought it would be an absolutely amazing idea to make EVERYTHING into a singleton, I quickly learned better of it.  I’ve settled on asking myself “do I need global access?” before I create a singleton. If the answer is no, well, it shouldn’t be a singleton.  If the answer is yes, well then it can MAYBE be one.  I’m now fairly stingy with what actually gets granted singleton status.

Aside from design patterns, my skill as a programmer broadened in several ways during the month.  I learned about coding on a time-budget.  By the end of the month I became far more efficient by becoming a planning fiend.  As happens every month, I’m a stronger debugger than I was when I started the month.  How come nobody showed me visual studio’s pause button before? I don’t know, but now I know what to do if I get stuck in an infinite loop.  I also reiterated to myself the value of a clean and rebuild.  Not before I thoroughly stepped through some code that was error free several times though. Much headdesking was had by all. Above all SGD reminded me the importance of hard work. During our project I put in about 64 hours a week of solid work/code time.  16 hour days will get to you, but when you’re doing something you love and you’re motivated to work on your project, it is so worth it. Every little personal milestone just drove me harder to get everything working.

Rules of the Game was not so much game programming class as it was a game design class.  We prototyped the design for SGP (structure of game production) in July.  We accomplished lots of testing of our game idea with several different groups of people, both internal and external.  The biggest thing I learned? The user is dumb.  Even if the user isn’t dumb, they won’t understand things you think they should.  It was difficult to step away from the testing centers and just watch people play. I wanted to explain and to help them.  And after they were done, it was hard to just soak up the information and not justify why we did it the way we did.  The user is always right, and that was a tough pill to swallow.

However I’m glad my teammates and I were able to, because we gained some very valuable testing information which really has helped us so far in the design phase of our SGP game.  It’s always exciting.  My current classes at 9am come early but it’s just not that bad when I’m excited to go to class and work on my game.