July 21, 2020

SuperTuxKart 1.2 Release Candidate 1 available!

We are happy to announce the release of the first release candidate for STK 1.2!

As this release is in the 1.x series, it will be compatible with the previous 1.x releases in terms of online gameplay and physics.

One of the most important changes for this release is that we ported a lot of low-level windows creation/input handling code to SDL2, which improves/allows the following:

Improved gamepad handling

In the past, our gamepad handling was done using outdated Irrlicht-based code, which lacks basic features like hotplug. With SDL2, STK has the following improvements to gamepad handling:
- Hotplug support: You can now plug/unplug gamepads and STK will immediately detect the changes, restarting STK is no longer required. - SDL2 gamepad controller mapping: This allows a uniform default controller binding suitable for most Xbox-style controllers, and also makes re-mapping controls significantly easier (buttons will show up as e.g. "X" or "Left thumbstick left", rather than "Button 19", etc.) - Most gamepad-related bugs, such as not being able to rebind controls on some devices/platforms, should now be fixed. If you were having issues with your gamepad in a previous release, make sure to give this release a try! Improved portability to new platforms One example is our Haiku port, now that SDL2 is used, its pull request was just feature definitions for platform specific code, see https://github.com/supertuxkart/stk-code/pull/4309. With SDL2, we also now allow using the Asian input method for all platforms we support, thanks to excellent text handling in SDL2.

We've also been hard at work improving many other areas of STK!

For the user interface, we integrated a "Modern" skin, which is in a new, different style compared to our existing skins. One big highlight of this skin is that all icons of it are drawn as SVG icons. We are working on allowing STK to render the SVG files directly, which will help the GUI to not be pixelated at high resolutions, without having to using large PNG files. We may write more on this skin's features in a future blog post.

For gameplay, we added multiple camera modes, which allow significantly more flexibility for the user:
We also adjusted the code for online servers, so you can now use any addon karts online!

Although there aren't any new tracks in this release, one of our community members, Crystal, updated the Pidgin kart with some improvements, such as headlight/taillight, new tires, and a new spoiler.

Additionally, we switched to a new packaging format for the Android release, which allows all tracks to be bundled without additional downloads.

For the progress in dual-licensing STK, currently around 30-40% of contributors have agreed.  We will send another email which will give more information before the final 1.2 comes out.

We hope you enjoy the release of STK 1.2 Release Candidate 1, get it here!

January 5, 2020

SuperTuxKart 1.1 released

We are happy to announce that the final 1.1 release is ready!

Compared to the previous release candidate, based on the feedback we received, you can now change the touchscreen controller type in race paused dialog:

As previously stated, we have started the process to dual license STK to MPLv2 or any later version, and therefore we have started contacting the previous contributors as stated on https://supertuxkart.net/STK_Dual_licensing (see previous blogpost for more details on dual-licensing).

So in case you have name there make sure to check your mailbox, we look forward to your reply!

What's new?

