I attended an excellent workshop on creating games with Python, by Denis Kovalev (@aikikode). We got a good overview of the different library options available for building games: 2d (pygame, pyglet, kivy), 3d (pyggel, panda3d), physics (pymunk, pybox2d, pyode, panda3d) etc. Denis selected the combination of pyglet and cocos2d as being the current best choice. We didn’t use it, but pymunk was suggested as the best physics engine choice. Denis also recommended Tiled (http://mapeditor.org) for creating and editing 2d maps.
We built a simple game from the ground up in 6 stages. The source code for each step in the workshop is available here: https://bitbucket.org/aikikode/cocos2d_example_game/src
To install the needed components, just do:
sudo pip install --upgrade http://pyglet.googlecode.com/archive/tip.zip<br />
sudo pip install cocos2d<br />
One of the delegates also recommended looking at http://www.alice.org/ which is a tool aimed at teaching programming by creating 3D games.