July 20, 2014

Kart Properties and Replay System

Hello everyone,

Mid-term has passed a few weeks ago, and I'm happy to announce that my work on the unique kart properties is done! The work I did on this is merged in the master of supertuxkart/stk-code, so feel free to test it out, and give some feedback on it!

What changed exactly? I created three different kart groups (light karts, medium karts, heavy karts) that are close to being balanced. Almost all properties are changed but the most influential ones are Power, Speed and Weight. Since users are no computers, they make different decisions, and they can determine if a type of kart feels "real". That's why I invite you to test some karts, and to give feedback on those karts.
Currently, AI prefers the medium karts (win 75% of the races), whereas it's clear that the light karts are by far the best karts for Player Controlling. This needs a lot of play testing to perfect this.
The other thing that changed is the GUI of the kart selection screen (I elaborated more on this subject in a previous blog post). We've read your feedback, and we agree that this screen is still a work in progress (cfr. skill labels only at first kart's skills). This is a short overview of what has been changed, stay tuned for more changes later on!

How can I test those changes? Most of the information on how to change values, can be found on the wiki page. As I said, there are 3 kart types (4 if you count the default values) existent in STK at the moment. What I would like to hear from you is if these types feel natural to race with, and if not, what needs to be changed. If you feel like it, you can also change those values yourself, test the new values to try and make it more realistic, and report your findings back to me. Other remarks on the kart selection screen is also always welcome!

For the replay system, most of the work is already done. When you check my branch (solistice/stk-code, v2replay branch), you can see the following GUI work supporting the ghost race game mode.
Game mode selection

As you can see, the icon used currently is the same as the standard game mode, feel free to try and work out an icon for us!
Selecting the ghost race game mode will bring you to the Ghost Race Screen

Ghost Race Screen

 Here you will see an overview of all saved races, with the track name, laps, difficulty and finish time (OnlineUserID and other elements will be added, when online high scores support is added!) After selecting a given race, the final replay dialog will pop up, where you can either Start the replay, Delete the replay, or go back to the previous screen.

Replay Dialog

Keep in mind that all of the work is still Work In Progress, and that all of these screens/dialogs can change. What is yet to be changed, is the information in the Replay Dialog, and the way replays are saved. Currently, all races are saved by default, but we might add a button in the End Game Screen where you can select wether you want to save the replay, and add a description to it.

The biggest changes needed in the ghost race itself, is to give the Ghost Kart an own shader (which makes it look more "ghostly"), fix the hovering karts, and make the karts go more smoothly.

As always, stay tuned for more updates!


  1. Thanks for the update, keep up the great work ! Cannot wait for the next STK releases :)

  2. what does it mean of difficulty there ? ... 3 and 0 ? .anyway keep up the good work ! ;)

    1. I think 0 is for Beginner, and 3 for Super Tux.

      STK Team: there are some GSoC projects for which we haven't had any update. I would be interested in having a post about them. Even if I am sure their work is awesome too. ;)

    2. Indeed, 0 is for novice, 1 for intermediate, etc.. These values have been changed in my branch to reflect the string values (instead of ints)

  3. I tried the latest stk from git and the kart physics feel a bit weird. It's really hard to drive Gimp - my favorite kart - now, because the steering is really malicious. First, it has a lag, which makes it hard not to oversteer. You press the left/right button and nothing happens. Then the kart starts steering, you release it and it keeps steering really hard and bang! you're face in the wall. Also, when skidding, the countersteer is too weak to skid through anything else than a really sharp turn. The Suzanne kart is a bit better in this respect but still kinda hard to drive because of laggy steering. Can you fix it, please?

  4. I tried fiddling with the kart types (light/medium/heavy), and I think, instead of only having three types of carts for a whole range of graphically different carts, it might be better to implement a different kart type for each kart, e.g. among the current "light" karts, some could use Nitro efficiently (nitro consumption from 1 to 0.9), while some benefit more from skiing etc. The actual values to tweak in order to keep balance can be computed via Monte Carlo simulation. We can base all our computation from the standard kart type, then run thousands of simulated races with AIs for each parameter tweak, and settle on the value that gives the same performance (e.g. 75% win overall when raced with a whole bunch of standard karts).

    This performance based tweaking will be, of course, time and resource consuming at first, but would benefit hugely in the end. If devs are interested and can provide some simple scripts to run for simulations, I can offer some cloud nodes to run the simulations.