The new features were described in more detail in the previous blogpost so you can refer to the previous post for more details. Here is a summary of the new changes :
  • Improved online multiplayer play
    • Fix network lags in various scenarios when playing online
    • Add AI support to local networking servers
  • UI enhancements
  • A new arena: Pumpkin Park
  • Mobile enhancements and iOS support (The iOS version can be tested through testflight : https://testflight.apple.com/join/mbK8RjHq )
  • Complex text layout and emoji support
  • Story mode timer for speedrunners
  • Generic polish and minor improvements


Download the game here : https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/1.1

December 21, 2019

SuperTuxKart 1.1 Release Candidate

SuperTuxkart 1.1 RC1 is out

The SuperTuxKart team is happy to announce the release of the first release candidate for STK 1.1.

The changes in the team didn't keep the project from moving forward, propelled by the dedication of our core contributors that already made most of the work for the previous versions.

For this release, one of our goals was to keep compatibility with 1.0. The new version offers many improvements, but physics, items and tracks stay the same. Existing 1.0 profiles are read and used by 1.1, so progress and configurations are not lost.

This compatibility didn't preclude improving STK a lot.

Binaries for Linux, Windows, Android and Mac are available here : https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/1.1-rc1/

The iOS version can be tested through testflight : https://testflight.apple.com/join/mbK8RjHq

What's new?

Better online play

1.0 was the first release supporting online multiplayer. It has been a success, with many people coming together to race. Over 4500 players tried out ranked races, among which hundreds did dozens if not hundreds of races. Skilled drivers have given us many great races that have been shared online in videos [1] [2] [3] [4].

Other modes, like free-for-all, football and capture-the-flag, have also been popular.

This has been an important area of focus in the new version, adding missing features and polishing some rough edges ; mostly thanks to Benau.

Among the most important changes to networking are IPv6 client and server support, improved synchronization (especially for collisions), expanded support for AIs, management features for server owners, and increased support for addons, along many more minor fixes and quality-of-life features.

General polish and features

Despite compatibility with 1.0, the new version add some features meaningful for gameplay.

Powerups held by other karts can now be shown through an option. Glancing at those in the middle of the race and reacting accordingly without compromising the main driving is a fine balancing act. This is also meant to patch a potential exploit hole, as multiplayer clients already had that information available even if it wasn't displayed.

1.1 offers a story mode timer that allows you to see how quickly you can manage to complete it, if you're up to the challenge.

Other changes are more subtle. Some of those enhance compatibility and stability: full support for unicode file paths, prevention of "this program is not responding" messages, fixes for rare crashes... Other polish the experience : battle spawn points are random, there is no ground sound anymore when the kart is flying, and many more.

UI enhancements

User interface has been another key area for fixes and improvements.

All across the UI, a lot of issues with scaling to 1440p and 4K resolutions have been fixed. It is also now possible to adjust the game's font size to best fit your liking.

Small and very large font size compared at the same resolution

Emojis are now supported and available when chatting in servers. This also enabled us to display country flags for players online. As asked by many players, ranking changes after a ranked races are now displayed in the result screen.

There has been many other small enhancements or fixes that can't be listed here.

A new arena: Pumpkin Park

While the main tracks stay the same apart some very minor bugfixes, 1.1 ships with Pumpkin Park, an arena by samuncle that was previously part of the gift package.

Mobile enhancements and iOS support

Since 0.9.3, SuperTuxKart is available on Android. While most of the code is shared with the computer versions, mobile devices don't offer the same experience. Significant work, especially by deveee, has gone towards a seamless experience on mobile.

The big novelty however is that SuperTuxKart is also now compatible for iOS, through Benau's work.

SuperTuxKart on an iPhone XS

The next most important change for mobile STK in 1.1 is the option of downloading in-game the assets that are missing from the default packages because of size limitations.

Closing words

We hope you'll take as much pleasure playing SuperTuxKart as we did seeing it improve through our work and our community's feedback.

With the holidays coming soon, we have no set date for the 1.1 release. We're waiting on translators to finish updating translation and on your feedback about major issues that needs to be addressed to move from this release candidate to the final 1.1 release. Please report any bug you encounter on our GitHub tracker, after checking someone didn't report it already: https://github.com/supertuxkart/stk-code/issues

If you are interested in what is new in 1.1, a more detailed changelog can be found here : https://github.com/supertuxkart/stk-code/blob/master/CHANGELOG.md

After 1.1 is out, we plan on asking past STK contributors to dual-license the game under both the GPLv3 (the game's current license) and the MPL, to give the project more freedom to deal with some software repositories like Steam, while sticking to free software.

If you enjoy our game, you may also chose to contribute with code or art. There is almost limitless room for improvement, and you can make a difference by making it your game, too.

Happy holidays!

May 16, 2019

My Departure from SuperTuxKart

The original TuxKart
After 13 years of working on SuperTuxKart I have decided to step away from the project, and make space for a new team of leaders. As this is my last post, and I assume that we have many new readers who might not be aware of the history of SuperTuxKart, I'll use this opportunity to give a brief summary of what happened to SuperTuxKart in these 13 years, that resulted in the 1.0 version that you are playing now.
I discovered TuxKart in 2006 after installing the latest SUSE distribution. Never having played Mario Kart, I was quite fascinated by the game. By sheer coincidence I then heard of SuperTuxKart, a project trying to improve TuxKart.

An early SuperTuxKart screenshot
Being intrigued by the promised improvement in graphics, I tried to look for the community developing SuperTuxKart, only to learn that the project had been basically dead and the game in an unplayable state for over one year. I decided to see if I could fix this. Soon some other contributors joined and a 0.2 version was released in September 2006, making the graphical improvements of SuperTuxKart available in a playable form for the first time.

SuperTuxKart 0.4
With the 0.4 release in 2008 the physics were newly implemented: the open source physics engine bullet was integrated, and the physics were tweaked to give it a fun-racer feeling. Did you know that previously a kart would just stop if it hit any other kart? The initial port took around 9 months, though of course other work was done for the 0.4 release as well during that time. But tweaking the physics was a long ongoing process, in between we suffered from karts sometimes hovering, sticking to a wall, or being shot rocket-like into the air. Anyone thinking of 'just using a physics engine' - do not underestimate the tweaking effort necessary to make a game behave the way you want it to behave :)

SuperTuxKart 0.7
The 0.6 release in 2009 saw the introduction of OpenAL, allowing for positional audio effects, and the introduction of the skidding and nitro speed boosts. It also included the 3-strike battle mode. In 2010 SuperTuxKart 0.7 was released: we finished the migration of the rendering from PLIB to irrlicht. This allowed us to animate karts, and started a series of graphical improvements that is still ongoing. We also implemented a new GUI engine, and allowed short-cuts in tracks.

Beginning of 2013 we were in the race to become the Sourceforge Project of the month, and we unleashed the ultimate weapon: cuteness showing off our new wiimote support:

In 2013 and 2014 SuperTuxKart participated in the Google Summer of Code, a program where Google pays students to work full time on open source projects for three months. Of course we had very many students interested (each year we got over 70 applications, which made it very difficult to select a small number of students that we could accept) - how cool it is to work implementing a game and getting paid for it :) The SuperTuxKart team mentored all in all 8 students during that time, who contributed important code to improve the graphics, game play, and to add online features. We somewhat underestimated the effort it would take to merge the code developed by students back into our main trunk, in some cases it took over one year before the code was finally merged into our development trunk. While this was a somewhat stressful period, it was also extremely rewarding – not only in terms of new benefits for SuperTuxKart, but also seeing the development of the students: In at least one case that I know of a student got a job in the gaming industry because of his work with SuperTuxKart, and only recently I received an email from a previous contributor stating: "I basically owe my career to SuperTuxKart".

