Obb postmortem 2/3 - development process

I've already talked about the game concept. In this post I'll talk about what went right and wrong, and my development process. Then I'll talk a little about the graphics engine. Again, please feel free not to read this if you've heard enough from me already!

Someone said to make sure to get enough sleep during PyWeek. But for me, PyWeek is a great opportunity to lose myself intensely in a project. I decided to keep track of when I was working. Here's the results:

Green represents time I was actually sitting down at the computer actively working on the game, and it totals 72 hours. I was also thinking about the game and doing some design work during the times colored red and gray, but 72 hours is the lower limit of the amount of time I spent on this game during the week. That's 4, 7, 6, 9, 7, 16, 12, and 11 hours for each of the eight days shown, respectively. From the time I got home Wednesday night around 9:30, it got pretty intense and stayed that way right up to the deadline.

Sleep is shown in gray. The gray bars shown are 7, 10, 9, 5, 5, 7, and 3 hours for each of the seven nights, however, each of these is about an hour more than I actually slept that night, because I was designing or brainstorming while falling asleep. I would estimate that I averaged 6 hours of sleep a night. Four of the seven nights I was up past 3am.

Also shown as green vertical lines are code checkins. There were 130 during the competition, for people who like to know that sort of thing. Also 4097 lines of code, for what it's worth. :)

So what went wrong? Not much. The game turned out pretty much how I wanted. I don't feel like I made any mistakes or really bad decisions, and I didn't run into any trouble with libraries or anything like that (with the exception of the pygame bug that causes a memory leak for some people). I feel like those 72 hours were well spent. The only way I could really have saved any time was by avoiding the graphics engine refactors I did, but practically speaking that's unlikely.

I was able to tackle a whole lot of features really fast, which allowed me to pay a lot of attention to details, some of which most players may not even notice or appreciate. These features are minor, but I feel good about them. For instance:There were a few things that I obviously didn't spend much time on. They were fine in that I just needed something there, but I didn't take the time to really make them fit the game.
  • Icons: I just used some free clip art I found.
  • Music: I couldn't be bothered to pick appropriate music, or have the songs transition smoothly. So I just found 4 songs I liked and let you pick which one you wanted to listen to.
  • Dialogue: Obb's caveman speech pattern is... uninspired. I just went with the first thing I could think of. I had a clever idea later, maybe the words could become more sophisticated the more brains you have. :) But I definitely would not have had time for that.
I was satisfied with the sound. The squishy growing sounds were taken from a recording of someone mushing up pumpkin guts. It's actually pretty gross. There was a period of time where the game was effective at grossing me out. For testing, I would have a whole bunch of body parts growing at once. (You can see it by setting debugkeys in settings.py to True, and then pressing Backspace within the game.) Without music or goofy dialogue, this can get kind of disturbing if you have to keep watching it.

I did have a short to-do list of some details I planned but didn't get around to. I decided to use the time for balancing instead, and I think that was the right decision. Nothing major, just:
  • Have the mouth open and close
  • Have the thought balloons form and unform rather than just appearing
  • Have the shields look a little cooler than just a circle, possibly with something transparent
  • Different kinds of enemy ships
Once again I used straight-up pygame. That's the way I roll. I'm quite happy with pygame, and it handles pretty much everything I need from a game library. Seeing some trouble that some people have with dependencies, I'm glad I went this route. I made extensive use of the surfarray module this time, which I'll cover more in the next post.

I think I'm getting much better at time management during PyWeek. It used to be that the deadline would sneak up on me, and the only way I could complete my entry was to trick myself into aiming low, and by cutting features that I wish I could have kept. But the last three PyWeeks, that's changed. I've had a pretty clear picture going into the last couple of days of what features I (or my team) would have time to complete, and I didn't get too many surprises.

I think this ability to judge your timeline just comes with experience. Between PyWeek, Ludum Dare, and practice games, I've now made a game in a week or less about 12 times now, and it helps. So my tip for how to be successful at time management in PyWeek is simply to finish a lot of PyWeeks. :)

(log in to comment)


So organized! Wow. I usually just casually hack at my game. Spent 3 whole days of a week making your game, that's dedication.