These are some ideas for projects for pygame in the google summer of code 2008.
Here are the different mentoring organisations that would be interested in doing pygame related projects.
Please have a look at their ideas pages for pygame related ideas. Best to join up with their mailing lists if you're not already, as well as the pygame mailing list to discuss your ideas.
Most laptops come with webcams, so they present a new form of input from the computer, even more common than joysticks.
Simple, and portable to at least to linux, windows, and Mac OSX. Implemented in C so it can be shared with the wider SDL community.
Have a look at existing python, SDL, and other webcam libraries for inspiration:
vidcapture (windows only) opencv (windows, linux, OSX) CVtypes (windows, linux, OSX) using ctypes to wrap OpenCV portvideo http://reactable.iua.upf.edu/?portvideo SDL_bgrab http://www.ferzkopp.net/joomla/content/view/20/14/
Line in, microphone, streaming from external media through pygame and so forth.
During the europython 2007 pypy sprints some people made a proof of concept pygame running on the flash vm. Another sprint is going to continue this work at pycon 2008 to get pygame games running unmodified (or mostly unmodified) on flash.
tinypy is a tiny version of python, with less than 64K of source code. Porting pygame so it works on tinypy would mean a very minimal python optimised for pygame games.
OSC is like the new midi protocol for networks. This would let pygame talk to a ot of synths, and music programs. It's a latency aware protocol, so it has high resolution time stamps, and bundles of atomic operations, and you can schedule events in the future etc.
All things which are useful for interactive music stuff, but also for games. There's already code that does this, and pygame would then be more useful for multimedia and art type applications.
Links about it:
There were something like 12 student applications for this in 2006.
Possibly tinyGL, and a few extra parts, or just something like a textured polygon drawer. Basically: model = load_model();model.render(screen, (0,0))
Alpha channel of 8-bit palettes
Float formats
Stuff like mjpeg, animated GIF support, etc.
Math for pygame, like vectors, basic matrix, line polygon intersection, etc.
Using numpy is always an option, but there's a few reasons to include some types useful in graphics and games:
ai. A*, flocking etc.
Get a decent vectorizing compiler like vectorC or an intel compiler to help generate mmx assembly for a lot of stable functions.
Architecture specific modules compiled. This could even take advantage of normal gcc optimization flags, which can give a nice speed boost, eg. surface.so, surface_686.so, surface_x86_64.so.
So the setup.py could be changed to compile with different CFLAGS, and then have the modules load the correct one for the particular cpu at runtime (if the module is available).
ffmpeg ripoff or something like that.
SDL_gfx integration, long promised to work on it by Marcus but still not started with it. Andreas (the SDL_gfx author) is highly interested in a better SDL_gfx, which in turn can enrich pygame.draw and pygame.transform.
http://antigrain.com/ - only suitable up to version 2.4 due to the license change to GPL for 2.5 and above.
Improved font support (BDF, PCF, TTF, bitmap tables). Especially BDF and PCF are interesting for low resource platforms, such as embedded devices, which also can be interesting for pygame.
Generalize the sprite system to make it more flexible without its current overhead that does not fit for many games.
Add a basic scene and state system support for 2D stuff and keep itas generic as possible.
Revive pygame-ctypes for fast prototyping and a better idea flow in both directions (there's a large user base interested in pygame-ctypes)
Using some of the real time video effect plugins would be good. There's a video effect plugins that would also be kind of fun for games too.
Probably be a pretty simple module to write to allow using the video effect plugins.
http://www.piksel.no/pwiki/LiViDO
http://effectv.sourceforge.net/
Also some of the video stuff from freej (an SDL based VJ software) could be cool to place into pygame. Of course freej uses livido plugins for effects too.
Create a complete SDL wrapper under pygame.sdl. Low-level objects such as the Surface could be enhanced to reflect the full capabilities of its corresponging SDL implementation.