Google Summer of Code
Since 2005, Google has run an open source software development program specifically for students called the Google Summer of Code (GSoC). Under this program, Google funds students to write code for open source projects during the northern hemisphere's summer timeframe. The student efforts are focused on projects that they themselves propose to projects such as BZFlag, sometimes catering to ideas that the project suggests or ideas entirely of the student's own conception. Student proposals are then reviewed, evaluated, and ranked by the project. Google allocates a certain number of slots to each participating project/organization which in turn determines how many student developers we get to work with.
BZFlag first participated during GSoC's third year in 2007. Given the substantial successes and opportunities provided by the program, BZFlag will likely continue to participate in the program of course per Google's discretion to host GSoC again, our mentoring capacity to successfully interact with students, and Google's renewed approval of BZFlag's participation.
A detailed after-the-fact discussion and analysis of BZFlag's first-year participation in the 2007 Google Summer of Code is included in the article “Postmortem” Perspectives of a First-year Participant in the 2007 Google Summer of Code for BZFlag by Sean Morrison. This article was given to Google in August 2007 as a final report, per se, of our involvement (you're only a first-year participant once).
We hope to participate again. :-)
Preparing an application
There is intentionally no specific format to our applications. BUT... students are strongly encouraged to be detailed, creative, and interactive with the BZFlag developers throughout the application process. Proposals that are detailed in their approach and contain useful background information about the individual's abilities and their ideas will generally receive more attention. Applications should specify what they intend to deliver, a reasonable development timeline, and any implementation details that are relevant such as what language(s) are intended to be used. Fwiw, C/C++ proposals are generally preferred since that is our predominant codebase and developer expertise though others are considered. Students that just submit simple vague descriptions or reiterate the topic ideas we suggest with no detail will be outright disregarded.
Early proposal submission are encouraged as it gives us more time to review the proposal in detail, comment on it, potentially ask for additional input, and iterate with the student on their ideas. In the past, submitting closer to the deadline hasn't been a negative consideration as all submissions are predominantly judged on merit, but submitting and discussing early is an advantage for submissions that have similar goals.
Students should propose what they actually want to work on, how they intend to work on it, what they intend to DO, what they know about that task, some details about themselves, etc. Their ability to perform the task is outright presumed by the nature of submitting a detailed application, so students should propose a task that they are comfortable and knowledgeable with performing within the timeframe of the program and considering any extenuating circumstances.
The application process
Just about every GSoC project receives considerably more project proposals than can be accepted. Each proposal is reviewed, evaluated, and critiqued. Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult. This cannot be stressed enough.. It remains rather hard for most projects to narrow down the submissions but in the end we all only have so many slots to work with and the line eventually has to be drawn. Every application gets read multiple times and reviewed in detail. We thank everyone that submits a proposal to work on BZFlag.
In the end, submissions are selected according to the overall long-term impact that accepting the proposal can make for the game, perception of the submitter's abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to BZFlag. Particular notice is made of students that are responsive to questions and readily interactive in the IRC channel. Communication is a good thing.
While there's never any guarantee that work on any code will be integrated, this is very much the desire and one of the core intentions of participation in the Summer of Code. Students are expected to interact on the #bzflag IRC channel on the Freenode network, abide by the DEVINFO rules, agree to the development requirements, and focus on providing a clean maintainable implementation.
Students that participate with the BZFlag project are required to adhere to specified development requirements, selected students then work on their projects through the summer. Students are expected to be fully integrated with the BZFlag development community throughout the program, actively engaged in their work, and intently working with the other BZFlag developers throughout the design and implementation of their projects. If the student successfully completes what they propose, they are ultimately paid $4500 for their work and the BZFlag community hopefully gains a new long-term developer. In all, the program is a pretty darn good deal for many students, great publicity and marketing for both Google and BZFlag, and a great opportunity for BZFlag development initiatives.
Thanks for your interest and we look forward to seeing students apply!