SpAce on Roids4 years, 6 months ago
Shoot the asteroids, each wave gets more intense, how many waves can you survive!?
After deciding to take part in One Game A Month (#1GAM) this was spawned out of the fires of Mountain Goat. The idea behind #1GAM is to create a playable game within a month, with the incentive of earning XP for games contributed/finished. Since last time my short comings were lack of a wireframe/planning, so I thought doing this would get me into a good routine of getting stuff done. So I went with a clone of a retro classic, this time I managed to get my ToDo column populated with every feature I wanted to implement, and kept my Doing column to one ticket at a time (I was stupidly strict with this, knowing that if I didn’t do this my brain would forget where I was up to and what I was trying to achieve). Having a buddy to chat to about progress really helped me to keep getting stuff done, it creates accountability, you don’t want to have nothing to report, you want to bitch about how hard it was to implement your new shiny Linq statement, that concatenates your arrays of objects left in play, and each time you destroy an asteroid it calls this method which checks the concatenated array length…yeah sad I know but considering I could barely write a foreach loop six months ago, it’s progress.
Something to take away from this project I hear you ask? SINGLE RESPONSIBILITY. I ended up having a game manager (which I always get told is a bad thing to do…as soon as you start calling objects managers apparently you’ve missed the point) but in my next game I’d like to try to stick to that design pattern. The score system has it’s own object/class, menu’s are controlled by it’s own object/class and player input is separated out of player control etc. This will come with time I’m sure, but it’s worth noting that my game manager class is overbearing and heavy and full of bools being set and if’s that rely on said bools…which is bad object oriented design they say.