GSoC overview


Google Summer of Code 2014

During the Google Summer of Code google will pay students to participate in open source projects - see the link for additional details. Your work will be released under an open source license, in case of STK that will be GPL 3.0. Make especially sure that you fulfill GSoC's eligibility criteria.

After a very successful GSoC 2013 we will try to participate again, i.e. become a mentoring organisation. That means (if we get accepted) that students can work on SuperTuxKart and receive money for it. They will be mentored by one of our experienced developers, and get some good work experience to start their career. Note that while SuperTuxKart is a game appealing to younger audiences, the code base is rather complicated, and our suggested tasks will certainly challenge students.

Our list of ideas or suggestions is online. Be aware that this is just a list of suggestions, and that students are welcome to apply with their own ideas. However, the number of experienced mentors is somewhat limited, and our list of ideas was chosen since those tasks would be most beneficial for the development of SuperTuxKart. If you apply with your own idea, please make sure to discuss this with us beforehand.

Sounds great - What should I do?

First of all make sure to have played STK, and have a look at our milestones page to see where we want to go. For any further steps you need at least some basic familiarity with GIT (if you don't have GIT experience, the Pro Git book is a good start, especially the beginning chapters).

STK consists of two packages: the code package on github, and an 'asset' package which contains all karts, tracks, and other large binary files. Details on how to install are on our wiki. You can also find build instructions here, including guides for compiling from source on all major platforms on the same website. Note that you will not have to work with the svn, all GSoC tasks will be limited to changes to our GIT repository.

Have a look at our coding style and study our code, best using the doxygen pages. Note that the online version is updated irregularly, so best create your own documentation (just start doxygen in the src directory). Even if you should have your own idea, please check out our idea list first.

Getting in touch

The core team typically communicates over IRC and mailing lists. On IRC, we can be found on channel #stk on freenode. We are typically most active on week days from approximately 16:00 to 22:00, GMT -5 time. It is recommended to drop by our channel and idle by to see how things work, and discuss your application. It is also recommended to subscribe to the supertuxkart-devel mailing list and to post a message introducing yourself and your project. Discussing the project with one of the core team members will significantly increase the changes of your application to be accepted.

Code and tickets

The main prerequisite for working on SuperTuxKart is good C++ knowledge. You will also want to get familiar with our bug tracker. You do need a sourceforge account in order to submit a ticket. The chances of a proposal to be accepted can be increased if you submit a patch first. This allows us to evaluate your coding style, way of documenting etc. Even if you don't find a ticket you want to work on (admittedly many of our tickets would require some work), feel free to open a ticket yourself, and submit a patch for it. One simple example would be to improve coding style issues in a file, or improve documentation - there are still some older files which were not brought up-to-date with latest coding style changes. In any case, please discuss the ticket with us first, we can help in identifying tickets appropriate for your skill level.

Any contributions to SuperTuxKart must be in clean and portable C++. They should also compile without any warnings. We don't expect that a student to be able to check his code on all supported platforms - our community will do this and fix any minor issues that should occur when using a different compiler. But please have a look at some of our portability advise.

Required information

Make sure to follow the instruction on the official GSoC website about submitting your application (particularly note that the application goes to google, not to us). They also list the information that are necessary from google point's of view.

Applications should contain at least the following points of information :


I have a much better idea for a project - can I submit my own idea?

You certainly can. Though please discuss your idea with us first, since we want to make sure that your idea has the right size for a GSoC project, and also that this is not something someone might already be working on. Be also aware that the projects we have identified will be the ones the community is mostly interested in, and we have only limited amount of mentors to support additional projects.

What license must I use for my code?

Your code should be released under GPL v3, which is the license all code of STK is using. We might request that you agree to release the code under a dual license, but at this stage we don't know the exact details. Background is that GPL is not compatible with IOS Apps store license, so if we want to port STK to IOS, we need to release the code under a second license (see also next question).

I want to port STK to IOS.

While this is basically a good idea, there are several problem:

How often do I need to be in contact?

We expect accepted students to be in contact with their mentors at least once every week as a minimum. If you for some reason can't contact your mentor for over a week you need to state this beforehand including why you can't make it. Simply disappearing without stating a valid reason may result in not getting a passing evaluation.

I have a problem with my mentor.

We have tried to match the skills and mentors to the students and their tasks. If there should be a problem with a mentor, first of all try to talk with your mentor about any issues you have. Each student's requirements are different, and just letting your mentor know that you need (more/less/...) help, advise might be enough. If this doesn't resolve your problem, feel free to contact any other mentor (hiker, auria, funto, stephen), or admin (hiker, auria).

Can I contact other people/mentors to discuss ideas?

You Certainly can. Talking with other developers about ideas or problems will greatly help to improve the quality of your work. Some of the best ideas came out of such discussions - we all like brainstorming (and as a results of which we mostly have too many good ideas, and not enough time to implement half of them ;) ). Also just the fact that you are describing your problem to someone else will often help you to find a solution yourself, something worth learning and remembering ;)

Retrieved from ""

User Tools