November 26, 2013

SuperTuxKart 0.8.1 released

We are proud to announce the release of SuperTuxKart version 0.8.1.

Full resolution available at supertuxkart.net/posters. Drawing by Mariam Lamrani

This release includes the following features:
  • New track 'STK Enterprise'
  • Updated tracks 'Old Mine', 'Around the Lighthouse' and 'Zen Garden'
  • New modes 'Soccer' and 'Egg Hunt'
  • New karts 'Xue' and 'Sara'
  • Updated 'Beastie' kart
  • Wiimote support (for most Wiimotes; check supertuxkart.net/wiimote for instructions and compatibility)
  • Added tutorial
  • Added new 'SuperTux' difficulty
  • New bubblegum shield defensive weapon
  • New combined speedometer and nitro meter
  • Added ability to filter add-ons
  • Updated nitro models
  • Added ability to save and resume Grand Prix
  • Improved skid marks and particle effects


Video available at youtu.be/WutAN4i98_o. Trailer by Thomas Fournet

It has taken us a rather long time for a minor release, but most of the developers have been rather busy with mentoring students for the “Google Summer of Code 2013”. On the other hand, we had many contributions from new developers: Dawid Gan tirelessly fixed bugs, making 0.8.1 the minor release with most bug fixes. Johannesr1 added shield functionality to bubblegum. Xenux added filtering of add-ons, Glenn De Jonghe saving of a Grand Prix (just abort a Grand Prix at the beginning of a race, later then restart the same Grand Prix again). Funto and Mohammad Al-Ghannam added a multi-player soccer mode.

You can get the new release from our download page for Windows Vista and newer, MacOSX 10.6 and newer (Intel architecture), and Linux (32-bit and 64-bit Intel/AMD architectures). Windows XP version will follow soon.

We hope you enjoy the new release, and as always we welcome new artists and programmers to join us, either through our forum or our mailing list. Also, you can follow us at Twitter @supertuxkart.

With SuperTuxKart 0.8.1 you can race roaringly rapid or roam ridiculously 'round, whatever you want!

French translation of this blog post: samuncle.net/?p=247

November 18, 2013

SuperTuxKart 0.8.1 RC1

We are pleased to finally announce the first release candidate for version 0.8.1. Major changes are:



     * New track "STK Enterprise"
     * Updated tracks "The Old Mines", "Lighthouse", "Zen Garden"
     * New Soccer mode
     * New Egg Hunt mode
     * New karts Xue and Sara
     * Updated Beastie kart
     * Wiimote support
     * Added tutorial
     * Added new "SuperTux" difficulty
     * New bubblegum shield weapon
     * New speedometer and nitro meter
     * Add ability to filter addons
     * Updated nitro models
     * Add ability to save and resume Grand Prix
     * Improved skid marks and nitro effects

Obligatory screenie: Old Mine got more shiny!
 
You can find binaries for Windows and MacOSX over at SourceForge.net
We will try to get a Linux static binary as soon as possible
We now have a Linux static binary as well, but in case this doesn't work for you, you can compile the source package yourself. Note that we now use CMake instead of autotools, so be sure to follow the instructions on our wiki.
Also worth mentioning is that while we now have Wiimote support for most such devices around, one specific model is not working yet and hopefully we'll be able to fix that sometime later. See details for that and how to connect your Wiimote over at supertuxkart.net/wiimote.
That should be all, please help us test and give feedback especially if you notice any problems. Enjoy!

October 31, 2013

GSoC and String Freeze for 0.8.1

The "Google Summer of Code" finished about a month ago. First of all a congratulation to the three students - hilnius, unitraxx, and cand for their fantastic work. They survived more than three months of frantic hacking, frustrating bugs, questions, testing, and discussions. As a result, we have three branches filled with new goodies for SuperTuxKart:
  • Cand added significant graphical improvements. On one side that made our artist samuncle very happy, on the other hand this will keep him busy, since now he has to improve all tracks to make use of the new features.

  • Unitraxx added an online lobby, allowing people to login, declare friends, and even store achievements. All in preparation for a full online experience ... which will keep our team busy.

  • Hilnius added networking support, allowing people to connect different computers and play against each other. The first online game was already played between Arthur and Hilnius.
