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

Hope to see further work on this, the concept was brilliant.

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.

Regarding taking too much time to make pixel art, I feel like I had the same problem with my game, and it's also the main reason I didn't finish. Much more than half of the time was spent making art, even knowing that the code underlying my game would be quite complicated (I had to code an AI of people living in a house, investigating it, and several strategy elements involving fear). Not taking too much time on art is something I should remember for the next Pyweek.

It seems, though, that, differently from me, you did a lot of coding too, so great job.
Yeah, sometimes it just doesn't work but we learn so much from the trying :) The map generation approach you wrote up was really interesting and I'm considering using its ideas myself in the future (for a totally different style of game too! :)
> Perhaps I should go through my code, clean it up, and release it as a game development library.

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).

@oresmus : make an entry in the www.pygame.org , tag it as library. It wouldnt hurt to anounce in pygame and pyglet mailing list. Chat in #pygame.
If you really want people to use it, produce good documentation and throw 2 or three toy games as use cases.
@claxo: Thanks for the pointer to the pygame.org "libraries" tag -- there's a lot to look at in there. However, none of them mentions pyglet, so I'm not sure a pyglet-based library not using pygame would be welcome/appropriate there (and same worry with the pygame mailing list, though I haven't checked it).
pygame.org hosts any games written in python, using the pygame library as a base is definitely not a requirement. There just isn't really another site like pygame.org in the community to host these kinds of projects, so it became where everyone posted stuff.