Skip to main content

Pygame development - todo list — wiki

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

Bugs

Bugs to fix as soon as possible.

Open Issues

pygame.Camera - Video for windows version of

API docs: http://msdn.microsoft.com/en-us/library/ms713492(VS.85).aspx

Simple fasm version that seems to work on a number of computers: http://flatassembler.net/examples/fasmcam.zip

Nehe tutorial on how to use video for windows to read from avis onto opengl textures. http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=35

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.

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 _numpysurfarray.py has been replaced with generic array operations written in C.

freetype module.

  • if possible, add render options to ignore or raise exceptions for unrecognized charachers (may have to wait).

February 13, 2012 - Ready for inclusion with first Pygame 1.9.2a1 release.

New SDL 1.2.x release.

Done
Feb 13, 2012: At SDL 1.2.15 for Windows. This will be the version included in the Pygame 1.9.2 release Windows installers.

Wishlist

Event Binding

Provide a module that wraps pygame.event and handles events in a similar way to python turtle.

pygame.surfarray

Done

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 _numpysurfarray.py 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

Documentation

  • 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.

Website

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.

Patches

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://irc.freenode.net/pygame

Focus of this sprint