June 2, 2014

A few words about the Track Editor



First two weeks of gsoc was terrible. University tried to ruin my life. Fortunately I won every fight so far, and the battle is almost over. It seems that nothing can stand between me and the best Track Editor... STK can ever have. Except my own stupidity of course, but that’s something everyone has to face (or at least it is what I hope).

I tried to write a short description about how I imagined the whole stuff:

A grid based 3D editor with all features a map editor must have: pre-made elements can be placed, selected, moved, rotated (90 degrees for sure), and removed. Commands can be canceled. The element library is easily extendable, and prepared to contain a huge amount of objects. Moving and rotating multiply object together is also supported. Roads can be created using fix road parts. There are 2 kinds of camera: an isometric for editing, and a totally free, which lets you have a clearer picture of your work. There are also some ideas which maybe won’t be ready until the end of gsoc period, like a tool to make roads with splines.

To make a model available in the editor, three files have to be placed into the right folder: the model itself, a preview image and an xml file containing information about the model for categorizing.

There is a magic “Try your Track!” button, which tries to launch the game if it is possible (e.g there is a starting position for tracks).

Here is a mockup I made for the proposal back in February, which also contains some extra information about how I imagined the categorization:



Nothing is final - I am not even sure if that toolbox should be there, or if we should use prev / next buttons or a scrollbar in the object list. I started to create quickly a usable prototype for the basic gui stuff (images are also just temporary). Using this, I’ll be able to work on the basic back-end stuff in the next few weeks. Then we will have a better view of how the whole stuff works, and I hope I’ll be able to create a usable user interface with your help.



Please say hello if you are interested in the editor, and feel free to write any advice / idea / expectation about features and about gui as well.

If you want to follow the production, you can find my works in the project’s repository:


If you are interested, I can write other blog posts in the future about the progress. I can write about cats too, as it is written that internet loves cats. Some say cats are overrated, but they are wrong. Cats are cool.
It is impossible to overrate them.

May 26, 2014

Introducing the GSoC students

This year's Google Summer of Code started roughly a week ago and we thought it might be nice to let them introduce themselves a bit before they start writing a few posts of their own. Some of the projects aren't as visual as others so there might be less posts or screenshots from the students doing them, but we'll keep you updated now and then nonetheless. Anyway, enough with introducing the introduction, let's hear what they say themselves.



