Hi René,

Here's my proposal. Looking forward to your feedback.

-- 
Denis Kasak
About You
=========

1) Your Name: 
        Denis Kasak

2) Contact Information:
        denis.ka...@gmail.com
        IRC nick: dkasak
        ICQ: 46413957
        XMPP: denis.ka...@gmail.com/Laptop
        Mobile: (+385) 99 / 595 - 2655

3) Time Zone and Preferred Language: 
        UTC+1 (CEST), English

4) Time Commitment:
        During the three months of GSOC, I would be available full-time, more 
or less. I've taken care of major commitments (like exams) so they should not 
be disruptive over the summer. I'm confident I could port the major part (if 
not everything) of pygame to tinypy.

5) Programming Experience:
        10 years experience in C
        6 years experience in C++
        6 years experience in Python
        A few years experience in LISP, Prolog, Pascal (not an expert, but I 
have a good working knowledge with all)
        I was GSOC participant last year under tinypy and I've implemented a 
sandbox feature (memory and time limit) for it. As a result I'm very familiar 
with tinypy's internals.
        I'm a teaching assistant for Programming classes in my university
        I've written a small plotting/linear regression/statistical analysis 
library for personal use (for laboratory work in Physics classes)
        A few small personal games like a text adventure and a curses Snake game
        I've submitted small patches/bugfixes to FOSS projects (like Miranda IM)

6) Pygame Experience:
        Not much, but I've often played with it and I use it often to 
demonstrate Python programming in Programming classes mentioned above. I've 
also ported the aforementioned Snake to Pygame sometime in the past (and 
subsequently lost the code in a hard disk failure :-( )
 
7) Other skills and experience that are of interest for your aplication:
        A good knowledge of Mathematics, Physics, Electronics, Signal Theory, 
Game Theory, etc. (my university is a sadistic place :-) )
        I believe I can write pretty good documentation and I enjoy doing it
        Experienced with SVN and some other VCSs (I've particularly been 
interested in DVCS lately, e.g. Mercurial)
        A good knowledge of Linux, POSIX, etc. (I'm a 6+ years user)
        
About Your Project
==================

1) Please explain in 2 to 3 paragraphs the project you intend to complete. 
        My intention is to port pygame to tinypy by using tinypy's C API. This 
would mean implementing most (possibly all, if the schedule allows it) 
submodules of pygame. It would also include implementing unit tests to test the 
new pygame port, either by reimplementing the tests or reimplementing the 
Python unittest module (more likely).
        
        The benefits of such a project are rather obvious; pygame would support 
another cool platform and expand its userbase/usefulness, tinypy would become a 
much more interesting game development platform and it would be of interest to 
the entire game development community.
        
2) What existing or future need does your proposed project fulfill? 
        My project would help pygame by providing a very small and tightly 
integrated Python implementation which could potentially be very attractive for 
game developers (particulary for embedded platforms). tinypy still has a lot of 
room left for optimization and it could provide pygame a very small, fast and 
"no baggage" platform. It would also make tinypy more attractive to game 
developers. Overall, it would be beneficiary to the whole game development 
community.
        
3) Provide a rough timeline for how you intend to complete your project, test 
it, and document it within the allotted time period. 
        week 1: Reimplement the unittest module to tinypy so pygame's tests can 
be used directly. Study the code and documentation for pygame to familiarize 
with the codebase.
        weeks 2-3: Implement the pygame module stub. Port the most important 
submodules to support basic drawing, along with relevant helper modules (the 
surface, display, draw, color, locals etc. submodules)
        weeks 4-5: Port some of the more advanced graphical features, like the 
ability to render fonts and images (obviously, the font and image submodules 
along with transform and rect)
        weeks 6-7: Port interactive features to start being really useful (key, 
time, event and mouse modules)
        weeks 8-9: Port other "usability" modules (like pixelarray, overlay and 
mask (for collisions))
        weeks 10-11: Port high-level features (mixer, music, movie, cdrom 
modules) - this chunk of work could also be resized (by omitting some of the 
modules) to be a safety net in case something goes awry and we need to 
reschedule.
        week 12: Fix bugs, write documentation, packaging.
        
        In the case that some additional unit tests are needed or some need to 
be reimplemented, this would be implemented incrementally after porting each 
module.
     
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.
        I've posted my initial proposal on the mailing list and got positive 
feedback. I was given advice on how to approach unit testing and some other 
general tips.

Reply via email to