Pygame-ctypes

Pygame-ctypes is a reimplementation of Pygame using ctypes. Internally, it uses SDL-ctypes, a wrapper around SDL using ctypes. Both Pygame-ctypes and SDL-ctypes are maintained by Alex Holkner and supported by Google Summer of Code 2006.

What's it for?

Pygame is a Python package which provides a simplified interface to the graphics, audio and input functionalities of SDL. Until now Pygame was written as a C Python extension. This reimplementation is written purely in Python, giving benefits such as:

As far as possible Pygame-ctypes has been made API compatible with Pygame. However, several new features have already been introduced that are not available in standard Pygame:

Requirements

The following libraries are optional but are required for some of Pygame's functionality:

Any of the following array modules can be used for the pygame.surfarray and pygame.sndarray functions, and for speeding up some image operations:

Download

Documentation

Documentation is included in the source distribution under the doc directory. It is also browseable online:

Runtime eggs

Download and install setuptools, then add the following to your source to use the eggs:

from pkg_resources import require
require('Pygame-ctypes>=0.09')

There's no need to install these eggs, just make sure they are either in the working directory or a directory that's in sys.path.

Python 2.3
Python 2.4
Python 2.5

Source release

The latest source release for both Pygame-ctypes and SDL-ctypes is:

SVN Repository

You can also access the SVN repository directly:

svn co svn://pygame.org/svn/pygame/branches/ctypes-soc

Installation

You should generally not install Pygame-ctypes, as it will replace the standard Pygame package. Because Pygame-ctypes doesn't need to compile anything, it can run straight from its own directory (or from an egg, see above).

For example, on Linux, Mac OS X or Cygwin, let's say you've downloaded and extracted the source release to /home/joe/pygame-ctypes-0.09. Now you can run your existing Pygame games by including this path near the start of your PYTHONPATH:

# Using bash:
PYTHONPATH=/home/joe/pygame-ctypes-0.09:$PYTHONPATH; export PYTHONPATH

# Using csh:
setenv PYTHONPATH /home/joe/pygame-ctypes-0.09:$PYTHONPATH

python mygame.py

On Windows, assuming you downloaded and extracted the source release to c:\pygame-ctypes-0.09:

# At the command prompt:
set PYTHONPATH=c:\pygame-ctypes-0.09

python mygame.py

Remember to set the PYTHONPATH environment variable each time you open a terminal or command prompt, or add it to your startup file.

Mac OS X users: you should use pythonw, not python.