2009年5月7日星期四

First article, aheh, yes, it's a technical one again

What is a better way to contribute to an open source project as effective and efficient as you can?
I have been working with pysoy for three days, all things are new for me, so it is natural to think about finding a better way to handle its characteristics and to extend it.

As my role in PySoy is basically a google summer code student, so I should always keep in mind my original proposal subject, that is to add character animation into PySoy.
Be in traditional suitation, I would find the fastest method to add as much structures and functions of character animation as I can. But it is really impossible to do so in current status
of PySoy. There are two reasons: first, programming-in-the-large the framework for module addition of PySoy is currently not mature; second, I don't know much of the languages PySoy says, programming-in-the-small.

All members of PySoy are now actively working for PySoy's beta 3 release, then the first reason may probably be alleviated. Even though the situation isn't perfect, I will feel not
wasting time to find a module addition framework rather than now struggling with semi-completed framework. At this moment, let focus on the second issue.

PySoy uses three programming languages C++\C, Vala, Python now. Python is the essential advantage of PySoy. PySoy is a 3D game engine for Python. Python is a script language and now scripts for 3D game engine. Admittedly, python is only a high level script language, all graphics, physics and windows functions are implemented in C\C++, indeed they
are Gobjects. Then we inevitably need glue language, that is first pyrex, now vala(see "so long, Pyrex!"http://planet.pysoy.org/)

Now the major work of mine is to find the way to implement character animation using Gobject and convert the functions into vala, assuming vala will do all the work of providing
python a interface. Be clear about all these, we can consider more design and implement work. The design work means we should take into account the engine framework proactively more or less before really deal with Gobject engine core construction, they must be extensible, flexible, modular and loose-coupling. The implementation one is how to write character animation code in Gobjects. To say some, character is hierarchical ODE object, and there may be OpenGL shaders.
Besides, deep understanding of vala's design objectives, among Gobject, python and PySoy's are very helpful to contribute to PySoy.
Recent schedule and objectives:
The timeline is rough totally combined May 8 - June 20.

1、Write an example articular character animation using Gobjects as other PySoy examples did.
2、Using vala to translate all the code above into Python extension lib.
3、Embed the lib output above into PySoy and the test python example will be checked.

2009年5月4日星期一

人并不是在有时间时才培养耐心;正确的观念应该是:由于人学会了有耐心,所以才拥有比足够还要多的时间。