A real level

Bell Runner

If you're old enough and Apple enough, you may remember a fun little platformer called Lode Runner. This is the same, only different.

Brother Albert is an apprentice bellringer who's just starting to learn the ropes. Help him ring the bells in the right order to open the exit. Get through all the churches and earn the title of Master of Bells and Whistles (or just bells, anyway).


For Whom The Bell Tolls: Seal of Awesomeness
Presented by steveth45

Reincarnating the pre-DDR musical genre
Presented by saluk

Clean Code Award
Presented by claxo

"Dude looks like a LEGO" Award (in a good way!)
Presented by HanClinto

Give this entry an award


Ratings (show detail)

Overall: 3.7
Fun: 3.5
Production: 3.8
Innovation: 3.7

8% respondents marked the game as not working.
Respondents: 32


File Uploader Date
Fix Python 2.4 and 2.5 compatibility bug
gcewing 2008/09/14 23:32
Bell Runner 0.5
gcewing 2008/09/13 23:34
Bell Runner 0.4
gcewing 2008/09/13 12:22
gcewing 2008/09/12 12:02
A real level
gcewing 2008/09/11 12:14
Bell Runner 0.2
gcewing 2008/09/11 12:08
Three Bells and a Door
gcewing 2008/09/10 12:21
Bell Runner 0.1
gcewing 2008/09/10 12:19

Diary Entries

First Upload

Basic liftoff achieved. I have a level editor. My character can walk around on platforms and pull bell ropes. Bells exist and can ring. Exits exist and open when bells are rung appropriately. What more could one ask?

1 comment

Version 0.2

I'm making good progress. Made some improvements to the level editor, added some more artwork, and created the first three levels -- very easy ones to begin with, to teach you the basics. Will have to come up with something more challenging tomorrow.

Add a comment

Release 0.3

Added walls that can't be walked through, improved step-climbing behaviour a little, added some more artwork and a couple of slightly harder levels.

Plans for tomorrow: Fix animation glitch when walking down steps; create a background for the title screen; try to do a few more levels.

Add a comment

Release 0.4

Made some more improvements to the character behaviour. The falling frame no longer flashes when walking down steps, and the character no longer steps onto the lowest step momentarily when walking away from in front of the steps.

Made some nice backgrounds for the menu screens, and found an appropriately themed font. Created some more decorations, and added a few more levels plus something to see at the end. It's looking pretty good!

Add a comment

Final submission checkbox gone?

Has the Final Submission checkbox feature been removed? If so, you might want to remove the text referring to it in the File Upload page.

Add a comment

Release 0.5 - Final

Looks like this is it. I've fixed another step-climbing bug and made a few more embellishments to the artwork. There seems to be one step-related bug remaining, but it doesn't adversely affect any of the levels, so I'm not too worried about it.

I didn't get around to providing any in-game help, but the controls are so simple that it's hardly necessary. The README says it all.

I'm pleased with what I've achieved this time round. This is the second PyWeek in which I feel I've managed to get a game to a reasonable state of completion. In contrast to the last one (555-BOOM!) this has been an exercise in minimality -- taking a very simple game mechanic and seeing how far I can get with it.

I've managed to get more variety out of it that I thought I would, but I think I've pretty much reached the limit now. At least, I don't have any further ideas for levels at the moment that wouldn't be repetitions of what's already there. So I'm calling it done.

I hope there's some fun in there somewhere, too.


Pyglet and OpenAL on Tiger

I'm still not getting any sound from Pyglet on MacOSX. Previously I thought this was because my AVBin installation wasn't working, but it turns out it's because OpenAL isn't working.
>>> import pyglet.media.drivers.openal
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ctypes/__init__.py", line 330, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: dlsym(0x10d4e0, alListener3i): symbol not found
Looking at /System/Library/Frameworks/OpenAL.framework/Headers/al.h, it appears that the following six variants of alListener are supposed to exist:
alListenerf( ALenum param, ALfloat value );
alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
alListenerfv( ALenum param, const ALfloat* values ); 
alListeneri( ALenum param, ALint value );
alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
alListeneriv( ALenum param, const ALint* values );
However, according to nm, only four of them actually exist in the dylib:
9b20d9cc T _alListener3f
9b20dcf0 T _alListenerf
9b20db54 T _alListenerfv
9b20f0e8 T _alListeneri
I'm not sure what to make of this. Maybe my MacOSX has an older version of OpenAL installed? But then why do these functions appear in the header, but not the library?

Has anyone else successfully got sound out of Pyglet on MacOSX? What version? Mine is 10.4.4.


My monkey is in a tangle

Any hints for the second level of Monkey in a Tangle? I can't figure out how you're meant to do it.


Box2D2 Installation Tip

A tip for those installing pybox2d from source: I found that trying to compile and install in one step using "python setup.py install" didn't install everything. Running the install command a second time fixed it.

Add a comment

Bell Runner - Response to Comments

Well, once again I'm blown away by the ratings I received. I never expected to get such a high ranking for what I felt was a rather minimal game. Thanks, everyone!

I know it wasn't very much like Lode Runner -- that's just where I got the name from. If I'd had more time, it might have had more Lode-Runner-like features, such as treasures to collect.

Sorry if the last level was too hard. I was worried that it was far too easy up to then, and I might have overcompensated. I was thinking of leaving a tiny bit of the rope showing, but I thought that might be too obvious. Perhaps I should have done that.

One person claimed they could only do the level with the seven bells in a row by trial and error. That's rather perplexing, since the bells are all in order, so once you've discovered which staff line one of the bells corresponds to, working out the rest should be straightforward.

Thanks again, and I'll look forward to seeing you all again next PyWeek!

Add a comment