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

Re[4]: [pygame] GSoC Easy simple software 3d



Hello,

I have attached my proposal. Any comments are welcome.

Regards,
Istvan
About me

	1. Name: Istvan Kurucsai
	2. Contact:
			e-mail: pistukem@xxxxxxxxx
			irc: pistukem @ Freenode
			MSN: gurthang@xxxxxxxxxxxxx
			
	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.