SuperTuxKart 0.9
2015 saw the 0.9 release, in which a completely new, shader-based renderer was introduced. It also opened the door for many many woes with graphic driver bugs. We actually had to add a configuration file that would activate features depending on graphics hardware and driver version used.

End of 2017 I started to implement the networking mode. If anyone is interested in details, I would strongly recommend Glenn Fiedler's excellent article collection. This is probably some of the most complex code I have added to SuperTuxKart, since we are not just sending the input from clients to the server, which would lead to a lagging and unplayable experience. Read Glen's article about networked physics and look for client-side prediction if you want to learn why SuperTuxKart plays rather smooth even with a ping over 100ms. And you will also appreciate why your computer has to work much harder in a networked game. It was an extremely frustrating time - often what would work just fine in my local environment, would fail horrendously when trying it in a wide-area network. The first big milestone was reached around March 2018 when we were able to play a first race reasonably well without too much shaking and teleporting of karts. It still took a long time to iron out all the bugs, and make the whole experience smoother. On the 20th of April 2019 we finally released version 1.0, the first release of SuperTuxKart that allows online races.

Another highlight of the history of SuperTuxKart was seeing the code being used in other projects: Microsoft used it to develop and showcase their 'Future of the Living Room' concept IllumiRoom, and Daimler used it as a demo of an entertainment unit in one of their cars. Research was also done with SuperTuxKart ("Comparison of Supervised Learning and SMILe for Imitation Learning in SuperTuxKart", "Real Time Drunkenness Analysis Through Games Using Artificial Neural Networks"), and it was used by schools and Universities to teach programming, internationalisation and other subjects. Various special versions for people with certain impairments were created, e.g.: Gaze and accessibility in gaming. I consider those outcomes a shining example of the benefits of open source code development.

To the supporters of SuperTuxKart throughout the years: I feel I owe you a big “Thank You”, and an explanation of my exit. To be completely honest, the main reason for my departure was not that my goal of online races was reached. It is a matter or principle and professionalism. From my point of view a big change has gone through the development team, when new members were added and older members left. Let’s just say that the newer team members preferred to pursue a faster-paced development style with fewer reviews, less documentation, less oversight and a reduced need for consensus, and that our differences in approach could not be reconciled.

