DNF and here's why.
I was really hoping this would be the PyWeek where I actually finish something. Most of the week, however, was spent working on core engine functionality instead of actual game-play.
If, perhaps, I programmed my game in the style of a Ludum Dare (direct, game-specific, quick hacking, etc.) maybe I could have completed a game. Instead, I programmed in a way that might have been better suited for a longer development time -- general, flexible, and potentially reusable source code.
Also, due to an old computer, I was using a 320x240 screen resolution with PyGame. At such a low resolution pixel art is necessary for clearly identifiable sprites, where a higher resolution could have more easily used 3D rendered or hand-drawn sprites. Unfortunately I tend to become more of a perfectionist when working pixel-by-pixel on graphics. To give you an idea of how I was overdoing it, I made 28 frames of animation just for my main character, and that was just standing, getting hurt, and running -- I didn't get around to weapon animation.
I am incredibly impressed with PyMike's BubbMan 2. Looking at his source code and data it looks like we might have done close to the same amount of work, however his use of the Retrogamelib and simpler art-style were definitely an advantage. For the next PyWeek I should look into the use of some library thats more than just PyGame. I could have saved a lot of time not writing this functionality myself during the week.
Perhaps I should go through my code, clean it up, and release it as a game development library. It has systems for handing resource management, frame-rate independent animation, an input system allowing for easy and seamless keyboard or joystick, entity management, sprite depth sorting, collision detection, tilemaps, game states, simplified entity interactions, flexible configuration file loading, etc. It would save a lot of time for future competitions.
I also made great progress on my procedurally generated map algorithm. The maps it generates is great, but I was only able to do about 2/3 of what I originally planned for it. For example, actually converting the data into a tilemap wasn't really finished. Also item and door placement wasn't really done (though I haven't actually gotten around to really making a lot of items anyway.)
If I had one more week I know I could have finished it. I will continue working on this game (perhaps after extracting a reusable library from the code), so I'll tell you guys about it when/if it is done.
Maybe next time I'll have a finished game by the end of PyWeek.
(log in to comment)
Comments
Thanks. The game changed some since the initial idea I presented. I decided to simplify it down to a Zelda style game, but when completed the procedurally generated maps should still be fun. I think I will take a break for a day or two before getting back into development, though. The past week was a little exhausting and I need to recover from the disappointment of missing the deadline.
It seems, though, that, differently from me, you did a lot of coding too, so great job.
It sounds like that would be really worthwhile. I am wondering -- if you do this, or if I do it with Outlawn or someone else does it with their own code, how will us other pyweekers find out about it, in time to consider using it for the next pyweek? I am not sure there is an obvious central place to announce such a thing or to look for it (unless someone happens to check this very discussion thread when preparing for their next pyweek).
If you really want people to use it, produce good documentation and throw 2 or three toy games as use cases.
saluk on 2009/05/03 20:34:
Hope to see further work on this, the concept was brilliant.