Google Summer of Code 2013
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.
For the first time SuperTuxKart will try to participate, 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 SVN (if you don't have SVN experience, the Version Control with Subversion book is a good start).
Then download and compile STK, instructions for this can be found here. You can find guides for compiling from source on all major platforms on the same website.
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.
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 :
- Contact details: Email, irc nickname, sourceforge ID, what time zone you are in and when we can talk to you on irc
- Some background on you, who you are
- Details about your software development experience: University experience, and other experience you have - esp. with other open source projects/
- What platform do you usually work on?
- One-line project summary
- Detailed project description (a few paragraphs to one page)
- A rough roadmap and timeline of the planned development
- Before the actual programming start, we want to have a more detailed timeline, including milestones/deliverables
- Availablity – how much time per week would you spend on the project. Do you have any other commitments during the GSoC time (e.g. any holidays planned, exams, ...)?
- Optional: ticket number and patch you have supplied
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:
- The current license used for all code (GPL v3) is not compatible with IOS Apps Store license, so you will not be able to publish STK in the Apps store.
- We expect that extensive work on assets (tracks, karts, textures) is necessary in order for STK to run fast enough on a tablet. Art work is not accepted as part of GSoC, nor are we sure that we have the capacity to do this in the available time. So it would be nearly impossible to judge if a port was successful.
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 ;)