December 17, 2014

Merry Christmas and a Beta :)

Merry Christmas to all of you who have been waiting for the new release!



So, better late than never, SuperTuxKart 0.8.2 beta has been released! This new version is the result of months of work from the SuperTuxKart team. Please note that this is a beta only, and we know that there are still some bugs around which we intend to fix before the 0.8.2 release (see our bug tracker for a list), but no major ones that would prevent you from enjoying the game. If you download the beta, we are mostly interested in any kind of feedback, particularly about the graphical side of thing. Please let us know if it works just fine, or if you had to disable certain features to make it look good. Report bugs in our tracks (URL see above, but please check that it has not been reported previously).

The main highlights include the first release of Antartica, the new graphical engine (more on that later). We have basically added a completely new, shader-based rendering engine - only things like loading meshes and textures are still done by the original Irrlicht. As a result of the new features which are provided by our engine, we have many tracks with significantly improved visuals. The main highlight on this front is two new massive tracks. First of all "Cocoa Temple" that replaces the old "Jungle" track:

And "Gran Paradiso Island" that replace the old "Island" track:

Thanks to samuncle for all the hard work!

Another new feature is the addition of online accounts, as a prelude to networked multiplayer. Just to make it very clear: networked racing itself is not ready yet, but will be our main focus once the release is done. Your account allows you to connect achievements, stay in touch with your friends, etc.

The new version includes many more new features - we still need to assemble the full list. But it includes different kart physics, based on this year's GSoC work, random Grand Prix, a Grand Prix editor and more.

The windows binary also includes a beta version of the track editor, developed this summer by one of our Google of Code Students (on other platforms, it can built from source). It's not fully polished yet, but you can also start playing with it

New engine

As has been mentioned above, SuperTuxKart 0.8.2 features Antartica, a totally new rendering engine, starting from the foundations of cand from GSOC 2013, and improved a lot by new team member vlj. The new engine features exciting new features like much improved rendering of lights and shadows (for more information, take a look at this page ).

An example of DoF (Depth of Field) in action with the snow falling



However, it is very important to note that this new engine uses at least OpenGL 3.1, whereas the previous STK version used very old OpenGL 1. This means that we are using many more advanced features of the opengl drivers, and as a result we have been suffering from various driver bugs already. During our development vlj did a marvelous job to work around most problems we have encountered so far. This is why your feedback is so important for us - we can't afford to get a set of different graphics cards to try to work around their specific problems. So we need as many people as possible to test this beta and provide feedback. We will provide some additional documentation about what you can try if this beta does not work as expected for you.

Also, using newer opengl features means that unfortunately, older computers may not be able to run the game correctly - we use the HD 3000 as a minimal supported GPU. Obviously you should make sure to update your drivers to the latest available version and, on linux, you may want to try the proprietary driver if the open source one does not work (a recent version of mesa may be required for some features).  That being said, don't panic! You can configure the graphical level in STK options, so if your computer cannot reach a good decent frame rate you can always reduce the graphical details, or the resolution.
 
An additional note: since this is a beta we have not yet updated the credits, nor declared a string freeze for translations either. We still expect some minor changes to the strings before our release candidate. We are also looking for help creating binary packages for other platforms - especially a static linux package would be great.

And in spite of all our testing, a first problem was already discovered :P the Christmas hats were switched on (that happens on the 17th of December), and some of the new karts now have the hats hovering ... around half a meter over their heads :)

Quick edit: users of Windows XP should be aware we no longer support it and the game will fail to install.

Giving Feedback

Please use the forum for feedback, as blog comments are inappropriate for support. You might also be especially interested in this post announcing the beta release. It includes details on how to unlock these new tracks, since initially they will be locked.

Getting the beta


French translation of this article available here

November 17, 2014

Awakening with a jolt; landing on a cushion

Zzz... *snort* *huff* oh, there you are! Sorry for the long hibernation in blog posts, but I became a bit too used to having GSoC students writing all of them. Bad excuse, and I will try to get back to a more regular schedule, so this post will try to catch up to what's happened the last couple months.

To begin with it's probably best to answer the question of when the next release is coming. 0.9 is still quite far off, so we decided to try making a 0.8.2 release as soon as possible, hopefully a beta/release candidate within the year. So you should have something to download in December; whether the final release will happen then or January is still left to circumstance (bugs, first and foremost). We still have about 100 open issues to either solve or postpone, so there's (more than) enough to do for everybody, and if you would like to try your hand at helping us we welcome you, especially if you have some programming or 3D modelling experience.

