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. Carol Smith, the Google's GSoC Program Manager, has a short video where she described the application process for students.

After a very successful GSoC 2013 we were accepted as a mentoring organisation again. That means 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). Our How to use GIT page described how students (and other contributors) and mentors will be working with GIT.

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.

At this stage you need a github account in order to submit a ticket. The chances of a proposal to be accepted can be increased if you open a pull-request 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. If you are looking for more of a challenge, try to implement an achievement. The achievement infrastructure is the result of the 2013 GSoC, and achievements will be contained in the next release of STK. So we are always looking for more achievements. Have a look at the files in src/achievements for more details. 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.

We have started to use travis-ci - which means that as soon as anything is committed to our GitHub repository, travis-ci will compile on linux and report any problems. You can also activate travis-ci for your own repository.

How to get prepared for submitting a proposal

If you are new to GSOC, you may wonder where to start. Here are the obvious starting points :

How we will help you through this process :

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