More Details about GUI Improvements

SuperTuxKart's GUI is based on a heavily modified version of Irrlicht's GUI. This task will require you to implement additional widgets in C++, including support of your new widgets in our self-written XML based specification. Some of the tasks will contain significant coding parts outside of GUI as well. The most important issues which need to be improved:

  • 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.
  • In a future version the karts will have different physical properties (e.g. different max speed; different acceleration; different weight; ...). We need to adjust the kart selection screen to show the different abilities of the karts.
  • STK can save and restart a Grand Prix. At this stage we have no GUI support for this at all.
  • STK can save and replay a race (i.e. driving against a ghost). Again, the GUI for this is completely missing.
  • Add a GUI for creating a custom GP (i.e. select which tracks, which direction (normal or reverse), and number of laps).
  • A long outstanding issue of STK is the race gui (i.e. the actual camera showing the race). First of all, it can stutter (esp. with lower frame rates, see our trac ticket #2). It might also be useful to have different cameras implemented (e.g. a first-person like camera, ...).
  • If time permits additional GUIs for online play would be nice to have: e.g. allow player to vote for the next track, ...
  • GUI to view achievements
  • Improve multiplayer kart selection
  • ...

Starting Point

The GUI engine is contained in src/guiengine and src/guiengine/widgets; all menus are specified in XML files in data/gui with corresponding code in src/states_screen. On the doxygen page there is a detailed description of the GUI engine.


For the new GUI screens (e.g. GP saving, replay) and newly designed screens a proposal should contain a mockup (more or less anything is fine here - hand drawn images, ASCII pictures) - just so that we can judge how your proposed screens will look like.