Clone wiki

pygame / todo

This page details the outstanding bugs, patches that have been submitted - that still need work.


Bugs to fix as soon as possible.

Open Issues

pygame.Camera - Video for windows version of

API docs:

Simple fasm version that seems to work on a number of computers :

Nehe tutorial on how to use video for windows to read from avis onto opengl textures.

OSX Scrap clipboard

The MacOS X support only works with text so far. Need to make changes to fix it up for BMP and other stuff. QNX support has been dropped for this release - since it seems like too much work, and no one is using it.

pygame.Camera with quicktime on macosx

See visionegg for windows quicktime implementation with ctypes.

fix up for py3k

Current progress in porting Pygame 1.9 to Python 3.0: the python3 branch

pgreloaded branch has made changes already.

See here for notes on porting to py3k:

fastevent as default event module

Make event into oldevent module. Keep fastevent name there, but make it also as the event module name. This is because more people are using threads, and fastevent is much better in threaded conditions. Need to:

make sure docs and tests are ok, some testing to see if games behave correctly figure out what to do with the peek call which doesn't exist with fastevent. (probably get it to raise NotImplemented error with a nice description of why it is bad, and let people know old event exists).==== Keyword method signatures

So all pygame methods can accept keyword arguments.

update - completed methods and functions: surface.blit and fill , mixer.init and pre_init . ==== Complete tests for all untested things.

There's about at least 250 or so tests that need to be implemented.==== pygame.midi - include portmidi bindings

So pygame can do midi in and midi out. This has been started. Need to finish... docs tests expose the rest of the functionality from the pypm module. make a background thread for midi input, converting to pygame events automatically. figure out how MIDIIN event type can be put in nicely with user events. look at including nosuch.midi things. Including midi file reader, scheduler and other such goodies.==== Mark Numeric as depreciated, even more explicitly.

Let people know to move over to other methods instead of Numeric more explicitly in the docs.

update Sept 2, 2010 - Pygame 1.9.2a0 now supports NumPy in Python 3.1.

update Feb 22, 2011 - Most of has been replaced with generic array operations written in C.

freetype module.

The module has a flaw in calculating the boundary box of a string. In particular, it fails to return the right height for a string containing both characters with ascenders and descenders. A unit test exposes the bug. It may crash the interpreter.

  • Complete memory error handling (done, hopefully)
  • Enable building by default
  • Make file name handling consistent with other module (fsencoding branch) (done)
  • if possible, add render options to ignore or raise exceptions for unrecognized charachers

New SDL 1.2.x release.

Is expected around late December 2008, or early 2009.

Be good to time 1.9 release after new SDL is released.

update Sept 2, 2010 - Pygame 1.9.2a0 has been built and tested with SDL 1.2.14 on Windows XP.

pygame reloaded

pygame reloaded, aka pygame 2 is a partial rewrite/refactor/cleanup of pygame. However note, there will be a pygame 1.9 and possibly other releases too in 1.x series.= Will do later after pygame 1.9



Speed up the surfarray functions for the numpy implementation (array_colorkey is more than 50 times slower than the Numeric implementation for 24bpp). The problem resides in array2d(), where triplets are padded with 0-bytes.

Most of the Python code in has been replaced with C code. pygame.Surface now exports views using the NumPy array struct interface. _arraysurfarray.c has been extended and renamed pixelcopy.c. It, too, is implemented around the array struct interface. So NumPy specific procedures have been replaced with generic array operations.

array_colorkey for NumPy is now only slightly more than 2 times as slow as for Numeric. This is likely due to the general nature of the pixelcopy.surface_to_array copy loop: it can copy to any sized target integer dtype. A specialized loop for dtype 'u1' should be comparable to Numeric's array_colorkey. See surfarray_profile for details on the profile performed.

For consideration:
  • Add optimized loops for common cases
  • Add new buffer protocol when the protocol is finalized and memoryview is properly implemented


  • Go through doc comments and add them
  • Make a 'how to compile with msvc on windows'.
  • mingw compile doc fixes.
  • note thread safety, and which functions release the GIL.


rewrite in python!!! have a set of maintainers, rather than one

  • Add some anti-spam code!!
  • feed(rss, atom) for wiki recent changes.
  • Menu to use alternating background colours - to make it easier to read.
  • Optional email notification on project change, including release and comment. A per user, per project option.
  • Nicer urls for projects. eg projects/512/zanthor/
  • detect tabs in code blocks, and convert to spaces. Either ask to convert to 4 or 8 spaces, or do some magic to figure out how many spaces.
  • Browsing projects in more ways. By ranking, by date.
  • Spotlight projects changeable from management area.
  • Fix website for looking ok in 800x600 resolution - the header does not scale down well.
  • Add a svn/git/.. checkout link field to the projects 'Links' field - Going to the projects site would not be neccessary.


Mini sprints

The weekly pygame mini sprint only goes for 3-6 hours. We're working on getting pygame released, as well as making plans, fixing bugs, writing docs, writing tests, testing, adding features and having a bit of a fun old pygame coding time.

Using this link you can find out what time it starts in other places: world time server page

Australia Victoria - 6:00 AM Saturday, June 19, 2008 Germany - 10:00 PM Friday, June 18, 2008 USA Colorado - 2:00 PM Friday, June 18, 2008

More people who would like to join in the merrier! If you want to try and get a bug fixed, talk about adding some feature, or learn about coding in C with python/SDL/pygame then it would be good to join in. Hopefully the regular sprints will add some more enthusiasm about pygame development.

IRC channel is the normal pygame one: [[irc://]]

Focus of this sprint