Friday, February 27, 2009

Ardentryst - a pygame game review

Ardentryst is a really fun open source game made with python, and pygame.

What stands out are the goodness of the graphics, music and sound.

With the feel of the control you have of the characters being another highlight.

It's a platformer/RPG type of game, and there are a bunch of different combo moves you can make as your characters in the game gain more experience. Think tapping different buttons at the right time to do special moves.

You run, and jump across things in the levels destroying baddies as you go.

Currently you can choose from two characters in the game. One is a male warrior, and the other a female wizzard. The feel of the characters seems quite different. Each one gets different abilities, weapons, and spells.

Ardentryst is still being developed, but is already highly playable. I played it for a few hours to complete it with both characters - but there's a bunch of things which can be fun to replay. Like an online high score table, where you can submit the time you have taken to complete various levels.

Sunday, February 22, 2009

Plague - pygame review.

Plague is a game I've been playing for a while now... downloading a new version each time its author Benedict Carter does a new release.

It's not a finished game, the author still has lots of plans for its future, but it is quite playable and fun. It's an overhead game, which limits your line of site on a very large map.

You play in a team of survivors against zombies! It has randomly generated maps, so each game is slightly different. You need to run around to try and kill all of the zombies, and zombie hives(which create new zombies). You start off with no weapon, amongst a group of other survivors. All of you run off trying to grab weapons and ammo (which are conveniently lying around), as the zombies move in to try and eat your brains.

There's a selection of weapons, from a pistol, to a mini gun... as well as different grenade types. Which you can use to burn things -- trees, zombies, or even your self.

If you burn yourself, ricochet bullets off walls into yourself, or a zombie eats a chunk of your brain... you can easily find a MedKit to heal yourself.

It seems you can finish a level in around 10-30 minutes if you're lucky.

Plagues graphics, and gameplay have been improving with each release... and they can only get better.

You'll want python, pygame, numpy, and psyco(optional but recommended) to play this open source game. It runs on windows, linux, freebsd, Mac OSX, and other operating systems.

Monday, February 02, 2009

pygame -- better OSX support, midi virtual keyboard example, basic camera module on windows, imports in ironpython (the .NET/C# python).

Some fairly exciting pygame updates...

Brian has removed the dependency pygame had on pyobjc.

This is important because pyobjc has become not well enough maintained for pygame. It is part of the apple supplied python, but not other versions of python commonly used on OSX. We had to make a binary of it ourselves for the last release -- because there wasn't one supplied by the maintainers.

OSX pygame needs testing as a result of this change... You can download the latest auto-build from svn that passes all the unittests here:

The midi module also works on OSX now... to go with the linux, and windows support. The above automatic builds also include the midi stuff for windows/mac. So you can attach midi devices (like keyboards, drums, guitars, synths etc) and use them to control your game (or robots).

Camera update: There is now a simple implementation of the module on windows using the vidcap module. This is a python module that uses direct show, and directx 8. I'm not sure this module will make it into pygame. We will need to talk with the author of the module to see if we can include it, and also see how easily it compiles (direct show has a reputation of being quite insane to use). However this little wrapper allows almost the same API to be used for camera access on windows and linux. Next will be an implementation that uses python-opencv -- which will make it possible to use on MacOSX as well. This will mean we will have less work to do, but rely on some optional dependencies. In the future, as we implement the camera module on other platforms -- these optional dependencies will disappear. I think this will be the quickest way to get a basic implementation on each platform... and allow us to refine the implementation in later releases. A stop gap measure if you will.

Lenard made a virtual piano example for the new midi module.
. This can be used to play midi notes with your mouse, or other pointing device.

Marcus has been continuing some work on the pgreloaded branch -- the super clean refactor of pygame that includes python3 support amongst other things. It is hoped that pgreloaded will become pygame2 sometime in the future.

pygame is able to be imported into ironpython!!!
Ironclad is a project to allow importing of CPython extensions into the ironpython version of python. Ironpython is the .net version of python, that runs on the .net VM with C# etc.

The subversion ironclad is at the stage where it can import pygame... but still needs a few problems to be fixed before things will run. details here:
. Ironclad is capable of running a good portion of numpy, which shows that it should be able to work with many C extensions -- since numpy is a complex and large C extension module.

Emulating the C API of python will allow ironpython to use many existing optimized C extensions. Now that the approach has been proven to work, I hope other python implementations take note of this research proof -- and provide a CPython API emulation. (I'm thinking of pypy, jython, and tinypy :)

Also... in case you missed it... Simon Wittber has been working on a project involving giant python powered robots!!. Rumor has it that he used pygame for the Human Machine Interface(HMI) portion.