January 11, 2019

SuperTuxKart networking - 0.10-beta release

It has been around 2 months since we did our alpha release of the online racing implementation in SuperTuxKart. First of all a big "Thank You" to all the people who went through the effort of downloading and compiling SuperTuxKart themselves. They have provided very valuable testing and feedback for us, and as a result we have reworked some of the code to make it more user-friendly, and removed some bugs. I am also quite proud of our testing team: essentially no significant bugs in the actual online racing was found during the alpha - so a great job by all of our testers and coders! There was a tireless effort especially by Benau, Deve, and Alayan to constantly improve our code!

Also a big thanks to players who have volunteered their hardware to provide more servers for us. Even during the alpha we had typically more servers than actual players. Hopefully this beta release will allow more people to participate in online races.



We are now confident that our code is stable enough for a beta release: 0.10-beta1. This means that we will provide our usual set of binaries and installers for all supported platforms. And hopefully that means that many more people will be able to test this current version. Note that we consider this beta very stable, de-facto very close to a release candidate. But we are waiting for another track to be ready to be included, so we are using this time to give more players the opportunity to test (or re-test) our online racing implementation.

If you haven't read the previous alpha announcement, here a short summary of the new features in SuperTuxKart compared with the latest stable release 0.9.3:
  • You can now race against your friends or people world-wide in online races, either in LAN or WAN games.
  • You can either run a server on your own computer, all handled by SuperTuxKart, fire up a stand-alone server, or connect to servers already running.
  • A Raspberry Pi 3 is powerful enough to act as a game server (though you need a server-only binary). We provide several game servers on VPS and Pis that are constantly up.
  • On special so-called 'ranked servers' a global ranking of online players is maintained. You can see the current ranking here.


One important caveat: the network implementation is actually quite sophisticated (I might do a separate blog post about its implementation), but there are still limits in what we can do about the latency (or ping) between clients and servers. We strongly recommend to find a server with a ping of under 150ms for a smooth playing experience. The ping to the server will be shown when you connect to it. You can of course try servers with higher latency - while it should still work, you might notice more often that karts stutter, drive like drunk (though that might of course also be the skill of the other players) or are 'teleported' around. In addition you need a stable connection, so if you experience significant packet loss or jitter you will see the same strange behavior.



And new in this beta compared with our alpha (besides bug fixes and GUI improvements) is the possibility to now join a server while a race is in progress: you will become a spectator and can follow the race-in-progress. You will be joining the actual racing fun when the next race starts.


We have now pretty much declared a feature freeze to prepare for our release candidate, once we get the new track added. One noticeable difference to one of our release candidates is that we did not update all translations: this usually delays a release by two weeks, and we would like more testing to be done earlier. On the other hand, we hope that there won't be too many changes between the beta and the release candidate, and that we will soon be able to get onto the official release of online SuperTuxKart.



You can download the beta from SourceForge. Feedback as always is welcome, ideally on our forum, which is also the best location for support requests. Bug reports can be submitted to our tracker on Github. Note that bug reports and support requests here as a comment are not ideal, and might easily get missed, so please use the appropriate URL above.

We hope you are all going to enjoy SuperTuxKart with online races!

December 8, 2018

Refreshing the GUI

Online multiplayer won't be the focus of this new blog post : we will tell you more about it when launching the official beta in the coming weeks.

Instead, we'll tell you more about the many changes in the game's UI.


First, the kart selection screen now has a bar indicating the nitro efficiency of a kart. It is also now possible to hover an icon to display a tooltip reminding you what it means.


The help menu has been revamped, using a new UI element in STK, vertical tabs. Two new tabs have been added to the help, explaining the story mode and kart classes ; and additional information has been added to several other tabs ; like the skidding help shown here in the general tab.

The multiplayer tab also now contains help on how to access online multiplayer.


The track info screen now displays up to 5 highscores, and has a bigger track preview picture than before.

In time-trial mode, race results and highscores are now displayed to the millisecond, like in the ghost replay list.


The options menu has also been changed to use vertical tabs. As you can see, this has allowed the addition of two new tabs : a General tab giving a quick access to common options, mostly related to connectivity, and a Language tab, helping to switch SuperTuxKart's language setting with ease and freeing up space in the User Interface tab.



Two new options have made their way here, related to improvements and new features in STK : the option to control how the screen is split in local multiplayer, and an option to control the minimap display we'll talk about further in this post.

You may also have noticed that the difference between checked and unchecked checkboxes is now much more clear than in 0.9.3.

SuperTuxKart also now feature a new dark theme you can choose to enable.

Finally, the race UI has seen many enhancements : 


Please note that this is the UI for the regular computer version (Windows/Linux/Max), the Android version share some of these changes but keep touchscreen specifities.