There have been many improvements to the new 3D engine we're using (less and less based on Irrlicht, and more and more custom), and while an image speaks a thousand words, a thousand images in the form of a video ought to be a whole essay. The following video is an engine demo made by our resident artist samuncle.


You can watch the video at http://youtu.be/9iklMiy_Y9U and download the "kart" here.

Our artist samuncle has been hard at work indeed; check out the improved versions of Adiumy, Sara and Xue, in the tracks Cocoa Temple and Gran Paradiso Island.





Here's Sara on her snowmobile, showing off the extra pizazz the nitro effect has gotten recently, lighting up the new version of the STK Enterprise station. I wouldn't want to be right behind those thrusters; who knows what kind of strange radiation they're giving off! Apart from awesomeness. ;)


Oh, now we know. Thanks, Sara!

In miscellaneous changes, there's been way too many to list them all, but I'll mention a few very quickly.
The main configuration files now have their own sub-folder, so this means that in the future you can have several STK versions running simultaneously without getting issues where one version of the game overwrites another's configuration.
Some performance improvements have been made; for example we discovered a certain OpenAL call were slowing things down so we have minimized its usage and also moved sound to its own thread.
Physics has been improved again, specifically in landing after jumps. Now the karts are being cushioned from impact so there should be less issues with the chassis hitting the road, and karts adhere better to the road. (Maybe something for the ESA team?)
The following image is of the new screen for when you start STK 0.8.2 for the first time. You can now log in immediately to our stkaddons server which will enable you to vote on addons, see whether friends are online and view their achievements. Obviously the use of this feature will be expanded later when we have online multiplayer support and other things finalized.



Note that we collect anonymous statistics from your client if you choose to log in, such as what version of the game you are running, which OS you are using and graphics capabilities of your hardware. Your privacy is important to us, and we don't collect personally identifiable information (actually, we don't want it either). The code is open for all to see, and if you absolutely don't want to share info to us you can toggle it off in the options. However, the statistics could help us to see which platforms with what graphics capabilities are most used, and when problems arise we have some way to quantify how many might be affected. Also it gives us a feel of where we might be able to aim to when it comes to graphics performance vs fancy effects, though we will still try to make that customizable. On a final note, if you don't trust us on some level, I'd advise you to not install anything from us either... just sayin'. ;)

Hope you all are having fun with 0.8.1, and look forward to 0.8.2 which is going to be a quite major minor release... yes, 'tis confusing but ignorance can be bliss, and a stitch in time saves nine, and don't take any wooden nickels, and... later folks, some men in white coats are here to talk with me.

French translation avaliable here

STK team

November 1, 2014

Happy Halloween

Since an image is worth a thousand words, here's a quick Halloween picture made by samuncle :



This picture was rendered by the SuperTuxKart engine, so you can see how much progress has been done on the graphical engine side.

To all those curious to learn about when next version will be released : we expect a beta in the following weeks or months. There is still some work left, however, especially in porting tracks, so if any experienced modellers want to help we would be most grateful!

August 18, 2014

When Scripting Deserves to Fly

Hello everyone!

It's my very first blog post here, and I'm excited to bring to you the work I did as part of GSoC 2014!
Ever thought of an awesome and fun feature for a track you loved? Wanted the sheep in Green Valley to run away as you passed them by? Well, I've been working on a shiny new Scripting Engine for SuperTuxKart to allow all that and more. The best part is that scripting makes it unbelievably easy (and fun) to create good game loops! If you wish to know more, more details are available at http://supertuxkart.sourceforge.net/Scripting

The first part of my project was to come up with a good language and an  intuitive and user-friendly scripting API. With this in mind, I chose AngelScript as the language, due to a variety of reasons, chief among them the fact that it had good synergy with our existing code. Most of my work went into refactoring existing code so as to expose that functionality to the API. Right now, most of the different track elements you see like animations, static objects have had various properties exposed to the API. I've also added several different ways of triggering scripts, from action-triggers (Think bubbles that pop and run a script when you enter it) to collisions (between karts, items and track-objects). In addition some miscellaneous classes have also been bound ( For example 3-D vectors ), to make life easier for anyone writing scripts.

