I spoke this week with Thomas Kinnen of the Unknown Horizons project, which participated in the Google Summer of Code this year.
Rich: Tell me briefly about your project, and what it does.
Thomas: Unknown Horizons is a 2D realtime strategy simulation with an emphasis on economy and city building. The idea is to build a settlement on an island and expand your small settlement to a strong and wealthy colony, collect taxes and supply your inhabitants with valuable goods. You strive to increase your power with a well balanced economy and with strategic trade and diplomacy. Anyone familiar with Anno 1602 or any of its sequels will surely be familiar with the concept. The great Anno series served as a great source of motivation and inspirational example for our project.
Rich: What were your GSoC students working on this summer, and were they successful?
Thomas: We applied to GSoC together with our graphics engine FIFE (www.fifengine.net) and received three slots. One slot went to FIFE and two to Unknown Horizons, same as last year. The student working for FIFE worked on integrating different GUI toolkits with the engine, for example librocket and ce:gui. He did a great job and easily passed the final evaluations.
On Unknown Horizon’s side one student worked on enhancing the multiplayer mode and one worked on extending our current AI to use the games combat features. Our student working on the combat AI did a great job and easily passed the final evaluations. His work has already been merged into the main line of development.
Sadly we had to fail our student working on enhancing the multiplayer mode at the midterm. Failing one of our students was probably one of, if not the, most difficult decisions we ever had to make with the team. In the end we think we made the right decision, as the project was not working out as good as we had wished. The learning we take away as a team is that we will have to talk to the students even earlier in a very clear way (“You will fail if you don’t do/change x,y,z”). A lot of feedback that we felt should have been pretty clear turned out to maybe be not as clear to the student as we had thought. Nonetheless, we were also not very happy with the performance as we didn’t feel an improvement on the students side during the first part of GSoC and his mentor felt that his input was not being taken into account. As I already said, it was a very difficult decision we had to make and it was not taken lightly.
Rich: What would you tell other projects that are considering GSoC for next summer? Was it worth it?
Thomas: Do it! I think it has been a great experience this and last year. It greatly helped to improve our project and we gathered a few new contributers through GSoC, which is what really counts. Do not take GSoC lightly though, it will take a lot of your organizations time. Every mentor should be willing to invest at least 10 hours every week during the entirety of the project — that’s a lot of time! Nonetheless it will be rewarding for the mentor, the student and the organization if everything turns out well and even if it doesn’t you will probably learn a lot in the process.
Rich: What did you learn through this process? What did your student learn through this process?
Thomas: I already talked a bit about the problem of having to fail a student, but let me also give some tips on how to successfully engage the student into the team by telling you what we do to integrate our students into the community and keep the communication going. At Unknown Horizons most of our communication is held through IRC, not mailing lists or forums. We have a weekly meeting in which we require every student to give a short update on what the student has been working on the entire week. This helps the entire team stay in the loop on the student’s progress and allows the student to gather feedback and opinions from the team on the student’s ideas and thoughts. Secondly we require our students to give a daily (not weekly!) short report to the mentor. This report includes three things:
1) What has the student been working on and accomplished yesterday
2) What has he planned to work on next
3) What are the students blockers and problems, where does he need feedback/help quickly.
This helps the mentor stay up-to-date easily on what their student is doing and allows the student to request in a simple and non formal way. As a mentor I’ve always found this really helpful. Don’t mistake this for direct communication via IRC or any other direct channel though. It is more of an add-on and the mentor should make sure to talk with the student on a regular basis (e.g. at least once a day).
Rich: What will you do differently next year?
Thomas: Be even more thorough on the selection process, although we already require every candidate to deliver at least one patch, so that we can see if he is capable of performing the task in the way he claims to be able to. Also as explained above, we’ll try to be even more direct with giving negative feedback, if it has to be done. Other than that, I think we are setup pretty well and will most probably apply for GSoC again next year.