We would also like to announce that Auria, who has been the co-project leader for around 10 years, has decided to step down from a management position in STK, but she will stay around and help out where required. Arthur, our pun master and social media manager, has also decided to quit the project. The team (excluding Auria and myself) has decided with 3 to 2 votes (and one abstention) that Benau and Alayan will be the new leaders of SuperTuxKart.

My profound gratitude to all the SuperTuxKart supporters who have witnessed and supported the game in the last 13 years! Let’s welcome the new age of SuperTuxKart and look forward to it achieving even greater goals.

 Hiker, out

April 20, 2019

SuperTuxKart 1.0 Release

Yes, if you have followed our development a bit, that might be a bit of a surprise. But we have been asked why we don't call this release 1.0, and the majority of us developers discussed this and decided that indeed this release is a major milestone that deserves the big 1.0 number.

SuperTuxKart 1.0 official trailer

Should you not have followed our development: this 1.0 release adds support for networking races to SuperTuxKart. You can play with your friends online, and it doesn't have to be split screen anymore - your gaming partners can be in a different city, country, or even continent - you can still meet for a race or two. Cross-continent may not work the best; you should try to have a reasonable ping - 100ms works fine, and we had some races with 300ms ping, though unavoidable sudden stuttering and karts jumping around is more frequent at higher latencies. Even more important than the ping (unless it's abnormally high) is that there isn't packet loss or packet slowdowns (jitter), so a stable connection is required, especially for the server hosts. The bandwidth use is minimal even for hosting 10 players, so as long as you don't use a metered connection it should be fine for anyone with 150 kilobytes (~1.2 megabit) per second upload speed to spare. If that's still too much, less bandwidth is used with fewer players.

With the new version you can play various game modes online: normal race, time trial, soccer mode, battle mode and the new Capture-The-Flag mode. While you can easily start your own server (just select 'create server' in the GUI), the community also provides a set of servers to be used by everyone. Certain servers provide online ranking (since we have to make sure that the servers are not modified to favor certain players), and you can find the current rankings here. You can use one of the servers provided by the community. We would request that you do not abuse the servers provided by the community - they are meant to be used by everyone. If you want to play only with a certain set of friends, let SuperTuxKart create a server for you, and do not grab a public server and kick everyone else who wants to join.

Ravenbridge Mansion

The networking implementation has been a very big and ambitious task, which took even longer than the port from PLIB (anyone remember that?) to Irrlicht in 2010, which took around 14 months. But it is done: more than 20,000 lines of network related code and 18 months later, we have reached our goal, and online play is a reality. Across the whole game, more than 2500 commits and 300 resolved issues separate the 1.0 release from 0.9.3. And it was a very concerted effort, so a big thanks to all contributors involved, For the people who don't know the team, here a short introduction:

First and foremost Benau, who originally told me he would only like to work on some of the GUI aspects of networking, but who then grew to meet the challenges the network implementation threw at us. Without his work networking support would nowhere close to being ready or as complete as it is.

Alayan, a relatively new main contributor started several months ago, with a keen interest in balancing game play. He is an experienced speed runner for SuperTuxKart, and one of the best players in our online ranking system. While he was also essential in testing online racing, he made significant contributions to balancing SuperTuxKart and overall improving the playing experience.

We are still reaping the benefits from Google's Summer of Code program: leyyin is still with us, and he is helping us with the server side implementation. E.g. anytime you are looking for servers, his code will be involved. Then let's not forget Hilnius, who back in 2013 started to design the protocol implementation on which our networking code is still based. A very successful result for our participation in the GSoC.

Then the older core team, and I'll be a bit briefer here: Deve as always makes sure that all is fine on the Linux front, do many bugfixes and small enhancements, and maintains and improves our Android port. Auria keeps everything else running - pull requests, bug reports, forum posts, ...  Samuncle, though busy with his private life, came through with the wonderful new "Ravenbridge Mansion" track. And Arthur keeping our social media feeds updated. Oh yes, there is also me (hiker) :)

For the record: is the 1.0 release 'perfect'? No, it is not. There are improvements to be done, features to be added, and gameplay to be improved. Still, it is probably the most significant step forward in SuperTuxKart's more than 12 years of history. We would like to invite all of you to join some online games by fetching the new 1.0 release from our Download page.

On behalf of the SuperTuxKart team: thank you for your continued support through the years, and enjoy the big 1.0!