The API is pretty comprehensive at this point (You can find the API documentation at http://supertuxkart.sourceforge.net/Scripting_API), and I intend to broaden it further to allow more fun stuff to happen during races. I'm still hoping to do quite a bit of work post-GSoC on things like the weather, object behaviors and perhaps some unit testing as well.

I've added a tiny example (which is way more fun when you actually play it), for everyone to get a taste of what scripting will bring! Feel free to pull the ScriptEngine branch at  https://github.com/sachith500/stk-code for even more fun examples! You can find the scripts under stk-code/data/scripts.


An innocent looking barrel appears in Hacienda, let's check it out!




It's a trap!


The barrel has exploded into 2 parts, the rim and wonky-barrel

We'll be adding a video showcasing all the capabilities of the new engine once my work is merged, so stay tuned for more details!

August 13, 2014

SuperTuxKart Track Editor beta released!



Hi everyone!

I am happy to share the good news: the editor is ready for an open beta! Did you always want to create a track, but found Blender too complicated? Are you not afraid of trying a software which may crash? Are you ready to work hours on a track just to kill the program and lose everything? Are you good at finding bugs, reproducing and reporting them? Cool! I’m a pro marketing guy. This is our day!



After the last paragraph I am almost sure you can’t deny your desire to try the editor. How can you get it?

Windows:
For this special event I made a binary version again. You can download it from here:

 https://www.dropbox.com/s/ix7x3350ls7dsg0/editor_beta_gcc.zip

The zip contains an editor directory. Move it to your stk data directory, which contains Textures, Tracks, etc. All you have to do then is run the exe.

Linux:
If you are a Linux user unfortunately you have to build the sources yourself – I doubt it will cause much pain anyway.
The repository is still the same: https://github.com/mcsab/stk-editor
You have to build irrlicht as well. Be careful and read the readme – most likely you have to modify an Irrlicht header.
Also, the SuperTuxKart wiki has a manual and a short tutorial for the editor:

If you have any question, idea, or just found a bug, you can find me here, on the forum, or on irc.
I hope you will enjoy your work ;)

Elath

August 2, 2014

Driving on walls? Yes please.

Hello everyone,

So this is my first blog post here, I should apologize for the long silence. For those who might have forgotten, my GSoC project was, simply put, allow karts (AI and player) to drive on walls and upside down. Now that the most of the AI is functionally capable of handling any kind of track that fancies your imagination, I think its now time to discuss some results.

The AI traversing a loop in Newton
Above you can see the AI skidding through a loop in a test track called Newton. (Ignore the flying kart in the middle, its some developer magic.) The AI still uses the old algorithm but now it does something extra. Imagine that the loop is made of a strip of yellow paper. Cut out the loop and flatten it on an imaginary table, and now try to navigate this flat loop using the old algorithm. Sounds easy right? That’s what the AI is doing, except its a little bit tricky to do in code ;) Once I got the steering right, the skidding “just worked”, which was nice.
Next we look at items. They are now auto-aligned depending on which section of the track they are placed at. These include bonus boxes, bananas, nitro etc.
An AI kart collecting a bonus box on a vertical section of the track
Powerups like bowling balls, cake, basketball and rubber band have also been fixed to work when being thrown from any orientation. Bowling balls will now follow the track instead of falling down. The cake and rubber band will now hit the target irrespective of what direction the opponent is going (assuming you are in range). The basketball has been fixed to bounce in the direction perpendicular to the track instead of the up-direction. It will now follow the track as you would expect.


The rescue animation was also required to be adjusted so that the kart is dropped in the correct place, with the correct orientation. If you are upside down when you drive off the track, then that is how you should be placed back. This turned out to be a bit tricky due to a bug between irrlicht and the physics engine but thanks to hiker’s expertise this was fixed. Along with this, the explosion animation is also fixed to be perpendicular to the track.

for the lulz
Most of the AI including items and other features had been previously designed with a horizontal track in mind. This lead to the AI being coupled with the coordinate system, ex. directly using the Y axis for many operations. Majority of the work has been done to decouple the coordinate system and AI.


All said and done, this project is not complete until we get some feedback from you, our loyal players. You may check out the source here https://github.com/lurk26/stk-code , branch: walldriving. Build and run as usual and let us know what can be improved, and if you find a bug, even better :)

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!

July 3, 2014

First sign of life



I wrote this blog post to share the good news: I just managed to play on a “track” I created with the editor!

The game uses only a single texture on the terrain currently.

The exporter is in a very early stage of development. It can create the files for the terrain and driveline. I had to write other required files myself, but it was nice to see that STK can read my “track”. The driveline worked too: the AI could follow it without a problem.

Nice skidding, but seconds later i flew away

We have a few other changes as well: the camera used for editing is now orthogonal, and we have a nice indicator kart, which moves and rotates with the camera, showing us the size of a kart from the game. Every change on the track is reversible now: doesn’t matter what went wrong, undo button will work!
I just realized how huge our animals are.