[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] best gsoc idea EVER for someone: porting pygame to SDL 1.3
Here it is. I know its largely identical to the first app, but don't break what works, eh?
-Tyler
On Wed, Apr 1, 2009 at 2:47 PM, Tyler Laing
<trinioler@xxxxxxxxx> wrote:
After some thought, I've decided I'll also submit an application for doing this. Give me a bit, and I'll have an app to be reviewed.
-TylerOn Wed, Apr 1, 2009 at 7:37 AM, Ian Mallett
<geometrian@xxxxxxxxx> wrote:
Multiple windows = better than threads.
In one of my programs, I used a thread to open a separate window to display an image--the image had to be made into a string and sent in packets through a socket to get to the child...
--
Visit my blog at http://oddco.ca/zeroth/zblog
About You
=========
1a) Tyler Laing
1b) Contact information:
trinioler@xxxxxxxxx
zeroth@xxxxxxxx
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 port pygame from SDL 1.2(Stable) to SDL 1.3(Development). This would entail determining which features and parts of the API are solid, and then writing the appropriate wrapper around those functions. Ideally, a large part of the pygame internals could be expected to work as before, with certain portions recieving a large rewrite to work with the new SDL 1.3 internals and api.
Because SDL 1.3 is still in development, but with many important features and parts of the api now currently frozen except for bug-fixing, this means that Pygame and by extension Python would have more advanced features, like multiple windows, multiple displays, access to 2d acceleration, and many more.
2b) What existing or future need does your proposed project fulfill?
At the moment, Pygame is wrapped around the stable SDL 1.2 branch, while active development is being pursued on the SDL 1.3 branch. Because SDL 1.3 has several exciting new features, like multiple windows, multiple displays, 2d hardware acceleration, and texture support, this would give pygame modern game features and performance, while at the same time retaining the ease of development and use of the Python language.
In addition, largely because of the 2d hardware acceleration, this will allow for more complex games to be written with pygame which, again, benefits the community at large. Improving pygame allows for Python to tout it as an excellent, albeit optional, benefit, which would attract more young programmers to the community.
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 SDL 1.3 branch, to determine what features and parts of the api are finished.
Week 2: Develop User stories for the new features. 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 multiple windows and displays, and 2d hardware acceleration.
Week 3: Multiple windows and displays wrappers.
Week 4: 2D hardware acceleration
Week 5: Texture support
Week 6: Develop further unit, performance, and acceptance tests. Clean up documentation. Alpha Release.
Week 7: Add further SDL 1.3 features, like the multitude of sound improvements, allowing for cleaner, more dynamic sound options for games.
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.
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.