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).
Post-mortem time.
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 initial 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!
Great job! Very interesting to see you progress with this, it was really cute.
Follow-through is very difficult. The beginning of a project is always the most exciting: there are so many possiblities! Then as you make decisions, you become more and more limited. As you noticed, some of the initial decisions limit what you can do later. That can be really frustrating; but, if you’re being paid by a company your job is to push past that frustration and try to make the best of it.
Perhaps this isn’t your ideal game, but it is something! As you said before, it’s a learning experience.
Will you put a version up for some of us to try the game out? Will you post your code? I’d be interested in see what work you did as a fellow Python programmer. 🙂 Drop me a line if you want to chat more about your work in private if you don’t feel like posting your code, etc.
Oh, heh, nothing secret about the code. One of the usual things to do after the 7DRL is post your code so other people can play, and I’ve done that — all the details about building, running and playing it are on the WoR Success Thread. Now comes the waiting where other people play it for the first time and pass judgment on it. There are some really elaborate games in the mix, but most of those seem to have been built off a pre-existing roguelike engine. Even though my game could be improved (a lot), at least I got a graphical underpinning working!
If you don’t want to wade through the thread, you can just get the source code here. I’d appreciate any comments on it!
Downloading now. I’ll post any comments I have up later. (I’m supposed to be working right now.)
1. What would you have done differently at the beginning?
2. What other features would you have liked to have?
From one software developer to another, I say big grats on finishing the project! Very nicely done for such a short period of time. Have you given any thought to turning this into an iPhone or Android app?