This is a little game I made recently and ported to GCW-Zero. It's an arcade kungfu minigame with high scores, good for quick games.
This was originally a submission for pyweek recently: https://pyweek.org/e/Slappa/
But having recently received a GCW-Zero, I decided to port it. Right now there's an opk and Windows download, or if you have Python you can run the game directly (open source, MIT license, various open licenses for the content).
Incidentally, does anyone else have experience using pygame with GCW-Zero? Being quite new to both, I ran into a number of issues. Most are related to pygame, but there doesn't seem to be much in the way of guidelines online, so I thought I might share some tips I found here. Basically, Python and pygame are both pretty slow so in the end I couldn't maintain a smooth 60fps as soon as more than 4 sprites were on screen, so I had to opt for 30fps instead. I think it has something to do with the relatively large sprite sizes - I was working with 256x256 sprite sheets, perhaps that's too big considering the CPU's tiny caches. Next time I might try an OpenGL ES-based framework.
Anyway, here are some tips:
- Always use convert(), or convert_alpha() if you have to. This converts the surfaces to the same pixel format as the screen's, otherwise every blit will require a conversion.
- Use tick_busy_loop; tick is very imprecise.
- Perform as much processing ahead of time as possible - scaling, font rendering, rotations etc.
- Try to pre-render fonts; failing this, try not to use anti-aliasing, it's very slow. A few font renders is ok but rendering a screen full of text will kill your frame rate.
- Color key transparency is faster than surfaces with partial alpha
- Make the sprites as small as possible
- If there is audio crackling, try increasing the mixer buffer size, but not too much as it will increase latency
- Hide the mouse (unless your game needs it)