Pygame hopes to mentor some students under the Python Software Foundation (PSF) umbrella for Google Summer of Code 2009. If you are an interested student or mentor, please contact us on the Mailing List or IRC Channel to discuss ideas. You should also take a look at PSF's GSoC pages:

  1. http://wiki.python.org/moin/SummerOfCode/2009
  2. http://wiki.python.org/moin/SummerOfCode/Expectations

Student Application Template /h2>

Students should adhere to this application format when submitting their final proposals, and it is also a useful set of guidelines to consider when forming and discussing a project proposal.

About You
  1. Your Name
  2. Contact Information. This should include your email address and IRC nick; Gtalk, AIM, MSN, or other modes of communication are optional.
  3. Time Zone and Preferred Language (spoken, not programming)
  4. Time Commitment. Briefly explain how much time you would have over the summer to complete your project, and any significant other time commitments.
  5. Programming Experience. This can include personal, open source, school, or professional projects you have undertaken or helped with. URLs would be very helpful.
  6. Pygame Experience. Describe any experience you have using or developing Pygame.
  7. Other skills and experience that are of interest for your aplication (e.g. in-depth math knowledge, excellent writing and documentation skills, etc.)
About Your Project
  1. Please explain in 2 to 3 paragraphs the project you intend to complete.
  2. What existing or future need does your proposed project fulfill?
  3. Provide a rough timeline for how you intend to complete your project, test it, and document it within the allotted time period.
  4. Describe how you have brought your project proposal to the Pygame community, their reactions to your proposal, and revisions you have made based on those reactions. (Hint: This is something you really want to do before submitting your application.)

Projects

This is a list of projects, sorted by difficulty, that students could take on for GSoC 2009. Feel free to suggest other projects, keeping in mind that they need to be doable in one summer.

Easy

These projects can be completed mostly or entirely in Python, or involving porting existing work.

pygame-ctypes

Revive pygame-ctypes for fast prototyping and a better idea flow in both directions (there's a large user base interested in pygame-ctypes)

Reading and understanding C code as well as being familiar with Python and ideally ctypes should be no matter for interested developers.

Improved Sprite and scene system

The sprite system of pygame is currently very specific and does not fit the requirements for many games.

This involves a lot of prototyping, sharing design ideas and to communicate a lot with the whole community. You should have made your first steps with Python already and be highly communicative.

pgreloaded Documentation

Mentor: Marcus von Appen

pgreloaded is a complete rewrite of pygame, featuring a different API and ABI. Its documentation system is at a very early stage and requires several improvements.

Developers should have basic knowledge about Python, XML, reStructuredText and excellent writing skills.

pgreloaded example suite

Mentor: Marcus von Appen

pgreloaded is a complete rewrite of pygame, featuring a different API and ABI. It currently does not have many (not to say no) examples suitable for learning the API.

This is a good task for Python and pygame beginners. You will have to communicate a lot with the developers and to think about how to improve the API to make it easier for both, the examples you write and users who choose pgreloaded for their project.

Medium

These projects are deeper and would require using the C Python API, and coding in C and Python.

Camera Module for Windows

Mentor: Nirav Patel <nrp>

Pygame currently supports camera access for v4l2 cameras in Linux. Adding Windows support would require knowledge of Video for Windows, DirectShow, or Direct3D. The goal would be to make cameras usable in Windows under the same API as Linux. This project would require using the Python C API. Below are some references:

{{todo#pygame.Camera - Video for windows version of}}

This requires some knowledge of the Windows API as well as robust C coding skills.

Camera Module for OS X

Mentor: Nirav Patel

This is similar to the project above, but would likely use the QuickTime API. See: http://developer.apple.com/documentation/QuickTime/Conceptual/QTKitProgrammingGuide/

Improved font support

Mentor: Marcus von Appen

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.

You should also have good C coding skills as most of this will have to be done in C and Python

pygame for tinypy

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. Your journey will take you to the land where bits and bytes are counted, so be sure to fasten your C belt and have your good C coding skills around.

Easy simple software 3d.

Software 3D with the possible option of adding hardware 3D support would be nice to have. Possibly something like tinyGL being used by pygame , and a few extra parts, or just something like a textured polygon drawer. Basically... model = load_model();model.render(screen, (0,0))

You will require some knowledge about 3D APIs and techniques, good C skills and to be strong enough to survive the 2D vs. 3D debates.

Math for pygame (vectors, matrix, etc.)

Mentor: Marcus von Appen

Using numpy is always an option, but there's a few reasons to include some types useful in graphics and games:

Be aware that you should be familiar with the basics of vector and linear algebra already and have some good C skills. If you just started with the OO parts of Python, but have some good knowledge about what is written above, this might be the project for you.

Improved graphics format support

Mentor: Marcus von Appen

Pygame could deal with even more graphics formats. This would widen its usage fields and allow developers to stick with their preferred graphics requirements.

You already should have some undertanding about colour spaces, image formats and conversion routines as well as good C coding skills.

Pygame website rewrite

The pygame.org website needs to have a redesign and rewrite in python. This includes

Very good webdesign skills, knowledge about content management systems and wiki systems are mandatory. As you will have to write anything in Python, a reasonable knowledge about it is required as well.

SDL_pygame

Mentor: Marcus von Appen

A pure C library port based on some parts of pygame has been started recently. It aims to clearly isolate certain parts of pygame and wrap them up in a set of functions and modules for C/SDL developers.