LAWN:TFTG Postmortem

After getting home I did some more testing, this time on a Mac and luckily there are no serious issues. It appears that some of my PNGs have incorrect color space settings that caused a discoloration on the Mac. This is now fixed in the very final 1.01 release that now also has a Mac disk image build (py2app) for convenience.

Download Terror From The Green 1.01.dmg (for Macs)

Download Windows exe build

Download source distribution

A summary of my experience as a last diary entry for now:

How did my first PyWeek go?

The game ended up a mix of a tactical X-COM-style game and a puzzler. A good amount of the fun in tactical games comes from estimating hazards and chances (will I be able to hit that alien? will there be more of them?) but since there are no gunfights here, this source of fun is about halved (there is still a combination of random and hearing-based movement on the opponents' part and on hard mode you have limited vision), but in its place puzzle mechanics appeared. The interactions are not governed by chance as much as in a shootout, so you can calculate many steps in advance and solve a few tricky levels that explore the many possible interactions between the creatures and items of the yard.

The development had a steady pace. I crossed off the last "must have" features from the to-do list Friday night. I feel I did not spend enough time pondering the design nor playtesting, so I having little idea if the game is actually fun. I will rely on your votes to tell! On the positive side graphics and sound creation was a lot of fun, and coding was a breeze. I don't get all this talk about refactoring. That sounds like something you do when the project is already a year old. I barely ever deleted a line!

The community aspects of the contest were a pleasant surprise. I was attracted by the game making, but seeing other works in progress and the variety of approaches was an experience in itself. I will try to get a team together for PyWeek 9!

(log in to comment)

Comments

Great stuff, I'm looking forward to trying your game out!

Hey, I'm having a little trouble running the game on OS X 10.5.6. It starts up okay, and I can view the credits (great song, by the way), options, and quit. But when I pick New Game or Continue Game, I get an error and it doesn't work:

Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 295, in 'calling callback function'
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/window/carbon/__init__.py", line 1113, in _on_mouse_up
    self.dispatch_event('on_mouse_release', x, y, button, modifiers)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/window/__init__.py", line 1217, in dispatch_event
    EventDispatcher.dispatch_event(self, *args)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/event.py", line 340, in dispatch_event
    if handler(*args):
  File "/Users/teacher/pyweek8/lawn-tftg-1.01-final/gamelib/main.py", line 60, in on_mouse_release
    self.phase.on_mouse_release( x, y, button, modifiers )
  File "/Users/teacher/pyweek8/lawn-tftg-1.01-final/gamelib/main.py", line 2172, in on_mouse_release
    self.handle( l.text )
  File "/Users/teacher/pyweek8/lawn-tftg-1.01-final/gamelib/main.py", line 2177, in handle
    self.game.setphase( Transition( self.game, self, Base( self.game ) ) )
  File "/Users/teacher/pyweek8/lawn-tftg-1.01-final/gamelib/main.py", line 203, in __init__
    self.crew = [sprite( '%s-%d-portrait.png'%(c.gender.replace( 'boy', 'child' ), c.kind) ) for c in self.world.crew]
  File "/Users/teacher/pyweek8/lawn-tftg-1.01-final/gamelib/main.py", line 330, in sprite
    return pyglet.sprite.Sprite( imgcache[imgname], batch = batch )
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/sprite.py", line 225, in __init__
    self._texture = img.get_texture()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyglet/image/__init__.py", line 831, in get_mipmapped_texture
    raise NotImplementedError('TODO: gluBuild2DMipmaps')
NotImplementedError: TODO: gluBuild2DMipmaps

I had the same problem with the Mac DMG. Well, I didn't see the error message, but it didn't work.

@Cosmologicon: Thanks for letting me know! I have the same version of OS X and my MacBook is just a few weeks old, so it's pretty much the basic system, and still it works for me. Pyglet throws this exception if not gl_info.have_version(1, 4), so it looks like your OpenGL version is the problem. Could it be too old? If it's too new, then it's a pyglet bug for not accepting newer OpenGL.

Anyway it's just mipmap generation -- if you can bare with slightly worse texture filtering, you could change the sprite() function in my code to have mipmap=False as the default argument (it is mipmap=True now). I hope this will help, thanks for trying!