Also a big thanks to our mentors - Stephen, Funto, and Auria, who helped and supported our students. Their guidelines and experience was important to give us the excellent outcome we had. A special mention also to Arthur, who was the go-to person on IRC, tirelessly motivating our students, keeping them entertained with his puns, and acted as a tester.

I am aware that all of you are very keen to see the next improved version of STK, so here a brief overview of the things that will happen next:
  • Arthur is already organising the 0.8.1 release. And the important news item here: we can now declare the string freeze. This means, no more changes to any strings in the game, and all translators can start work on their translations!
    The 0.8.1 release will not include any GSoC work yet, but all the improvements and bug fixes that have been done in the months since the 0.8.1 release. Note that the main developers (esp. auria and myself) have not done very much work for that release, but we had important contributions from the community. This is not supposed to be a complete changelog, I just picked the major improvements from our growing community:
    • deveee who tirelessly fixed bug after bug, earning himself the title 'Bug Fixer of the Year'.
    • Funto's and Yasin's soccer mode.
    • Using the bubble gum as shield thanks to Johannesr1.
    • Grand Prix saving thanks to unitraxx (contributed before he started working on GSoC).
    • Add-Ons filtering by xenux.
  •  The next release will merge in cand's graphical improvements. This will require a fair amount of work on tracks to improve them. Samuncle has developed a new style for this, and he has started to create a great looking track following the new guidelines. This takes a huge amount of work (creating new textures, new models, ...), so any support here is appreciated. At this stage I am not entirely sure if this release will be called 0.8.X, or 0.9. The latter would make more sense, since it will visually be a big change, on the other hand 0.9 was according to our milestones the online version (which would then need to be 0.10 or so). Well, numbering is not important - 0.X it will be.
    While samuncle is quite keen on that version, the full graphically improved version of STK might only arrive after 0.X. We will try to release early versions with only some new tracks, so that you can all see where we are heading to. We really want to have more artists working on STK, so showing off a glimpse of what STK can look like will hopefully motivate more artists.
  • After that we will start working on the online mode in earnest. Even though thanks to GSoC we have a solid base to build on, there's still a lot to be done. We have to merge the work from hilnius and unitraxx. And while they did a good job, there is still a lot of testing and polishing to do. One important outstanding thing (which was not part of hilnius' task): hiding latency by using rewinding. Without this STK can be played with 'good' network conditions, but not reliably and fluently enough under real world conditions. At this stage we are not sure what 'good' conditions actually mean - LAN with cable only? LAN with wireless connections? WAN? A lot of things to test. True enough, one game between two people in France and Norway was already played without latency hiding. Depending on time we might release some LAN-only networking versions before. Also, depending on features we want to include, we might also need at least one dedicated server for the lobby, and ideally to prevent cheating perhaps also dedicated online servers - though discussing, testing, and evaluating various approaches are the things that will be on our todo list over the next months.
Now, I will not present a timeline here. After all, STK is a hobby project for all of us, and delays do unfortunately happen. But for us it feels we are getting close to the long awaited 1.0 release.

As always, we can use any help to speed things up - bug fixes, coding new features, testing, documenting, 2D / texture artists, 3D modelling, ...  For example, with the upcoming 0.8.1 release we are very interested in a 'PR Manager' - someone who can write regular tweets for us, perhaps maintain a Facebook page, advertise on other web pages, ... No programming knowledge required, but you should have a good grasp of English. You need to be able to build STK yourself, which luckily is not complicated (and we are happy to give you a hand). So, don't hesitate to contact us - either on our forums, or for more immediate answers on IRC (#stk at freenode).

Also Google has announced that there will be a Google Summer of Code 2014 - the 10th one, a nice round number. While I can't guarantee that we will be selected again, our experience with GSoC 2013 was great, so we will try to be part of it again.

Cheers,
   Joerg

September 10, 2013

Graphics final: statsy

As nothing major will be happening on the graphics front from now on (docs, cleanups), let's print some stats for our loyal followers.


Splashing on some pics to not scare you out outright with numbers. That's one damn cool looking barrel in the shadow if I say so myself.


That glass is wavy. Distortion effects can now be used in underwater/aquarium levels.

