555-BOOM!
Your task is to take the TWINKLE out of the Tyger's eye by tracing the connections through the TWISTED and tortuous circuits of the softly TICKING exchange equipment, and finding a way to disarm the bombs before time runs out.
Only you can save the country's vital communications infrastructure from being thrown into TURMOIL...
Note: The screen shot at right is NOT the last level any more, but screen shot uploading doesn't seem to be working at the moment.
Awards
Scores
Ratings (show detail)
Overall: 3.5
Fun: 2.9
Production: 3.5
Innovation: 4.1
1% of respondents wished to disqualify the entry.
Respondents: 42
Files
File | Uploader | Date |
---|---|---|
5B-0.6-Windows.zip
Postcomp Release - Windows |
gcewing | 2007/09/25 03:28 |
5B-0.6-Linux.tar.gz
Postcomp Release - Linux |
gcewing | 2007/09/25 03:22 |
5B-0.6-MacOSX.dmg
Postcomp Release - MacOSX |
gcewing | 2007/09/25 03:20 |
5B-0.6-Source.zip
Postcomp Release - Source |
gcewing | 2007/09/25 03:16 |
5B-0.4.zip
— final
5B-0.4 final |
gcewing | 2007/09/09 23:48 |
5B-0.5.zip
— final
5B-0.5 final |
gcewing | 2007/09/09 23:35 |
5B-0.3.zip
— final
555-BOOM! Version 0.3 |
gcewing | 2007/09/08 10:02 |
5B-0.2.zip
— final
555-BOOM! Version 0.2 |
gcewing | 2007/09/07 21:58 |
1-Tutorial7.png
The last screen of the tutorial. Also the last level as yet...:-( |
gcewing | 2007/09/06 12:52 |
5B-0.1.zip
— final
555-BOOM! version 0.1 |
gcewing | 2007/09/06 12:50 |
Diary Entries
What does "2+GHz" mean?
HELP - pygame.mixer bug?
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?
First submission!
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...
We have 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!
5B Version 0.3
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.
555-BOOM! 0.5 is coming...
5B 0.5 Uploaded
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.
Tips about pygame.mixer
-
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.)
555-BOOM! Level Editor Documentation
DNA Replicator crash
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
DNA Replicator Fix
--- 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
Fix for 555-BOOM! version 0.5
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 pathswith
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 pathsi.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!)
Scions of Darkness crash
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()
Allefant? Images?
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.
555-BOOM! Response to Feedback
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