Day 6: the bird arrives!

Today I started with drawing the Grand Phoenix:

(bigger)

Before you all go on about how mad my art skillz are I totally used a step-by-step tutorial to get that image. Came out nicely though, I think :)

I spent bits of today working cocos stuff into the codebase to make scene management work nicer. I spent a frustrating half hour trying to figure out why my damned cocos animations weren't working, only to discover that I'd (intentionally) overridden the cocos layer setup method which schedules the animations. Whups. It's actually something I've been meaning to address in cocos - there's a few places where you have to override a base class method to add behavior where it'd be much, much nicer to be able to just fill out a stub. For example have cocos do its stuff in _on_enter() which invokes a stub on_enter(). Or perhaps a different approach that's more backwards compatible ;)

Anyhoo, the rest of the day saw:
  1. most of level 2 (town) done
  2. most of level 3 (castle) done
  3. make menu prettier
  4. end of level score tally
  5. end of level score
  6. high score table
  7. level 3 boss
  8. uploaded first version!
At this point the gameplay represents a whole game. There's a beginning, middle and end, with challenges along the way. The game detects the end (and game over) and handles them gracefully. There's a tutorial mode for level 1. There's a high score table, and scoring system encouraging replay.

I've still got a bunch to add. Tomorrow is looking to be a short dev day again so I'm not sure how much I'll get done before Sunday. Things I would really like to achieve before then:
  1. baddies shooting so there's some more variety in the baddies
  2. queen throwing stuff - at the moment the ultimate baddie doesn't fight back :(
  3. health pickup or perhaps pickup count allowing N pickups = health
  4. finish level 2
  5. finish level 3
  6. intermediate spell powerup (bouncing)
  7. secrets? did I say that? shh!
  8. fix circular baddie paths
  9. fix the clouds so you can actually see them ;)
  10. more birds, more powerups

richard on 2009/09/04 12:11 of Easy


Comments: (log in to comment)

great! i always also want to share more tutorials here - there are normally very simple solutions for people improving hugelly their graphic work, simply and in a rush!
maybe would be a good idea pyweek.org having a wiki page where we can share all that useful links we may find? my only concern are those spam bots... :/
this opening screen is not bad, but this year i attended an Alejandro Paul conference about swash typefaces, specially about the readability of uppercase calligraphic text - like the 'TEST' word you have there - in a slideshow he shown a bad example of a Diana Krall CD cover using a typeface he created.
tried easy-aga ('aga' sounds a bit like from Commodore Amiga! ;) - http://en.wikipedia.org/wiki/Amiga_Advanced_Graphics_Architecture )

from terminal:

guest@p4:/mnt/sda1/trabalhos/pygame/recolhas/pyweek/09/_rascunhos/easyaga1_semifinal$ python run_game.py
Illegal instruction
guest@p4:/mnt/sda1/trabalhos/pygame/recolhas/pyweek/09/_rascunhos/easyaga1_semifinal$

illegal instruction, without any further error message? i really can't get it...
Illegal instruction? Sounds like a platform issue (well, more specifically an OpenGL driver bug). What platform, OS, etc? Are your OpenGL drivers fully up to date?
Oh yes, forgot that - i were trying on Ubuntu 9.04 i386, with a simple vesa board - since your previous screenshots of this game were not 3d, i assumed that wouldn't use OpenGL...
Anyway, Richard, i'd ask a fix for the pyweek.org project registering/editing fields, where we must place there all the libraries used on our games, besides the title, description and screenshots, what do you think? this will allow people, at first sight before downloading the game...
that's not a bad idea; I'll add it to the site TODO list :)
The "final" entry is raising this exception:
Traceback (most recent call last):
  File "run_game.py", line 150, in <module>
    run()
  File "run_game.py", line 137, in run
    import main
  File "lib/main.py", line 20, in <module>
    import level
  File "lib/level.py", line 21, in <module>
    import baddies
  File "lib/baddies.py", line 14, in <module>
    import animals
  File "lib/animals.py", line 10, in <module>
    (1, -23, 0, 'bunny-left.png'),
  File "lib/animation.py", line 31, in __init__
    self.frames = [AnimationFrame(*s) for s in spec]
  File "lib/animation.py", line 20, in __init__
    self.image = pyglet.resource.image(name)
  File "lib/pyglet/resource.py", line 500, in image
    identity = self._cached_images[name] = self._alloc_image(name)
  File "lib/pyglet/resource.py", line 443, in _alloc_image
    file = self.file(name)
  File "lib/pyglet/resource.py", line 399, in file
    raise ResourceNotFoundException(name)
pyglet.resource.ResourceNotFoundException: Resource "bunny-left.png" was not found on the path.  Ensure that the filename has the correct capitalisation.


It seems that the bunny-left.png file is missing. Tested on OS/X
Ah. Whoops. The bunny graphics aren't actually used so you may comment out the code that references them. I've re-added them but I'm still not sure I'll actually use them.