Anyway, to the main meat. Any bugfixes and other code that could go directly to trunk has gone there, so these numbers are a bit short for measuring all the work I have done. They are only the graphics parts that couldn't be merged with 0.8.1 not yet out.

162 files changed, 8410 insertions(+), 1509 deletions(-)

We're around 10k changed graphics lines.

By file count, 68 out of 162 or 42% are shaders; by line count, shaders account for ~2000 lines, or 20%.

The top-10 files with most changes are:
 src/graphics/render.cpp                            | 787 +++++++++++++++++++++
 src/graphics/callbacks.cpp                         | 744 +++++++++++++++++++
 src/graphics/post_processing.cpp                   | 724 +++++++++++++++----
 src/graphics/callbacks.hpp                         | 683 ++++++++++++++++++
 src/graphics/material.cpp                          | 620 ++--------------
 src/graphics/irr_driver.cpp                        | 353 ++++++---
 src/graphics/lens_flare.cpp                        | 264 +++++++
 src/graphics/shaders.cpp                           | 256 +++++++
 src/utils/helpers.cpp                              | 220 ++++++
 src/graphics/mlaa_areamap.hpp                      | 200 ++++++

To end this, posting the final and only video, one of source code ;)


The music is Ancient tale by Radek, CC-BY.

(in case you wonder why: nobody likes watching jerky fraps-like captures, I don't have a capture card, and STK doesn't support non-realtime capturing (yet).)

Wrapping up, your graphics dude.

August 23, 2013

Graphics 9-10: 60 shades

Evening, our loyal supporters, and other random passersby who happen to read this blog, if for no other reason that its choice of font is excellent.

While this period's plan was to get wet (insert Snoop Dogg reference here), shadows were deemed more important and pushed water back to next period. Grass, having already been taken care of at a satisfactory level, will drop off the plan, having been replaced by water.


Here you see the importance map with some more functions of importance: distance from the camera, surface normal, and the luminosity of the seen pixel.

Distance is obvious, close shadows need more resolution than far-away ones. The surface normal function boosts the importance if the surface happens to be facing the camera, as shadows on that are more visible than those on a wall at an angle. And finally, darker pixels need less shadow resolution than brighter ones.

Together, we have approximately 16 times better resolution than good-old-shadow maps.


Then, the work progressed towards soft shadows. You might chip your finger on those hard edges if you're not careful, is all.

Having checked the most often used books on your coder's bookshelf, the Necronomicon and the Book of the Law had nothing on soft shadows, which was greatly surprising. Thus we had to dig deeper, finding an antique copy of Gpu Pro 2 buried in a temple close by.

That book details an incantation of screen-space soft shadows, a scalable spell that produces nice-looking soft shadows from any shadow technique. It's far from a uniform blur; shadows are sharper close to the caster as they should be.


Unfortunately we're not immune to a characteristic of warping shadow techniques: the edges swim. What could be done to limit it has been done, but as shadow pixels vary in size and position, fully stable shadows aren't possible with warping techniques.

Luckily, it's not that noticeable with soft shadows and racing at speed. Still, it highlights how this is still an open problem.

The next bit is for artists.



Here we have the screen and shadow views of a fence. There's slight peter panning going on, but otherwise it's looking good. Artists could help the Pan problem by making the fence thicker.




Going forward next to the fence, we see the shadow suddenly disappear. What's that? A fence made of grass decided to rot and disintegrate in place? No, nothing of the sort, sadly. Not even termites.

In the shadow view we see the issue: uneven warping due to huge triangles. Sure enough, checking the wireframe view, the fence tris are rather big. Warping techniques are sensitive to huge triangles: they can cause artifacts like these. Subdividing the appropriate parts gets rid of that.


And finally, water was started on. We have nice glittering summer caustics here, visible at the pool's bottom. Hard to see in a still picture you say? Aye, it be so. Take a sip of your closest bottle of rum, and repeat enough times that the lights in the picture start to move to get a picture of how it looks like.

So, the remaining time shall be spent in all kinds of wetplay; hopefully 0.8.1 will be out soon, so we can begin integrating the graphics changes. Many of them need updates to tracks so that they can be fully realized, which would push a release back a century or so, give or take 99.8 years.