All the texts now receive a black outline making them much more legible, especially in tracks where the color didn't contrast enough with white text. Some informational text, like the "final lap" message, now also uses a bigger font, while being put higher to not obstruct vision.

The speedometer and nitro gauge have received a major overhaul.

The maximum displayed speed by the speedometer is now significantly higher (40 instead of 30 previously, with 25 being the base SuperTux speed) in addition to increased accuracy. It won't be maxed out just because you did a skid or used some nitro !

The nitro gauge is now much more accurate, and slightly bigger. You can tell in a glance how much you have. This is especially useful for the nitro challenges, where the very uneven progression of the old gauge caused frustration.

The minimap's default size is now bigger, to help using it with a quick glance. You can choose in the options to display it on the right side above the speedometer, or to not have it displayed at all, according to your preference. The minimap is also displayed before the race's start, to allow players to take a look at it before racing begins.

Some other minor changes have made their way into the race UI, like the flag next to the lap counter to clarify its function, and the same flag used next to a kart icon to mean it has finished the race.

Many minor menu UI changes are also included in the next release, including :
- Many instances of text being cut (especially in translations) have been fixed
- A reset password button for easier management of STK accounts
- A donate button in the credits
- And more small fixes and quality-of-life improvements.

More fixes and enhancements may also make their way into the next release.

Finally, here is the new online menu with access to local and global networked multiplayer :


Expect more on this soon !

November 17, 2018

SuperTux challenges in Story Mode

SuperTuxKart's story mode has replaced the previous challenge system in version 0.8, introducing an overworld where the player can drive freely between challenges. This was in 2012, and since then, it had not evolved much.

New and better tracks have regularly been replacing old ones. There have been balance changes to have a more consistent difficulty level. But it fundamentally stayed the same.

In the next version, the current overworld will remain. Bringing a fully new one, up to par in quality with the latest tracks and making it easier to extend, is a huge undertaking. It will happen, but later.

There are, however, several exciting changes !

The most important one, long clamored for, is the introduction of SuperTux challenges.


Once you've unlocked the SuperTux difficulty, you will have access to an additional difficulty level for challenges.

Previously, the SuperTux difficulty was unlocked by finishing the story mode, no matter the difficulty you played at.

Now, the main way is to get a good number of gold and silver cups to have enough points to unlock it.

With stronger AIs, and more challenging time requirements, the SuperTux challenges will put your driving skills to the test.

Challenges in other difficulties mostly drop time requirements : you need to beat the AIs instead. The main exception are the challenges based on time-trial.


Another major change is an increase across the board of the number of AI karts to race against in challenges. In SuperTuxKart 0.9.3, races mostly had a total of 3 to 5 karts, including yours.

Now, and with some exceptions like the final race, the challenges will put you in 4 to 10 karts races. The number of opponents increases from the early challenges to those before the final confrontation with Nolok, ranging from 4 to 7 in Novice difficulty to 7 to 10 in SuperTux difficulty.

There are many other changes :
  • The GP challenges give three times as many points as single race challenges, instead of the same amount in 0.9.3.
  • The follow-the-leader challenge has been removed. It was very random, and didn't allow the player to make a difference by driving better as the speed of the leader was the limiting factor. FTL has been improved for the next version, but not enough yet.
  • Some more tracks are unlocked from the beginning of the game. But there are more karts to unlock : some of them can be obtained by completing a specific challenge, some others by attaining a total of points. One of them requires completing some SuperTux challenges.
  • The story mode now features a ghost replay challenge, where you're tasked to beat the time of a pre-recorded replay. The higher difficulties one can help you to learn how to drive better by showing you trajectories and how to make good use of skidding and nitro.
  • The chest unlock cutscene has been improved : now, it will show you karts you unlocked, and elements are better centered.
  • The tracks in GPs have been revised, in order to have easier tracks in earlier GPs and harder tracks in later ones. The last GP do not include Fort Magma anymore, fixing two issues which could occur : the last GP having only 4 races, or the possibility to race in Fort Magma before the final challenge. Instead, Candela City, which didn't appear in any GP in 0.9.3, is now featured in one.
  • In higher difficulty GP challenges, finishing 2nd or 3rd will award a cup of an easier difficulty. For example, being 2nd in an expert GP challenge will give a silver cup, while being 1st still gives a gold cup.
  • The possibility to access the final challenge earlier than intended ("gate skip") has been patched.
  • The nitro challenges now use the time-trial mode as a base, giving zippers at the start rather than mostly useless random items in the gift boxes. 
  • Bugs which could cause the game to return to the single player screen after the end of a challenge race have been fixed.

November 11, 2018

SuperTuxKart Networking - Looking for Testers

