GSoC topics 2014

Line 1: Line 1:
-
This is a list of suggested projects for GSoC students (click [[GSoC_overview|here]] to go back to the overview page). Obviously we won't be able to support that many projects. The actual projects we will select will depend on the student's proposals, which mentors are doing what (to avoid having too much work for a mentor), and also what features are most important for STK. Please discuss your proposal with us first. Note that while it is not a requirement, we would certainly like to see a patch from you first (see [[GSoC_overview#Code and tickets|Code and Tickets]] section of the overview).
+
This is currently a brainstorm list of projects students could work on for GSoC 2014. It's not even certain that SuperTuxKart will get reaccepted to participate in 2014, nor are we sure how many slots we will get. Last year we mentored 3 students who all succesfully completed the program and we hope to get at least the same amount of students this year.
-
== Networking Lobby ==
+
The actual projects we will select will depend on the students' proposals, the mentors' availability (to avoid having too much work for one mentor), and also what features STK benefits the most. Please discuss your ideas with us on IRC and try to contribute beforehand so that we can get an idea of your skills. The latter is definitely not necessary but it might help us in our selection process.
-
As preparation for an online mode we need a lobby. While of course the main functionality of the lobby will be to enable online races against other players, online racing is (likely) way beyond the scope of this project in GSoC. But the lobby should have some additional benefits to users even without online racing. More details can be found on our [[GSoC_Lobby|lobby page]].
+
 
 +
== Web Portal and Lobby Server API ==
 +
TODO.
'''Prerequisites'''
'''Prerequisites'''
-
The lobby will affect various parts of the SuperTuxKart source code (e.g. racing code to determine achievements, managing ghost races, ...), but also adds new features, which needs our GUI code. Additionally the design must be well thought through to be extendable (for when we add online multiplayer using the lobby). So very good programming skills, ideally in C++, or at least C are necessary.
+
PHP. CSS and HTML.
-
It is also necessary to implement the server side, which requires php/mysql knowledge (the only available services we can run on the tuxfamily servers, which we are using). For testing, the student should be able to setup his on local server (source code of our server is in our svn repository).
+
-
The client-side can be done with libcurl to communicate with the server (though other mechanism can be suggested), so while no network programming itself is necessary (sockets), some basic knowledge about networking is good to have.
+
''' Mentor'''
''' Mentor'''
-
* Joerg Henrichs (aka hiker)
+
* Glenn De Jonghe (unitraxx)
-
* Fallback: auria, Stephen
+
* Fallback: Stephen?
----
----
-
== Battle Mode AI ==
+
== Game Lobby and User Profile improvements ==
-
At this stage the computer can only do simple lap-based races. STK already supports different game modes, especially a battle mode. Goal of this task is to implement an artificial intelligence that allows computer controlled karts to take part in battle modes. More details can be found on our [[GSoC_BattleAI|battle AI page]].
+
For last year's online multiplayer projects a lot of functionality has been added, but not much attention was spend on the interfaces presenting the features. So one part of this project is to upgrade the current interface and add any obvious missing features.
 +
 
 +
Some other nice features we want to add to online multiplayer that can be part of this project (and other ones may be suggested of course) :
 +
- Players in a game lobby vote for the next track.
 +
- Users toggling ready before the race starts automatically
 +
- More settings for the game server host
'''Prerequisites'''
'''Prerequisites'''
-
Strong C++ programming, AI techniques, path finding
+
C++
-
'''Mentor'''
+
''' Mentor'''
-
* Joerg Henrichs (aka hiker)
+
* Glenn De Jonghe (unitraxx)
-
* Fallback: funto, auria
+
* Fallback: Stephen?
----
----
-
== Rewinding SuperTuxKart ==
+
 
-
For online racing we need to be able to rewind a race to a previous state and replay the game from there (see our [[Network_implemetation|details about networking]] page for details why). This project will implement a state stack that keeps the state of a race, i.e. all important information of all karts, track status etc. to allow a race to rewind a certain number of seconds and restart from there, giving identical results. A more detailed description can be found [[GSoC_rewind|here]].
+
== Battle Mode AI ==
 +
At this stage our NPC's our only configure to do simple lap-based races. STK already supports different game modes, especially a battle mode. Goal of this task is to implement artificial intelligence that allows computer controlled karts to take part in battle modes. More details can be found on our [[GSoC_BattleAI|battle AI page]].
'''Prerequisites'''
'''Prerequisites'''
-
Strong C++ programming, ability to understand a somewhat complex and large code base.
+
Strong C++ programming, AI techniques, path finding
'''Mentor'''
'''Mentor'''
-
* Joerg Henrichs (aka hiker)
+
* Joerg Henrichs (hiker)
-
* Fallback: Funto, auria
+
* Fallback: Marianne Gagnon (aka Auria)
----
----
== Improve in-game add-ons interface ==
== Improve in-game add-ons interface ==
-
The current in-game addons interface is a flat list, with no screenshots, no search or filtering capabilities, and limited sorting. Text is also used for many pieces of information that could be visual (for instance, instead of writing "Rating: 4/5", we could display 4 stars). This project will implement a new more user-friendly interface, with more screenshots and images and less text, and better search capabilities.
+
The current in-game addons interface is a flat list, with no screenshots and limited search, filtering and sorting options. Text is also used for many pieces of information that could be visual. This project will implement a new more user-friendly interface, with more screenshots and images and less text, and better search capabilities.
-
SuperTuxKart uses its own GUI engine, based on the irrlicht widget set and HTML-like text files describing the layout. It may be necessary to extend the STK GUI engine to produce the desired results
+
SuperTuxKart uses its own GUI engine, based on the irrlicht widget set and XML files describing the layout. It may be necessary to extend the STK GUI engine to produce the desired results. The proposal for this project may be extended with interface improvents for other parts of the game. (Highly recommended, though make sure that your timeline seems reasonable.)
'''Prerequisites'''
'''Prerequisites'''
-
Intermediate C++ programming, GUI programming experience an asset
+
C++ programming, experience with HTML or XML GUI's might come in handy
'''Mentor'''
'''Mentor'''
Line 57: Line 63:
== Improving graphics ==
== Improving graphics ==
-
STK graphics can be improved in a variety of ways, generally involving shaders programming. This task also includes improvement of the infrastructure/shader support in STK. The full details are on the separate [[GSoC Graphical Improvements | graphical improvement]] page.
+
STK graphics can be improved in a variety of ways. What's currently requested by our main artists is better shadow implementations and SSAO.
-
 
+
'''Prerequisites'''
'''Prerequisites'''
Line 66: Line 71:
* Marianne Gagnon (aka Auria)
* Marianne Gagnon (aka Auria)
* Fallback: funto
* Fallback: funto
-
 
-
----
 
-
 
-
== Crash Reporting System ==
 
-
 
-
Let normal users (without installing additional software) be able to submit a useful stack trace when a crash happens. Existing libraries can be used for this, for example [http://code.google.com/p/google-breakpad/ breakpad]. Main issue is that in binaries we distribute no symbol information is available anymore (partly to make the executables smaller, partly because we are not allowed to distribute debug executables), so a simple stack trace in the application is not easily possible.
 
-
 
-
It would need some implementation work in the GUI as well, since we (probably) can't handle automatic submission of very crash, so the user should be presented with the option to submit the traces, with an option for additional comments (e.g. describing what was happening when the crash happened). If possible it should include additional information from STK, esp. a history of what happened in the race in the last few frames (history and/or replay information are already collected in STK).
 
-
 
-
One possible idea would be that after a crash stk is restarted with a special command line option from a script, which would then only report that there as a script. This way we don't need a separate gui lib, and we avoid any problems if actually the gui should cause the crash in the first place .
 
-
 
-
'''Prerequisites'''
 
-
 
-
Some C++ programming, cross-platform experience (Windows, Linux, Mac OSX) - though most of this can be hidden in a properly selected library to handle platform-specific stack trace creation.
 
-
 
-
'''Mentor'''
 
-
* Joerg Henrichs (hiker)
 
-
* Lionel Fuentes (funto)
 
----
----
Line 122: Line 109:
C++ programming, 3d graphics understanding, some blender skills.
C++ programming, 3d graphics understanding, some blender skills.
 +
 +
'''Mentor'''
 +
* Marianne Gagnon (auria)
 +
* Lionel Fuentes (funto)
 +
 +
----
 +
 +
==Scripting engine==
 +
TODO
 +
 +
'''Prerequisites'''
 +
 +
C++ programming, notion of how scripting works
'''Mentor'''
'''Mentor'''
* Marianne Gagnon (auria)
* Marianne Gagnon (auria)
* Lionel Fuentes (funto)
* Lionel Fuentes (funto)

Revision as of 17:26, 16 November 2013

Retrieved from "http://supertuxkart.sourceforge.net/GSoC_topics_2014"

User Tools