| |||||||||||
PyWeek - Linux issues with Robot UndergroundWe've had some reports of errors that look like this: pyglet.image.codecs.ImageDecodeException: Unable to load: maps/controlroom.bmp This is a problem with pyglet image loading on Linux (I knew we should have tested on Linux). If you want to give us a DNW, that's fine, but if you'd still like to play the game, you can download a set of replacement map files here. Just extract them to the data/maps directory, overwriting the files which are already there. You'll also need to add the following line between lines 20 and 21 of lib/worldgen.py:
if pitch > 0: offs -= pitch
— Martin on 2008/04/07 11:07 of Super Effective 6 Comments: (log in to comment) |
Last Challenge
April 2009 [entries, ratings] Previous September 2008 [entries, ratings] > March 2008 [entries, ratings] September 2007 [entries, ratings] April 2007 [entries, ratings] September 2006 [entries, ratings] March 2006 [entries, ratings] (June 2006) August 2005 [entries, ratings] Not logged in Login | ||||||||||
By richard on 2008/04/07 12:35:
Yay, that fixed it!By nihilocrat on 2008/04/07 12:42:
I'm getting this immediately as the main menu loads:Traceback (most recent call last): File "run_game.py", line 20, in main.main() File "lib\main.py", line 240, in main run() File "lib\main.py", line 247, in run control.run() File "lib\main.py", line 223, in run app.run() File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\__init__.py" , line 263, in run EventLoop().run() File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\win32.py", l ine 73, in run self._timer_func(0, 0, timer, 0) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\win32.py", l ine 83, in _timer_func sleep_time = self.idle() File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\__init__.py" , line 187, in idle dt = clock.tick(True) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\clock.py", line 675, in tick return _default.tick(poll) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\clock.py", line 290, in tick item.func(ts - item.last_ts, *item.args, **item.kwargs) File "lib\main.py", line 189, in update music.update(dt) File "lib\music.py", line 141, in update self.player.queue(data.load_song(self.queued)) File "lib\data.py", line 25, in load_song return media.load(song_path) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\media\__init__.p y", line 1366, in load source = _source_class(filename, file) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\media\riff.py", line 198, in __init__ raise WAVEFormatException('Not a WAVE file') pyglet.media.riff.WAVEFormatException: Not a WAVE fileDisabling the music seems to fix it (as you might suspect). I did take a look at the music, though. It's really quite good! "Electro Sketch" is my favorite track... I'm curious what program(s) you used to make it.By Martin on 2008/04/07 12:46:
That looks like you haven't installed AVBin.
The music isn't original, it was written by a guy called Ken McLeod, who has a website full of Creative Commons music. We used some of his stuff last time around as well.
By nihilocrat on 2008/04/07 12:53:
Oh, and I also got this:Traceback (most recent call last): File "run_game.py", line 20, in main.main() File "lib\main.py", line 240, in main run() File "lib\main.py", line 247, in run control.run() File "lib\main.py", line 223, in run app.run() File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\__init__.py" , line 263, in run EventLoop().run() File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\win32.py", l ine 62, in run self._timer_func(0, 0, timer, 0) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\win32.py", l ine 83, in _timer_func sleep_time = self.idle() File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\app\__init__.py" , line 187, in idle dt = clock.tick(True) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\clock.py", line 675, in tick return _default.tick(poll) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\clock.py", line 290, in tick item.func(ts - item.last_ts, *item.args, **item.kwargs) File "lib\main.py", line 187, in update self.handler.update(dt) File "lib\missionmode.py", line 819, in update self.mission.tick() File "lib\mission.py", line 126, in tick self.advanceScript() File "lib\mission.py", line 108, in advanceScript self.currentScript.advance() File "lib\script.py", line 258, in advance state = self.generator.send(self.last_choice) File "lib\content\act1.py", line 523, in startScript sound.radio() File "lib\sound.py", line 17, in __call__ data.load_sound(filename).play() File "lib\data.py", line 31, in load_sound return media.load(sound_path) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\media\__init__.p y", line 1366, in load source = _source_class(filename, file) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\media\riff.py", line 194, in __init__ format = wave_form.get_format_chunk() File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\media\riff.py", line 174, in get_format_chunk for chunk in self.get_chunks(): File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\media\riff.py", line 110, in get_chunks chunk = cls(self.file, name, length, offset) File "C:\devel\pyweek6-judging\robot-underground-1.0.1\pyglet\media\riff.py", line 155, in __init__ raise RIFFFormatException('Size of format chunk is incorrect.') pyglet.media.riff.RIFFFormatException: Size of format chunk is incorrect.Turning off sound 'fixed' it. These both occurred in Windows with Python 2.5. It looks like you packed pyglet with the game so I didn't bother installing it.By Martin on 2008/04/07 13:04:
Sorry, pyglet is indeed packaged with the game, but AVBin isn't, as it requires a platform-specific binary. We forgot to mention this in the README.By nihilocrat on 2008/04/07 13:30:
Sorry if I'm dumb, but where do I put the (in Windows' case) DLL file? I tried the python/DLLs and python/lib/site-packages directories but it didn't work.By Martin on 2008/04/07 13:43:
C:\Windows\System32 should work, although I don't have a Windows machine handy to check.By adam on 2008/04/07 13:46:
AVBin isn't Python-specific. I believe it's intended to go in Windows\System32, which definitely works. If you're wary of adding DLLs to your whole system there may be another solution but I don't know of it.By nihilocrat on 2008/04/07 14:47:
Yep, works perfect, thanks for the help!By lucio on 2008/04/07 22:29:
Traceback (most recent call last): File "run_game.py", line 20, in main.main() File "lib/main.py", line 240, in main run() File "lib/main.py", line 247, in run control.run() File "lib/main.py", line 223, in run app.run() File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/app/__init__.py", line 263, in run EventLoop().run() File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/app/xlib.py", line 91, in run sleep_time = self.idle() File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/app/__init__.py", line 187, in idle dt = clock.tick(True) File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/clock.py", line 675, in tick return _default.tick(poll) File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/clock.py", line 290, in tick item.func(ts - item.last_ts, *item.args, **item.kwargs) File "lib/main.py", line 187, in update self.handler.update(dt) File "lib/missionmode.py", line 819, in update self.mission.tick() File "lib/mission.py", line 129, in tick e.tick() File "lib/actor.py", line 195, in tick self.attack() File "lib/actor.py", line 221, in attack w.fire(self, temptarg) File "lib/weapon.py", line 57, in fire target.takeDamage(self.getDamage() * owner.getAttack(), self.damagetype) File "lib/actor.py", line 58, in takeDamage self.mission.runScript(self.deathScript) File "lib/mission.py", line 99, in runScript self.advanceScript() File "lib/mission.py", line 108, in advanceScript self.currentScript.advance() File "lib/script.py", line 265, in advance getattr(self, action[0])(*(action[1:])) File "lib/script.py", line 219, in die self.actor.die() File "lib/actor.py", line 297, in die self.mission.protag.addXp(self.xpvalue) File "lib/actor.py", line 249, in addXp self.mission.dispatch_event("on_level_up") File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/event.py", line 340, in dispatch_event if handler(*args): File "lib/missionmode.py", line 702, in on_level_up sound.level_up() File "lib/sound.py", line 17, in __call__ data.load_sound(filename).play() File "lib/data.py", line 31, in load_sound return media.load(sound_path) File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/media/__init__.py", line 1366, in load source = _source_class(filename, file) File "/home/lucio/Desktop/pyweek/robot-underground-1.0.1/pyglet/media/avbin.py", line 209, in __init__ raise AVbinException('Could not open "%s"' % filename) pyglet.media.avbin.AVbinException: Could not open "data/sfx/fanfare.wav"while running on ubuntu. latest avbin. with new patches. (i had sound until then)
By Martin on 2008/04/07 23:01:
With new patches for what?By lucio on 2008/04/08 01:13:
The one-line patch you posted above plus the new files.By lucio on 2008/04/08 02:30:
oops, my bad. corrupted zip file.By Martin on 2008/04/08 10:16:
So all working fine now?By Woodwolf on 2008/09/05 08:39:
You can also include avBin.dll along with the .exe (in the same directory)By Woodwolf on 2008/09/05 08:40:
Sorry, that was just for windows.