Nearly one year after the 0.9.3 release we are getting ready for the next release. And as many might know, we have actually been very busy working on the network implementation to allow online races. As expected, this has taken a lot of time, but we have finally reached a stage that we need more testing. For now we call this an alpha test, since there are still some known bugs and some polishing is required as well, but nothing that should affect the actual network race at this stage. De facto, we have been doing alpha tests with visitors on our IRC channel for some weeks now, so we actually do not expect any major bugs anymore.

In networked races the name of the player is shown on top of the karts
We are looking for people who can compile SuperTuxKart following our instructions themselves. You don't need to be able to program in C++ or anything. The main reason for asking you to compile yourself is that if a bug should occur, we can work with you to help us finding the bug. We are at the same time busy on working on a beta release (or even release candidate??), for which we will obviously provide binaries/installers for all common platforms. We actually don't expect this to be too far away ... fingers crossed.


SuperTuxKart Game Servers

We have over 20 servers running by volunteers (in Hongkong, Chicago, Netherlands, and some other locations) for the various game modes that we support, which includes normal race, time trial, battle mode, soccer and the new capture-the-flag and free-for-all modes.

Server Selection Screen
So, if you are able and willing to compile SuperTuxKart from git, follow the instructions but switch to the stable branch 'network' first. Also make sure to compile in release mode, debug mode is often too slow for the networking. Create an online account in STK, head for the online section and search for a server with a reasonable distance to you. If you connect to the server, the ping to that server will be shown - we would recommend to stay with servers that have a ping of under 100 ms. You can try servers with higher latency, and it should still work, but you might notice more often that karts stutter or are 'teleported' around.

 

Server Creation

Or create your own server and ask some friend to join, or head to our IRC channel #supertuxkart on the FreeNode network to ask for some people to join.

Server Setup Screen
We are also interested in getting some people to run some additional servers around the world, to offer a better ping for users. An STK server can even run on a Raspberry Pi 3. You can find instructions on network configuration in the file NETWORK.md (latest version here), but feel free to contact us if you have questions.

 

Testing

We would appreciate your feedback - especially how responsive and satisfying the race was, and what ping you had to the server you were using. Please provide feedback either in our forum, on our IRC channel, and file bug reports in our issue tracker.

Network Lobby
While this is happening, we will work on the important outstanding issues, and prepare a beta release which will of course include pre-compiled binaries and installer. Our main focus will be the interface, some physics issues, and other bug fixes. We are also interested to support playing with higher latency - but realistically there is only so much you can do if you will only know that a kart turned 600 ms after it happened (if both you and the other person have to wait 300 ms for a message to or from the server). In 600 ms a kart at high speed will have traveled over 13 meters. But we still have a few things to try out and improve on.

August 1, 2018

Summer update

Hi everyone, we're back with another post about what's going on with SuperTuxKart development. While many of you will be anxious to know about the status of networked multiplayer, it will not be the focus of this post. But we can reassure you it is still a priority and that we are making progress, albeit slowly due to having few developers. Rather in this post we'll round up some of the smaller improvements that have been done since the release of 0.9.3.


Six-player vertical splitscreen

8-player splitscreen multiplayer and dividing vertically
It's now possible to play splitscreen with up to 8 players! Also you can choose to divide the screen into vertical viewports, and the UI elements will scale better according to how many players there are. Do note that you are likely to need good hardware to display everything. Thanks a lot to Ben Krajancic alias Fantasmos.

 
Bubble gum timeout indication and rescue change

Indication of bubblegum shield ending
The bubblegum shield will start flashing before the shield pops due to the time expiring, which will be helpful to know for example if you consider running over a banana to get some extra nitro while you still have the shield. Thanks again to Fantasmos.

New skidding particles
We now have cooler skidding particles thanks to QwertyChouskie.

Nicer looking rescue
Rescuing now has the bird put you down in addition to picking you up thanks to Fantasmos.


 Yellow cabbie Tux

Colorization of player kart
In the options screen you can now choose to colorize your kart differently with a slider.

Android input improvements
On first run on the Android version of the game you will now be prompted to choose if you want to use the accelerometer for steering, and the accelerometer steering also takes screen orientation into account. We also have better gamepad support, and if there's a physical keyboard available we won't show the on-screen keyboard where applicable. The normal race UI will be used if there's no touch screen present.

Miscellaneous notes
  • The handicap option is now better at evening things out for two human players at different skill levels
  • The sound effect in nitro challenge when you reach the required amount now works if you have used nitro during the race, and a new one has been added for when you go under it again if you spend some nitro
  • Finish times are now more correctly calculated, especially for ghosts in ghost replays
  • If you try to connect your account to the Internet and you have the option disabled, you will now be prompted to enable it
  • A nitro boost bug has been fixed: if you stop pressing the nitro button quickly, the nitro will keep boosting your kart for the duration of the minimum consumption time (previously, the nitro was used but the speed boost stopped)