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
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!
It's been some time since I fiddled around with pygame. I never got to
even decent graphics, because of a lack of usable images. Your game
seems to have all this, so congratulations.
Sad thing is, that I could only watch the youtube-vid, because
superawesome.png is missing somehow, and the main.py file is also
emtpy (but i found room.py).
The complete code along with all the sounds, fonts and pictures are
To run the game from the Linux command line, with python 2.5/2.6 and
hjklmnuy to move around
f to use selected weapon on target (wands don't use their effects at
, (comma) to pick things up
. (period) to rest (but you don't regen health in this game)
click to target monsters/items/yourself
click on the inventory to wield/unwield items
defeat brings you to your starting point
the boss is in the lower right corner, as far from the starting point
as possible. The position used to be more random, and the maps much
larger, but it became impossible to finish the game, because ...
killing a monster has a 50% chance of coming back as a more difficult
item colors are roughly indicative of their power. gray = starting
weapon and wands without charges. black > green > blue > red > purple
are the quality of items from least to best. Equipping a sword gives a
substantial bonus to defense, while equipping wands lets you attack
killing the boss and standing on the Awesome Spot where he stands,
wins. All you get is a trumpet fanfare, though. The boss is more
difficult than he appears in the video -- I had to cut about three
minutes of dying off in order to make it under YouTube's 10 minute
limit. Or I could just have cut off some of the credits.... but no,
watching the game play out and watching myself get totally and
entirely lost again and again was just getting dull.