Hello,
I have attached my proposal. Any comments are welcome.
Regards,
Istvan
About me
1. Name: Istvan Kurucsai
2. Contact:
e-mail: pistu...@gmail.com
irc: pistukem @ Freenode
MSN: gurth...@linuxmail.org
3. Time Zone: CET
Preferred Language: English
4. Time Commitment:
I am finishing my exams in May and I have got no other work or
school-related commitment in the summer, so I can spend most of
it
working on the project. I am going on a one week vacation in
the end
of July but the exact date is not yet fixed.
5. Programming Experience:
I have been programming in C/C++ for several years now and
started
using Python a few months ago. I worked mainly on university
related
and small personal projects involving 3D graphics
programming/theory, web development and reverse engineering.
I have used OpenGL in several applications and I also have
some
experience with DirectX.
Some of my projects:
- 3ds loader and renderer written in C using OpenGL
- software and fixed function pipeline implementation
of a few
3d effects (cel shading, shadowing) in C/OpenGL
- small web applications in Python using Django
6. Pygame Experience:
Simple programs using pygame
Familiarity with some of the previous years GSoC projects
7. Other Skills:
Strong backgorund in Mathematics.
Reverse engineering experience.
About My Project
1. My project is about implementing "Easy Simple Software 3D" support for
pygame. It would be capable of loading and rendering 3D models and handling
basic OpenGL functionality like lighting. I divided the task into 3
subprojects:
I. Choosing/wrapping an appropriate software OpenGL implementation.
There are several candidates for this (tinygl, sdl-tinygl, vincent).
The chosen implementation has to be fast, reasonably bug-free and
appropriately licensed.
II. Choosing a model format and developing a loader for it.
3ds and obj are the most likely to be used. Both of them has plenty
of documentation/example code, obj is simpler but I already have
some experience with 3ds.
III. Writing the engine.
The main goal is to make the interface of the engine as simple as
possible while retaining functionality. Loading and displaying a
model should be as simple as 2 function calls.
2. What existing or future need does your proposed project fulfill?
3D support is a great feature for any game development library. The
OpenGL wrapper and the loader could be easily used by other projects
too. The software-based nature of this project ensures that a wide
range of platforms and hardware configurations can use it
adequately.
3. Timeline:
Pre-coding period: familiarizing myself with pygame internals, OpenGL
implementations and model formats.
Weeks 1-3: wrapping the OpenGL functions, documenting and testing them
Weeks 4-5: choosing a model format, developing the loader
Weeks 6-7: creating basic engine functionality, with documentation and
tests
Mid-term: the OpenGL and model loader parts finished, some engine
functions available
Weeks 8-11: more functionality, documentation and tests
Weeks 12-14: testing on different platforms, fixing bugs, writing
examples
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 have discussed the project idea with the pygame developers on the
pygame-users mailing list and based on their replies I included time to
test other platforms in the timeline and considered using the obj
format.