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

Re: [pygame] GSOC: pygame module for tinypy



Hi René,

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

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

1) Your Name: 
        Denis Kasak

2) Contact Information:
        denis.kasak@xxxxxxxxx
        IRC nick: dkasak
        ICQ: 46413957
        XMPP: denis.kasak@xxxxxxxxx/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.