Thousand Parsec and Google Summer of Code

Friday, October 17, 2008

This was the second year that Thousand Parsec partook in the Google Summer of Code™, and we accomplished even more than we did in our very successful first year. For those who don't know, Thousand Parsec is a framework for building turn based space empire building games. Many different types of rulesets can be developed which have a wide variety of features.

In 2008, we had 8 students, all of whom successfully completed their projects. Together they made a massive contribution to our code base, writing more than 130K lines of code across 5 different modules. This year we were also pleased to see a great deal more collaboration and interaction between our students and Thousand Parsec's wider community.

One of the most exciting projects to come from Summer of Code 2008 is our new 3D client. This takes our existing libraries and couples them with the sweet Python bindings for Ogre 3D(another 2008 mentoring organization) and builds a rich client full of eye candy. Since the completion of the Summer of Code, Eugene Tan has been hard at work to make his first release happen, and plans are on track for him to do so this week. Check out these screenshots for a preview:

Our primary server also got a workout, with 3 students working hard on improving its functionality. All our students work has been merged into mainline and will be in our next release (which is also being preped at this very moment). Ryan Neufeld and Dustin White both added new "quick play" rulesets, while Aaron Mavrinac added ability to remotely configure the server. This gives people a choice of 4 different games to play, 3 of which were developed as Summer of Code projects.

Our prototype and backup server also got some love with Juan Lafont contributing a quick play game of his own creation called "DroneSec". This ruleset required that he also improve many of the server's features and he is in the process of preparing a release.

Aaron, who initially worked on creating the remote configuration of tpserver-cpp, has also been working hard on adding single player support. His work touched and improved all our of modules and even other students' projects. Aaron is currently driving the next release of our primary client, which will include a wizard leting anyone setup a local game including the server, AI opponents and other options.

Two students, Victor Ivri and Vincent Verhoeven, each worked on creating AI frameworks and testing them out on the new rulesets developed this year. Having two frameworks allows us to continually refine their abilities and skills, giving people the ability to play non-trivial game
scenarios without having to find human opponents.

Zhang Chiyuan's project focused on a completely different tack: adding support for Schemepy to Thousand Parsec. His project allows Scheme to be used from the Python framework. Zhang completely rewrote the existing backends and added a bunch of new backends. In the process, he created a extensive compliance suite which allows for quick checking to ensure our backends are functioning correctly. He has also ported our Python client and servers and to the new interfaces.

Overall, we're very proud of all our students' work, all of which has made a dramatic impact on the health and usefulness of Thousand Parsec. Of course, the entire community hopes they continue to contribute in the future. We would like to thank the Google Open Source Team for all their efforts in running such an awesome program.

Finally, congratulations to all of our mentors and students for their many