[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] Last Draft

Okay, so this is the version of the application I will be submitting to the PSF tomorrow.

Let me know if you think its lacking in anything, or needs anything else.


Visit my blog at http://oddco.ca/zeroth/zblog
About You

1a) Tyler Laing

1b) Contact information: 
	AIM: zerothofthelaw
	MSN and Hotmail: cooltlguy@xxxxxxxxxxx
	Meebo: Locus

1c) Time zone: PDT and language preferred is English. 

1d) Time commitment: 
	Over the three month period, I would devote at least 40 hours or more to the project. About the only other time commitment I'd have would be my birthday, and a few spare-time projects. But otherwise, the GSoC project would be my job for the three months.

1e) Programming experience:
	~6 years programming in Python
	~2 years programming in C
	~4 years programming in Java(not willingly, mind you!)
	Spent the better part of a year working on a mud with Nakedmud (http://homepages.uc.edu/~hollisgf/nakedmud.html) No successful mud unfortunately, due to dissatisfaction with the mud design.
	Contributed information and decompilation data from the firmware of an mp3 player I had for rockbox.org
	By the time GSoC starts, I will have 3 group projects under my belt, all three involving design documents, specifications processes, and the use of svn.
	A couple of terms experience with MIPS assembly language(I'm even a teaching assistant for the class!)
	Contributed python development documents to the OpenMoko wiki

1f) Pygame experience:
	Simple and buggy clone of breakout
	Two different map editors
	A particle engine

1g) Other skills and experience:
	Experience with svn and version control systems
	Excellent non-fiction writing skills
	Experienced with technical communication, via mediums like forums, mailing lists, and irc.
	Three years running Linux. I do have windows on a guest VM for the rare(very rare) times I need windows. So I can produce packages for *nix and Windows.
	Pretty good at error-fixing
	Good sense of humor
	I also speak with a slight but definite Canadian accent. Make of that what you will, eh?
	I'm a pretty damn good cook, if I say so myself.

About Your Project

2a) Please explain in 2 to 3 paragraphs the project you intend to complete.
	My proposed project is to add full movie support to the pygame libraries. This would be done by writing a wrapper around the ffmpeg libraries. One possible method is using the SDL_ffmpeg wrapper that is already under active development. The development process would entail studying the ffmpeg library to see what it is capable of, to ensure as many features as possible are available to pygame.
	Then, the project would begin working on a C wrapper for either SDL_ffmpeg or ffmpeg itself, to allow it to be loaded into Python. The initial focus would be on enabling the most basic features, leaving the other wrapper functions as stubs. AS development progresses, alternating between filling in the stubs and fixing bugs, more features would be enabled.

2b) What existing or future need does your proposed project fulfill?
	Currently, pygame's movie support has become unstable, through no fault of their own. For developers wishing to make a complete game with cutscenes, this is frustrating. This project is meant to fulfill the need of the pygame community for a good movie player module, thus improving the potential quality of games and apps made with pygame. In addition, with proper design, the movie module could be integrated on its own into other python projects, for example creating a high-quality media player, or even a media editing program. Such a module would definitely help bolster Python's reputation for having a module for everything. 

2c) Provide a rough timeline for how you intend to complete your project,
    test it, and document it within the allotted time period.
	Week 1: Examine ffmpeg and SDL_ffmpeg libraries to determine the depth of features available. At this point, either SDL_ffmpeg or ffmpeg would be picked.
	Week 2: Develop User stories for the movie module. This will allow me to develop interactive acceptance tests of the module, ensuring the module satisfies the user stories.
		As well, unit tests and performance tests would be developed for the most basic functionality, that of loading media, and then playing the media.	
	Week 3: Media loading wrappers
	Week 4: Most basic movie playback wrappers
	Week 5: Extend movie playback wrappers
	Week 6: Develop further unit, performance, and acceptance tests. Clean up documentation. Alpha Release.
	Week 7: Add further ffmpeg features, like sound channels.
	Week 8: Develop further unit, performance, and acceptance tests for new features. Add more documentation.
	Week 9: Evaluate and refactor api with feedback from community and mentor
	Week 10: Add further features, fix bugs and errors that show up.
	Week 11: Begin packaging process for *nix and hopefully Windows.
	Week 12: Code freeze, final week of testing. Beta Release.

-As a note, in case ffmpeg breaks badly on another platform, the api would be library neutral, so another codec library could be substituted if necessary. Ideally the majority of the code would be library neutral, in case ffmpeg or sdl_ffmpeg does not fit the needs of Python and Pygame.

2d) 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)
	I posted on both the pygame and python mailing lists, and received a lot of great support. Offers of help with the application, and advice for the application progress were given. Once a draft application was submitted to volunteers, they offered advice on the schedule, and further questions on skills and knowledge I had not thought to put in.