PyWeek - 555-BOOM!
AwardsRatings (show detail)
Overall: 3.5 1% of respondents wished to disqualify the entry. Respondents: 42 |
| Files: | Uploader | Date | |
|---|---|---|---|
| 5B-0.6-Windows.zip | 3.88 Mbytes | gcewing | 2007/09/25 03:28 |
| Postcomp Release - Windows | |||
| 5B-0.6-Linux.tar.gz | 3.14 Mbytes | gcewing | 2007/09/25 03:22 |
| Postcomp Release - Linux | |||
| 5B-0.6-MacOSX.dmg | 5.86 Mbytes | gcewing | 2007/09/25 03:20 |
| Postcomp Release - MacOSX | |||
| 5B-0.6-Source.zip | 981.21 Kbytes | gcewing | 2007/09/25 03:16 |
| Postcomp Release - Source | |||
| 5B-0.4.zip — final | 667.69 Kbytes | gcewing | 2007/09/09 23:48 |
| 5B-0.4 final | |||
| 5B-0.5.zip — final | 668.60 Kbytes | gcewing | 2007/09/09 23:35 |
| 5B-0.5 final | |||
| 5B-0.3.zip — final | 817.33 Kbytes | gcewing | 2007/09/08 10:02 |
| 555-BOOM! Version 0.3 | |||
| 5B-0.2.zip — final | 807.42 Kbytes | gcewing | 2007/09/07 21:58 |
| 555-BOOM! Version 0.2 | |||
| 1-Tutorial7.png | 76.45 Kbytes | gcewing | 2007/09/06 12:52 |
| The last screen of the tutorial. Also the last level as yet...:-( | |||
| 5B-0.1.zip — final | 800.98 Kbytes | gcewing | 2007/09/06 12:50 |
| 555-BOOM! version 0.1 | |||
Monday 24 September, 2007
[ gcewing @ 05:23 ] 555-BOOM! Response to Feedback
This has been the most successful of my PyWeek entries so far, by a large margin. I'm personally quite pleased by the way it turned out. Somehow I managed to hit on something that I was able to implement fairly completely and still have some time left for polishing and level design.
From the feedback, it seems that most people who were able to play the game properly liked it. However, the random level ordering bug appears to have ruined it for many people. Sorry about that! I was undone by an unexpected "feature" of Linux -- the glob function there apparently doesn't return its results sorted. I posted a fix, but maybe I didn't advertise it clearly enough.
Counting terminals: I hadn't intended that part to be so tedious. I'm thinking about numbering the terminals on the selectors in a future version, which may help to alleviate that.
Repetitiveness: I was trying to introduce some variety into the later levels, but I didn't have much time for level design. The same goes for gradation of difficulty, etc. Any suggestions for improvement in this area are welcome.
Use of multiple themes: There's nothing in the rules that says you can't do that, so there. I didn't write any code before the start, other than my Albow library that I documented and released several months earlier. If you're not willing to take my word for that, there's nothing I can do about it.
Lesson learned for next time: Always test on Linux and Windows if at all possible before the deadline!
Future plans: I'm working on a post-competition update that I hope to release Real Soon Now. I'll also be releasing an updated version of Albow incorporating the improvements I made to it while developing this game.
Thanks for all the good ratings, and to all those who commented.
Greg
Friday 14 September, 2007
[ gcewing @ 11:25 ] Allefant? Images?
There seem to be some resources missing from allefant_second.zip.
Traceback (most recent call last):
File "run_game.py", line 16, in
main.main()
File "/Local/Games/Python/PyWeek5/allefant5/lib/main.py", line 11, in main
run.main()
File "/Local/Games/Python/PyWeek5/allefant5/lib/run.py", line 200, in main
run.game = Game(run.w, run.h)
File "/Local/Games/Python/PyWeek5/allefant5/lib/game.py", line 21, in __init__
self.background1 = Picture("clock.jpg")
File "/Local/Games/Python/PyWeek5/allefant5/lib/picture.py", line 8, in Picture
pic = CachedPicture(path, area)
File "/Local/Games/Python/PyWeek5/allefant5/lib/picture.py", line 17, in __init__
image = pygame.image.load(data.loadblock(path))
File "/Local/Games/Python/PyWeek5/allefant5/lib/data.py", line 47, in loadblock
io = StringIO(dump.index[filename])
KeyError: 'clock.jpg'
There seem to be no images at all in the zip file.
[ gcewing @ 07:33 ] Scions of Darkness crash
Happened when I had about 3 units attacking an enemy outpost, or whatever those grey spiked things are.
Traceback (most recent call last):
File "run_game.py", line 19, in ?
main.main()
File "lib/main.py", line 12, in main
e=engine.Engine(state="mainmenu")
File "lib/modules/engine.py", line 27, in __init__
self.run()
File "lib/modules/engine.py", line 39, in run
self.play_game()
File "lib/modules/engine.py", line 661, in play_game
player.update()
File "lib/modules/entities.py", line 567, in update
i.update()
File "lib/modules/entities.py", line 253, in update
self.active_enemy.damage(self.get_attack_value())
File "lib/modules/entities.py", line 497, in damage
amount-=random.randint(0, dodge)
File "/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/random.py", line 189, in randint
return self.randrange(a, b+1)
File "/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/random.py", line 168, in randrange
raise ValueError, "empty range for randrange()"
ValueError: empty range for randrange()
[ gcewing @ 06:23 ] Fix for 555-BOOM! version 0.5
I've discovered a problem that could affect play on systems other than MacOSX.
If the levels seem to be getting played in a random order, replace the following around line 85 of Code/game.py:
paths = glob(pat)
if not tutorial:
paths = [p for p in paths if not os.path.basename(p).startswith("+")]
return paths
with
paths = glob(pat)
if not tutorial:
paths = [p for p in paths if not os.path.basename(p).startswith("+")]
paths.sort() # add this line
return paths
i.e. insert 'paths.sort()' before returning paths.
(I had always thought that glob() was supposed to return its results sorted, but this doesn't seem to be the case on some Linux systems!)
Tuesday 11 September, 2007
[ gcewing @ 04:57 ] DNA Replicator Fix
Here's a small patch to fix a problem causing DNA Replicator to crash on big-endian systems.
--- DNAReplicator-1.3-src/lib/main.py 2007-09-08 14:59:24.000000000 +1200
+++ DNAReplicator-1.3-src-patched/lib/main.py 2007-09-11 16:50:31.000000000 +1200
@@ -138,13 +138,13 @@
basedl = {}
for base in ('adenine','guanine','cytosine','thymine'):
a = array.array('f')
- if sys.byteorder == 'big':
- a.byteswap()
flo = open(data.filepath('%s.msh' % base),'rb')
try:
a.fromstring(flo.read())
finally:
flo.close()
+ if sys.byteorder == 'big':
+ a.byteswap()
basedl[base] = compilemesh(a)
global txfont
Monday 10 September, 2007
[ gcewing @ 23:46 ] DNA Replicator crash
Anyone have a fix for this problem?
Traceback (most recent call last):
File "run_game.py", line 16, in ?
main.main()
File "/Local/Games/Python/PyWeek5/DNAReplicator-1.3-src/lib/main.py", line 148, in main
basedl[base] = compilemesh(a)
File "/Local/Games/Python/PyWeek5/DNAReplicator-1.3-src/lib/main.py", line 107, in compilemesh
for i in xrange(3*npoints):
OverflowError: long int too large to convert to int
[ gcewing @ 11:26 ] 555-BOOM! Level Editor Documentation
I've written some documentation for the level editor in 555-BOOM!.
[ gcewing @ 00:35 ] Tips about pygame.mixer
Here are a couple of things I've learned about using pygame.mixer in the last couple of days. I'm posting them here in case they're of benefit to anyone.
-
If you get something that sounds like an elephant has trodden on the keyboard of your pipe organ, you've probably got a "play this sound now" condition that's triggering on every frame instead of just once.
- If you need accurate timing of sounds, you may need to reduce the buffer size that pygame.mixer is initialised with. In a post-comp effort to add more sounds to 5B, I found I needed to use a buffer of around 64 bytes to be able to play short sounds at regular intervals of 100ms without the result sounding ragged. (This is on MacOSX, not sure if other platforms behave the same way.)
[ gcewing @ 00:10 ] 5B 0.5 Uploaded
Got it there at last.
This version has 9 regular levels, a new random element, and a new part.
Note that 0.5 is the most recent version to be used for judging, even though it's not listed at the top, because I made the pending uploads in a different order.
Sunday 09 September, 2007
[ gcewing @ 12:39 ] 555-BOOM! 0.5 is coming...
...just as soon as I can get it to accept a pending upload now that the server is back.
Saturday 08 September, 2007
[ gcewing @ 10:18 ] 5B Version 0.3
More bug fixes, and more levels. There are 7 regular levels now!
I've added a randomised element to some of the levels so that you can't just use the same solution every time. That should add some replay value.
If you're wondering why all the bombs seem to be silent, most of the sounds are disabled for now, until I can fix the stuttering problem.
Friday 07 September, 2007
[ gcewing @ 22:09 ] We have levels!
I've fixed some bugs and created 4 levels.
The crash problem was caused by a case error in a sound filename. I'll have to do something to prevent that sort of thing happening again.
Things are starting to come together. It looks like I may be able to submit something resembling a finished game this time!
Thursday 06 September, 2007
[ gcewing @ 13:08 ] First submission!
5 days in, and this is my first submission, and first diary entry since challenge start. Too busy coding to take any notice of the outside world!
This time I've come up with something that covers all five candidate themes! Well, sort of. You decide.
What's done so far: Most of the necessary infrastructure, and a set of tutorial levels. At least half the effort went into implementing a comprehensive built-in level editor -- which may well turn out to be the most interesting part of the game. Especially if I don't come up with a large number of astoundingly ingenious level designs in an extremely short time starting from now...
[ gcewing @ 10:58 ] HELP - pygame.mixer bug?
I'm having trouble playing a particular sound. It works fine the first time, but if I try to play it again there's a good chance of it getting stuck looping over a small segment.
I'm using MacOSX 10.4, python 2.3, pygame 1.7.1, SDL_mixer 1.2.8.
I've tried saving the sound in .ogg and .wav formats, and with different sample rates, but it makes no difference.
Anyone else encountered something like this? Is it a known bug in pygame.mixer or SDL_mixer?
Monday 27 August, 2007
[ gcewing @ 09:24 ] What does "2+GHz" mean?
With regard to the System Capabilities poll, if I have dual 1.25GHz processors, does that count as 2+GHz or not?