elath:
My name is Csaba. You can find me in IRC / forum with the nick name elath. I have the honor to create a Track Editor for SuperTuxKart, and I will try my best to bring a useful tool for you. My next few weeks seem to be hard (exam period is coming), but I am going to find time to discuss my ideas with you, and ask your opinion.
leyyin:
Hi, I am Daniel Butum (leyyin on #stk and github). I’m currently in my first year of computer science at the Babes Bolyai university in Cluj-Napoca, Romania. I will be working on the online user administration.
Among the new features, the most important ones (that will be visible to regular users) is the possibility to report bugs on individual addons, new friend system (view, add, edit and delete friends from the stkaddons website; a crude early mockup http://i.imgur.com/tXIaxL5.png), viewing the users and addons (karts, tracks, arenas) will be simplified and easier to navigate (implement pagination and search), the possibility to post, play or comment anonymously (guest account), and of course achievements :) on the user page.
If any of you have any suggestions or questions I’m always happy to answer them in the IRC channel. ;)
nixt:
Hello readers, I go by the nick nixt on IRC and my project is about Gameplay Improvements. The primary goal of this GSoC project is to allow driving on walls and upside down surfaces. This will allow artists to create much more engaging tracks which may incorporate loop-the-loop or twister-like sections. While it is realtively easy to implement this for player controlled karts, the current AI is designed around the idea of the tracks being mostly horizontal. So the main problem we are trying to solve is to improve the AI so that it can drive around such tracks with sufficient competence. Hopefully, by the end of GSoC we will have some really interesting tracks to play with!
sachith500:
Hello everyone! My name is Sachith Seneviratne and I'm a 3rd year Computer Science and Engineering undergraduate at the University of Moratuwa, Sri Lanka. I absolutely adore programming for games, especially AI and scripting and I will be working on a new scripting engine for SuperTuxKart. The Engine will be implemented in AngelScript and will help in increasing the configurability of the SuperTuxKart codebase. The primary objective will be to create a lot of new fun interactions for karts and tracks.
solistice:
Hi, my name is Bart, aka solistice, and I'm accepted to work for STK on Gameplay Improvements. I'm 23 years old, and I live in Belgium. I’m going to work on two important features during my period here. The first one will be further implementation of the replay system. Internally, there has been some work on this, but my goal is to improve this. One of the new things will be an exportable replay file, that can be re-opened, and even raced against (in the form of a ghost race). When time allows, and networking is up to par, those replays could be spread online. The most important reason to do this, is so users can race against each other, and to fight against cheating. The top x best times could then have a replay automatically uploaded, and others can race against those replays.
The other main change included in my proposal is the differentiation of karts. At the moment, every kart has the same properties (same weight, same max speed, turning, and so on). Changing this is as good as done, internally, but the GUI to support this and the balancing work is something I will work on. I have to make sure no karts are more powerful than others, yet make the difference between karts big enough to have a visible impact in the game. This way, kart selection is more than only selecting fancy images!
When time allows it, support for different kind of vehicles (motorbikes and others) will also be implemented, but only if the other jobs are done!

Interesting bunch, eh? And even more interesting will the new features be when ready, although this will naturally take some time to get mature enough for wider release. Meanwhile, relax, drink some fruity juice and enjoy the summer!

May 5, 2014

Introducing SuperTuxKart's new graphical engine


The art challenges the technology, and the technology inspires the art.

John Lasseter Chief creative officer at Pixar

One complaint we have heard a lot over the time we have been working on SuperTuxKart is that the graphics are not really good. "The 3D graphics aren’t fantastic (think Mario 64, circa 1996, rather than anything more recent)" was written on BritishComputing about SuperTuxKart, or "Graphically SuperTuxKart is not impressive, but it has that charm that I liked so much about the older 3D games" in FamilyFriendlyGaming. And while there was a fair improvement over the original TuxKart, we always have been aware of this fact.

Luckily, being able to become a mentoring organisation in GSoC 2013 gave us an opportunity to work on that, and we can now say to people not liking the graphics: "You have been heard."

Out GSoC 2013 student Lauri Kasanen started to improve Irrlicht, which is a third-party open source rendering engine we have been using since STK 0.7. He added support for shaders, and a lot of additional features to be used by track designers (any regular reader of this blog should be aware of his very interesting blog posts during his development, see our blog posts around July and August 2013). After GSoC 2013 Vincent LeJeune took up the torch and started to write a new engine to allow new effects and more complex tracks.

We could list here all of the awesome new features like Dynamic light or Image Based Lighting. But it would be pretty boring so we have made a showcase:

Unfortunately YouTube's compression doesn't show the best side of our improved engine. So here additionally some high res screenshots of the look you can expect the next release of SuperTuxKart will have:
Lights in Old Mine

Shadows in the new Chocolate Track, which is a replacement for the Amazonian Journey
Blackhill Mansion in new and improved eeriness
Different part of the new Chocolate Track

We have also started to create a new coherent universe and a new style. This will help people's creativity and increase cohesion among tracks. I have been busy with adding Easter Eggs and various hidden references to the tracks. Admittedly you will have to look for sometimes rather hidden details, but here a few snapshots of the details you might spot: 

A fictional company, Nolok industries
Sara's coat of arms

Paulo Riviera, the president of Val Verde, a fictional country in South America

As you might have noticed, the style has changed quite a bit: STK will look like hand painted concept art, with bright colors and mostly hand painted textures:

Example of a wooden texture


While all of this makes us of course very excited, there are a few caveats: to really enjoy STK in its new and shiny glory, a reasonable powerful graphics card will be needed. For all existing users with not exactly latest computer models at hand, don't be afraid: we will still support low end graphics card, but you will have to make some compromises (at this stage Vincent is mostly fighting with bugs in the various graphics driver out there - and let me tell you, there are many). Graphical features can be enabled and disabled to allow nearly everyone to enjoy STK at good frame rates. We intend to publish a pre-release version of STK to allow us to gather some statistics about various graphics cards and performance, driver issues etc, so that we can have some proper guidelines at hand for the release.

The more immediate problem: converting all our tracks (or even better making new tracks) to not only support the new engine, but to use the new features and look really good is a lot of work. And at this stage it is only me doing all of this. So, if you are a Blender user (or know someone) who is looking for some interesting projects to work on, or are skilled with creating textures, please contact us. Typically, IRC is the best option to get some immediate feedback.

At the moment we can't really tell you when the next release of STK will be ready, but it is more likely a few months away (mostly depending on how much time we need to convert tracks, though the main developers of STK are also busy with the next 5 GSoC students who will work on STK). As always, any support is appreciated and can help us with the next release.

Jean-Manuel Clémençon | Lead graphics artist

French translation available here 

April 23, 2014

GSoC students announced

Two days ago, the list of selected GSoC students along with their projects were released by Google. Our students are as follows (nicknames only, I leave it up to the students to introduce themselves if they want): elath, leyyin, nixt, sachith500 and solistice.

Meanwhile, here's a picture of me at OVER 9000 (filler alert)!














elath's project will be to create a simple track editor for beginners. Note that it will not replace Blender as a general modelling tool nor will it be nearly as advanced, but having both tools available will hopefully bring a lot of budding track creators to our community.

leyyin will put some needed attention on online user administration, needed for the upcoming online play and surrounding services such as the stkaddons website. Among other user-visible features players will be able to report bugs to addon maintainers, add friends and view achievements from the site.

nixt is a returning student from last year, though he was not selected then. I just want to mention that because it shows perseverance can pay off, so if you were among the unlucky students this time, maybe you will get another opportunity later.
His project will include physics and gameplay, with the main focus on loop-de-loops, corkscrews and other screwy roads. The AI will also need the necessary adjustments so they know how to drive within a topsy-turvy world, along with items, rescuing and other elements which will need the same awareness.

sachith500 will create a scripting engine for the game, which will allow for interesting kart and scenery interactions, and also for less hardcoding of various existing features. The API will primarily be robust and extensible so more features can easily be added later as they are needed.

solistice will also work on physics and gameplay, but his focus will be on karts and other vehicle types such as bikes, and also unique properties for each. He'll also be looking at making a replay system which will allow uploading so others can race against it and also verify submitted highscores.

Well that was the very high-level view of what's going to happen; obviously there are quite a few details that I didn't include, but I think it's best to let them emerge naturally with time, or from the horses... err, students mouths themselves. Also there are bound to be some adjustments that will have to be done along the way.
For the rejected students this year, we encourage you to keep in touch if you have time and motivation for it - obviously you won't have as much of either one as you would otherwise but we'd be much obliged if you could stay. And any contribution, small or otherwise is much appreciated.

April 12, 2014

More GSoC statistics and ramblings

We can now reveal how many GSoC slots we asked for, and ultimately how many we got, along with some more detailed statistics on the distribution of proposals. The mathematically aware of you may see that one proposal was withdrawn, thus lowering the total number to 79.

The mysterious number in the middle is our slot count. It might not be placed pixel perfect, but I assume students won't draw delusional conclusions from that. ;)
Now implicit from this is that 74 proposals will not be accepted, and hopefully those involved will understand there can be various reasons for why their proposal weren't among the chosen ones. The obvious one is that some may simply have had better proposals. The not as obvious one is that theoretically, the top 5 proposals could be for the same category, with the result that we would most likely have to choose only the top proposal and then go to proposal #6 to find another good one for another category. That is not exactly what happened, but the principle is that even having a good proposal may not land you the slot if someone else had an even better one for the same thing.
But I'd like to point out that not being selected among this year's SuperTuxKart GSoC students does not mean we don't want your contributions. On the contrary, if you find time and can do some things outside of GSoC you can gain some experience and also help us out quite a lot even if the scope of what you do is more limited. Obviously we will have to focus on mentoring the 5 students we select, but we do welcome anyone wanting to contribute and can probably find some time to answer questions that may arise.

Speaking of contributions, we recently had a student and GSoC applicant supply us with a rewritten camera, which has been on our wish/todo lists for a long time. The previous camera had one notable design fault, so getting this code fixed was very welcome. The new camera may still contain some rough edges, but we'll try to smoothen things before releasing a stable version of the game. Thanks a lot to divvy81.

Vlj is still wrangling with graphics code, and among other things he implemented recently in that regard is texture compression, which makes the game consume a lot less video memory than before. In some situations this may improve performance significantly, though you should expect that it will still not be the lightest game around on various resources. We do try to accommodate for a lot of hardware, but there are certain requirements we expect most will be able to meet to some degree.

Anyway, I should probably quit while ahead (or behind, depending on view) and not prolong this post any further, so there you have it folks. Expect another post after the 21st announcing the selected students for Google Summer of Code 2014!