Cheat codes and postmortem
Cheats are very important in PyWeek games! Here are some for Wizburg, and I'm happy to give more if you want:- For more health, change the value in src/woldmap.py line 54:
hp = 3 - To slow the game down, change the 1000 to a 2000 or whatever in src/main.py line 65 (make sure you leave the decimal point on):
dt = clock.get_time() / 1000. - Save this for last. To unlock all castles and spells, uncomment the three commented-out lines in src/worldmap.py (80, 81, and 94), and delete data/savegame.dat. But be warned, some of the game logic relies the ordering of events, so if the game crashes when you do this, it's not my fault!
- I'm big on not just tacking on the theme, and I'm not sure how I did. Although there was a direct train of thought that led me from the theme to the final game mechanic, objectively speaking, it seems tenuous.
- My last entry's weakest category was Fun. That's what I hope to improve on this time. I think I did, but we'll see how the judging goes.
- A common PyWeek suggestion is to have your tools ready before the competition, but I learn best when i have a project, so I find PyWeek an excellent time to learn some new tricks. This time it was Inkscape, and it's great! I'll definitely continue to use SVG when I think it's the right tool for the job. I especially liked drawing the castles on the level select screen.
- Surprisingly, I really enjoyed programming the bosses. I usually avoid anything more complex than moving in a straight line for enemies, but now that I've tried my hand at more complicated fights, I might try it again. It was time-consuming, but fun. I would have been satisfied with this game if there were no levels at all, just the bosses. Maybe with the time I saved I could have made a better overall game, who knows.
- You have to be smart about what to cut out and when. Implementing
wordwrap in pygame is always a chore, and this time I decided to save
the hour I would have spent making it work right by limiting dialogue
to one line at a time. It might annoy some players, but that was an
hour well saved in my opinion. (I'm sure that someone will name a
library I should have used. Yeah, next time, but I didn't know about it
this time, and that's the point.)
- I think I made the first two levels too difficult. This is always tricky. How hard you can make your game depends on the fun and production levels, because players are more patient with interesting games. Hopefully with the cheats above, frustrated players will make it easier and keep playing. In particular, you don't see any feathers until you've beaten the first level, so I hope it doesn't seem like I forgot the theme!
- I spent a lot of time on this entry, and I think it shows, even if certain parts are rough or unfinished. I worked straight through a couple days at the end. On the other hand, I didn't get started until Tuesday. It's hard to say if I spent more time on this one or the last one.
(log in to comment)
Comments
About wordwrap in pygame there's a snippet on pygame's cookbook, and it was the one I used http://www.pygame.org/wiki/TextWrapping?parent=CookBook
Well, discussing it now, I think an hour was an overestimate. Maybe 30 minutes. Still, these things always wind up taking longer than you expect, and it seemed like a good idea at the time.
if cheatmode==1:
for c in cs: c.locked = False
for c in cs: c.completed = False
if cheatmode==1:
spellsugot = allspell
Of course as designers, we feel that the storyline/progression is sacrosanct, and we don't want players seeing content they haven't earned. But I don't think we can treat the judges strictly as regular players.
E: stream.c: Assertion 's' failed at pulse/stream.c:1059, function pa_stream_write(). Aborting.
Aborted
gcewing on 2009/09/07 08:24:
Have you considered using the textwrap module in the standard library? It works by counting characters, so the result isn't strictly correct when you're using a proportional font, but it's good enough for many things in a game, and very easy to use.