Interview with Joerg Henrichs of SuperTuxKart
In this edition, we conducted an email-based interview with Joerg Henrichs, the lead developer of SuperTuxKart, a free software 3D kart racing game, which is licensed under the GNU GPL version 3 (or any later version).
What is the history of SuperTuxKart?
Originally the game was known as TuxKart, but after disagreements between developers, some temporary and unfinished work was left as a fork under the name SuperTuxKart. I picked up that fork, with the intention of doing some performance improvements on it (which I am professionally interested in). Soon I had very many ideas on how this could perhaps become a really great free software game, and so I was hooked. We have added a physics engine, replaced the graphics engine with a more modern one, added a story mode, and much more!
How is your user community?
We have a great community, mostly on our IRC channel #stk on freenode, and in our forums. We get so many "casual" contributions that we implemented a dedicated add-on server where artists can publish their tracks and karts, and everybody can easily download and use those additional tracks. On this addon server we now have served over three million tracks and karts.
What features do you think really sets SuperTuxKart apart from similar software?
First of all the fact that it is free software and that all of our art work is freely licensed as well. We maintain a separate repository with the source of all our assets, such as blender files, uncompressed textures, etc. I hope that this makes SuperTuxKart an ideal learning tool for others.
Already SuperTuxKart has been used in various university projects, for teaching students about internationalization and localization of games, and more. In a course project at the University of Nevada - Reno, a group of students modified the game to make it accessible for users with motor impairments.
Compared with other free software racing games, we focus not so much on realistic car behavior, but on fun racing. Our goal is to make SuperTuxKart into a polished product in the end, so we spent quite a bit of effort, for example, on creating animations for our story mode.
Can you tell us a little about story mode and the other modes of playing SuperTuxKart?
While playing the story mode, players can actually unlock all the tracks and karts in SuperTuxKart. The story shows Nolok, the bad guy, kidnapping Gnu, the wise leader. Nolok then approaches Tux and tells him that Gnu will only be released after the player beats him in various races.
The story mode is actually designed with 3D animations and some real voice acting for Nolok. Locking the tracks and guiding players through the story mode allows us to make the more difficult challenges and tracks available later, when the player has more experience. We hope that this avoids the frustration that could happen if a beginner would try to drive some of the harder tracks too early.
At the end, if the player wins the final challenge, Gnu will be freed. Though will Nolok really give in so easily? Only time will tell.
The above video is licensed under the terms of under the terms of the Creative Commons Attribution 3.0 license.
Who is your favorite character to play with?
My favorite character is actually Nolok - not so much because of his fancy looking (but otherwise normal) power-ups, I just like the kart design most.
Why did you choose the GNU GPL version 3 as SuperTuxKart's license?
I like that all our source code is available for anyone to use and learn from -- hopefully it will motivate some students to show more interest in programming or game programming.
We actually had to enforce the GPL recently: someone ported STK to android and iOS, but didn't release the source (nor kept any attribution in place which most of our art work requires). Even on repeated requests we were not able to get access to the sources (and we would be really interested in that), so we had to appeal Google and Apple to take down this application, which they finally did.
How can users (technical or otherwise) help contribute to SuperTuxKart?
We are actually only a rather small team, so we welcome any help. People can contribute by coding: we have a list of bugs and enhancements, but of course working on new features is always welcome. We are also in dire need of artists, especially people experienced with 3D modeling.
In spite of SuperTuxKart being a game that can be played by kids, development for it is not that easy: the code base is around 150,000 lines of C++ code (plus the bullet physics engine, irrlicht graphics engine, and enet for networking). All modeling is done with Blender, which is a quite sophisticated free software 3D modeling tool, but users need to be fairly experienced, especially since game design has different requirements compared to animation or video (since they need to be rendered in real time, you need to get good effects with a limited amount of triangles).
What's the next big thing for SuperTuxKart?
There is actually a lot of exciting development happening right now. We had three students working on SuperTuxKart during the 2013 Google Summer of Code (GSoC), and we are now integrating their work. We don't have a release schedule yet, but the next few releases will add significant graphical improvements to SuperTuxKart (though it will take some time to update all tracks to make use of the new options we now have). Then we are already busy on adding network support. An upcoming release will allow people to login to the addon server. They can then vote in-game for addons and collect achievements. All of this work being based on work done during the GSoC. The next important step, the one most of our users are waiting for, will be to add online races. Again, the initial work was done during GSoC, but it will take quite a bit of time to polish this into a version that works reliably (esp. latency hiding).
Please see the SuperTuxKart entry in the Free Software Directory for more information.
Enjoyed this interview? Check out our previous entry in this series featuring Frank Karlitschek of ownCloud.