Don't know what Thousand Parsec is or want more information? Start Here
Google Summer of Code students, ideas and information are this way!

Single Player released! - A tale of Google Summer of Code

by Mithro

Thousand Parsec is pleased to announce our first release that includes single player support. Now all of our players can easily enjoy the game at anytime, whether or not they can find other interested players. We've made several other improvements with this release, but this feature is the most significant change for 0.3.2. Binaries are currently available for Windows and will soon be available for other systems (but you can always grab the code from our repository!).

Single player support is a huge step forward for us, as it gives players a quick way to get involved with minimal fuss. We have strived to hammer out this functionality for the past 3 years. Better still, contributions from Google Summer of Code students have allowed us to reach this goal.

The story of this release is long, and has its beginnings back in 2008 when Thousand Parsec joined Google Summer of Code for the second time. The previous year's GSoC had been very successful, and we were looking to achieve even more success in round two.

Ezod is our first Summer of Code student. He was pivotal in making this new release possible. At the start of the summer, he proposed an interesting project, "Add single player support to Thousand Parsec". Little did he know what he was getting into!

To the naive, this may have seemed like a simple project; all it needed to do was start up the server and an AI or two in the background. The proposal actually meant that Ezod would have to touch almost every part of the code base and project infrastructure, from the servers, through the AIs, to the clients. Thousand Parsec was never really designed to work in this way, as everything designed to run standalone.

We had no qualms about Ezod's skill having already started submitting patches and packaging Thousand Parsec for Gentoo, but the extent of the changes needed for the proposal to work still raised some skepticism. To make things tougher, we had received a large number of quality applications, meaning that we had plenty to choose from.

Luckily, Google blessed us with more slots then we could manage (we ended up giving back two) and it was decided to take a risk. By the end of the summer Ezod had not disappointed -- he had the basics working -- but it would take another 9 months and integrating the work of two other students before we would reach the release we have today.

One problem we faced was that a game is not fun if you don't have any competition. This is were our second Summer of Code student joins us.

Iwanowitch put in a proposal for creating a rule-based AI for Thousand Parsec. His proposal was one of the two AI projects accepted as part of the 2008 Summer of Code.

The AI originally targeted the RFTS ruleset, which was developed as part of our first Summer of Code. While functionally complete, it ended up having a number of show stopping bugs for AI development. This only became clear halfway through the summer with the mid-term evaluations coming up.

The mentors put their heads together, and the best solution we could come up with was for the AI to switch to a different ruleset. This decision would later decide which ruleset Ezod would support in single player mode.

Thanks to a good design, by the final evaluation, Iwanowitch had his AI competing against the second AI being developed over the summer. Ezod then worked with Iwanowitch to integrate the AI into the single player mode, and it has now become the major opponent that everyone who tries out Thousand Parsec will play against.

So which ruleset did they switch to, you ask? Well, that is where our third summer of code student comes in.

Jphr proposed (and was accepted) to create a new ruleset for Thousand Parsec. Not having any C++ experience at all, he choose the ambitious goal of developing a modified version of the risk board game for the C++ server. He charged through the development, and by the mid-term evaluation the core rules had already been well developed and he was working on more advanced features such as custom maps.

It made sense for us to suggest that the AI guys target this ruleset. It had already been shown to be solid and it helped relieve some of the painful process of finding bugs. This also meant that with Ezod's help, Jphr's ruleset has gone on to be the first to be fully supported by single player mode.

So that is the story of how three students' work came together to produce this release. Both Iwanowitch and Ezod will be joining Thousand Parsec as Summer of Code mentors this year. These were not our only successful projects for Google Summer of Code 2008 -- in fact, all of our projects achieved success that year and more can be read about the others on our website.

Sound like everything for Thousand Parsec has already been finished? Far from it! We are glad to be participating in GSoC once again, and I hope this story has inspired you to be part of Google Summer of Code and part of the Open Source community.

Posted: 2009-03-31-2300