When I started with the 7DRL game design challenge, I’d set a timeline. I would need to get all the game mechanics done by last Sunday, so I could focus on adding content to the game, doing balancing, playtesting the game, polishing it to a fine sheen, until today it would burst on the scene like a supernova. I’d be getting piles of emails from indie game studios asking if I wanted to work on some cool projects, doors would open and angels would fly out begging me to expand the game into some monster AAA title and I….
Sunday came and went, and all I had done was my map generation and a player character and a single rat following each other around, trying not to get in each other’s way, but entirely unable to harm each other.
I managed to get the inventory system in and scatter some items around, bring a few more monsters up and give them a very rudimentary AI. That was Monday; I was so tired from that I couldn’t work on it Tuesday, and Wednesday, I watched American Idol and played Star Trek Online. I was in real danger of losing my will to follow this through.
Why? Because the stuff I’d tossed together in a hurry to get to that point was not a good foundation on which to build a game. PyGame, the graphics engine upon which my game is built, was redrawing more stuff than it needed to do. My game state was scattered all over two dozen classes. Hooks to routines everywhere.
I had to force myself into the chair Thursday after work. I started switching things around, building more, building more; I got back my momentum. When I got home Friday, I sat down and worked on it until 3AM, and got the basic mechanics FINALLY DONE. I collapsed into bed. Saturday morning — this morning — I was up at 8 coding, and by noon I was done. I’d added many different kinds of monsters, a boss battle, and a way to win the game. A dozen playthroughs had brought the game to some sort of balance.
I recorded the last of these playthroughs for the video. I decided it would be even more fun with some background music, so I spent about an hour trying to improvise something on my alto recorder. (The game has sound effects of its own, courtesy of a free sound effects site I found, but no music).
Somewhere in there, I ate brunch, if you can have brunch at 3PM. I brought the raw video and music track in Windows Movie Maker, added titles and credits, shaved off about five minutes of the playthrough because (a) it was boring and (b) it was too long for YouTube, and set it uploading. You can find it at the end of this post (unless you are reading this in Google Buzz).
I am GLAD it’s over! But I am equally glad I did it! I’d been playing around with PyGame for awhile, but never did much more than little things with it. Now I have the confidence with PyGame to be able to move forward and do better things. My initiali design was just to make a map that looked drawn on graph paper and have toys be all the monsters, and it worked wonderfully.
I’m so pumped, now. I am thinking about a next project. I want to do another rogue-like, but a full game this time, one with a plot, boss battles and everything. But first, I’d like to check out either the Ogre3D or Panda3D engine and write a pigeon-based scrolling shooter. Scrolling shooters were my favorite sort of arcade game back in the Golden Age of Video Games — the 80s. I’ve never written one!
Anyway, full source code is at the link after the video. If you want to play with it, you will need Python and Pygame. I used IDLE on Windows, and Python 2.6 on Linux, with the pygame extensions.
So, peace, out. Back to the usual MMO fare here on West Karana :) Thanks for following along on my 7DRL this very long week!