The grass texture slowdown working again makes this challenge several seconds slower than in 0.9.3 ; and the previous balancing change for supertux ended up overshooting.
The additional AI karts also make it more challenging than in 0.9.3, as it's frequent to be hit by something in the 1st lap.
The AI is not yet good enough to be the sole factor ; the time requirement is necessary to not have these Super Tux challenges much easier than others.
Time-trial records give a good idea of the relative length of different tracks. I tried to keep a similar balance to the one reached in Cornfield Crossing's challenge.
Finishing first should always result in challenge success in low difficulties, and the AI balancing should be more effective than per-challenge tweaking in achieving consistent difficulty across challenges.
The AI is slower than the required times in this challenge, so it makes it easier.
The previous times were, without nitro/skidding, as hard if not harder than the expert challenge.
As discussed on IRC with Auria.
This removes the several issues already noticed when switching between 0.9.3 and git versions (forgotten challenges and settings ; and more recently a crash with highscores).
Reminder for git users : you can migrate your data by copying it from the previous folder to the new one, so you won't have to redo your settings/profiles.
This reverts commit 84359ad7da.
It broke "Max players supported" text in arena info screen. It also doesn't work well for hidpi_enabled property that is used on android. Additionally it causes incompatibility with older STK versions (STK 0.9.3 crashes when there is more than 3 entries in hiscore.xml).
Fixes#3424Fixes#3425
* Use shouldDrawTimer overrides for tutorial and soccer worlds
* Add isActiveRacePhase
* Update shouldDrawTimer
* Remove duplicate check
It also allows displaying time in soccer after a goal
* Add a hide multiplayer replays checkbox
* Hide player number column ; add kart icon column
Enabling the icon display creates issues in the list widget layout, however.
* Fix formatting issue when an icon is displayed in only some cells
* Display "?" icon when kart model is unknown
This can happen with uninstalled addons, old replays with removed official karts, etc
* Add helper functions for icons in replay info dialog
* Add kart icons to replay info dialog
* Delete m_icon_bank in tearDown
* Remove a duplicate mention of deveee ; add Fantasmos and QwertyChouskie
Fantasmos has contributed :
- Illimited splitscreen multiplayer (involves also race UI improvements in local multiplayer)
- Flashing bubble gum before expriation
- Crash sounds changing depending on speed/direction
- Better rescue
- Misc fixes
QwertyChouskie has contributed :
- New skidding particles
- Misc. fixes and improvements
* Add most of the significant changes (for finished features) since 0.9.3 to the changelog
* Include two more changes for the 0.9.3 version
* Add a few items, clearly separate track/modelling changes
Also, each new track get one line of changelog. Putting two on the same line vastly underestimate the importance of such a change. This also make it easier to mention removed/replaced tracks.
The changelog should not be shortened at all costs ; rather, it should be reasonably complete and not shy from using more lines as a visual cue when appropriate.
* Add kart and tracks subsection, improve changelog organization for 0.7.x versions
* More sorting for 0.6.x releases
* Improve info on track changes in 0.4/0.5
* Add android input improvements to the changelog
* Fix typo
* Remove incomplete name change info
* Manage if the sort should be default, ascending or descending from the base widget
* Update all list sorting to be in sync with the list widget sort buttons
This can help in case of high latency connections and quick steering changes:
because of the high latency the steering is applied too long locally,
reducing in the other kart driving left/right way too much.
It's disabled for now (i.e. steering is multiplied by 1.0), but can be
enabled in stk_config.
* Use thread number from Travis docs
The other number is probably incorrect.
See https://github.com/travis-ci/travis-ci/issues/4696
* Add macOS to travis builds
* Remove unnecessary libraries
Not sure why these were added in the first place.
First commit that added them: 6aecb42e42
* Fix server-only build on macOS
* Update macOS instructions
Thanks @OzoneOne for testing this.
* Fix issues
Also remove 0.9.3-and-below-only Xcode build instructions, was "much less well tested" anyways.
* Revert unnecessary change, more tweaks
* Remove extra newline
* Updated options UI file, new icon for language tab
Also updates the license file.
* Update the options screens to support the new layout
And add a language change screen.
* Don't overwrite the updates which happened in master.
* Add missing (new) password reset button
* Focus the list of actions binding rather than the tabbar in device options
* Add vertical tabs to ribbon widget types
* Update GUI engine for vertical tabs
* New icons for the help menu
The slipstream icon is not great, it's here to have something now. It should be replaced by something better looking and more in STK's visual style.
* Updated help GUI
The git changelog is a bit misleading here, because the order of the items in the help menu has been revised too.
1)General (same)
2)Game modes (before : 3)
3)Powerups (before : 2)
4)Bananas (before : 5)
5)Story Mode
6)Kart classes
7)Multiplayer
* Update help screen code to handle the additional tabs
The hugely repetitive structure of one cpp/hpp per tab is kept here.
* Optimized version of new icons
Except for the slipstreaming one, as it should be replaced by a better one anyway.
* Add vertical tabs to ribbon widget types
* Update GUI engine for vertical tabs
* Add the ability to get a ribbon's active children number
* Add full looping for vertical tabs
* First version of donation link and password reset buttons
The register screen still needs to be tweaked, though the GUI engine seems to be limted here.
Maybe dynamicly delete/re-create the widget?
* Fix mingw compilation
* Remove dead code
* minor cleanup
* Error handling, tweaks
* Fix ifdef for macOS
* Disable donate button on Android
* Use stk-config
* Implement LinkHelper::isSupported, fixes
* Allow full up/down/left/right navigation
* Update list and ribbon widgets to work well with the new navigation
* Fix windows compilation
* Improve navigation algorithm to fix the observed limitations
* Make windows compilator happy
* Fix keyboard navigation issues in networking lobby
And make some parts more proportional to screen size
* License for new coal skin
* Coal skin elements
* New coal skin
* Better contrast for coal skin select
* Lighter white text.
* Improved contrasts for actionable UI elements
* Make the theme back to a darker background while improving contrast again
* Ranking formula refinements (#3288)
* Reduce the maximum scaling time from 600s to 500s
8m20s is already much longer than nearly all ranked races will be, so it matters most for eliminated players. It would be too punishing if kept to 600 with the new time scaling method.
* New helper function for ranking computations
* Make short races less important for ranking points
And long races more important
* Use double for calculation
* Fix as alayan suggested
* Fix possible empty race event manager instance
* Show remote player in the past
* Allow to set commandline arguments on android
* Fix#3242
* More on #3242
* FIx#2912
* Better checkboxes (#3291)
* Better checkboxes for forest skin
* Better checkboxes for ocean skin
* Better checkboxes for peach skin
* Better checkboxes for ruby skin
* Try to create external/internal directory if it's not available.
Typically it always exists on new phones, but I didn't find any information if it's guaranteed to exist and it's missing on my old phone.
* Always set blend func in GLES 2.0.
It's often changed in STK engine and the value stored in irrlicht variable may be invalid.
Fixes#3296
* Avoid a crash when user name is empty
* Unlock cutscene improvements (#3298)
* Don't display unlocked features out of screen when there are 4 to 6-7
And more regular spacing between them
* Remove outdated workaround
* Store the previous number of story mode point
* Allow to get the previous points from player profile
* Fix points estimation for finding unlocked tracks
- Updated to reflect that the player's points are now updated before this function
- Use the real previous number of points rather than trying to estimate the point change (otherwise, the points computation method would have to be duplicated here to not have a bug with GPs who give more points than single race challenges).
* Fix#3100 (#3299)
* Fix#3100
* Fix server only compilation
* Fix stupidly long line full of whitespace (#3303)
* Don't use pkg-config on macOS
Fixes#3305
* Fix#3309
* Great improvements to skin data (#3312)
* Add vertical tab support and get common files from a common folder
* License file for the common folder
* UI images shared by all 4 colored themes
* Delete redundant pictures
* Delete background.jpg
* Delete dialog.png
* Delete glassbutton_deactivated.png
* Delete glasscheckbox_checked_deactivated.png
* Delete glasscheckbox_deactivated.png
* Delete glass_rsection.png
* Delete glass_section.png
* Delete glassspinner.png
* Delete glassspinner_deactivated.png
* Delete glass_square_focused_bw.png
* Delete left_arrow.png
* Delete list_sort_down.png
* Delete list_sort_up.png
* Delete rating_star.png
* Delete right_arrow.png
* Delete scrollbar_bg.png
* Delete scrollbar_btn.png
* Delete table_header.png
* Delete tooltip.png
* Optimize image size and add vertical tabs
* Optimize image size and add vertical tabs for ocean skin
* The multiplayer colored squares are also shared
* Use the multiplayer colored squares from common
* Remove more redundant skin images
* Delete glass_square1.png
* Delete glass_square2.png
* Delete glass_square3.png
* Delete glass_square4.png
* Delete glass_square_focused.png
* Delete glass_square_focused2.png
* Delete glass_square_focused3.png
* Delete glass_square_focused4.png
* Optimize image size and add vertical tabs for peach skin
* Optimize image size and add vertical tabs for forest skin
* Special focus halo for ruby skin
Currently, the halo used in single player is shared with the one used for the first player in local multiplayer, despite the color of the top spinner widget not matching in this situation.
Better having this mismatch that a not-so-great halo in single-player.
I put it in common as it may be reused for multiplayer focus by other skins.
* Use pink selection halo
* Put the bottom bar among skinnable UI images
* Make the bottom bar part of the skins
* Coding style fix
* Delete bar.png
* Load bottom bar texture from skin rather than gui folder
Also rename bg_image to m_bg_image
* Move black focus halo to the common folder
* Remove duplicate image, use common folder
* Delete glass_square1.png
* Delete glass_square2.png
* Delete glass_square3.png
* Delete glass_square4.png
* Delete glass_square_focused.png
* Delete glass_square_focused2.png
* Delete glass_square_focused3.png
* Delete glass_square_focused4.png
* Delete glass_square_focused_bw.png
* Delete left_arrow.png
* Delete rating_star.png
* Delete right_arrow.png
* Delete list_sort_down.png
* Delete list_sort_up.png
* Delete glassbutton_deactivated.png
* Delete glasscheckbox_deactivated.png
* Delete glassspinner.png
* Delete glassspinner_deactivated.png
* Delete scrollbar_bg.png
* Delete scrollbar_btn.png
* Delete tooltip.png
* Delete glasscheckbox_checked_deactivated.png
* Use common folder, support vertical tabs, and small tweaks
* Optimize image size, add vertical tabs, add custom bottom bar
* Add vertical tab support and get common files from a common folder
* License file for the common folder
* UI images shared by all 4 colored themes
* Delete redundant pictures
* Delete background.jpg
* Delete dialog.png
* Delete glassbutton_deactivated.png
* Delete glasscheckbox_checked_deactivated.png
* Delete glasscheckbox_deactivated.png
* Delete glass_rsection.png
* Delete glass_section.png
* Delete glassspinner.png
* Delete glassspinner_deactivated.png
* Delete glass_square_focused_bw.png
* Delete left_arrow.png
* Delete list_sort_down.png
* Delete list_sort_up.png
* Delete rating_star.png
* Delete right_arrow.png
* Delete scrollbar_bg.png
* Delete scrollbar_btn.png
* Delete table_header.png
* Delete tooltip.png
* Optimize image size and add vertical tabs
* Optimize image size and add vertical tabs for ocean skin
* The multiplayer colored squares are also shared
* Use the multiplayer colored squares from common
* Remove more redundant skin images
* Delete glass_square1.png
* Delete glass_square2.png
* Delete glass_square3.png
* Delete glass_square4.png
* Delete glass_square_focused.png
* Delete glass_square_focused2.png
* Delete glass_square_focused3.png
* Delete glass_square_focused4.png
* Optimize image size and add vertical tabs for peach skin
* Optimize image size and add vertical tabs for forest skin
* Special focus halo for ruby skin
Currently, the halo used in single player is shared with the one used for the first player in local multiplayer, despite the color of the top spinner widget not matching in this situation.
Better having this mismatch that a not-so-great halo in single-player.
I put it in common as it may be reused for multiplayer focus by other skins.
* Use pink selection halo
* Put the bottom bar among skinnable UI images
* Make the bottom bar part of the skins
* Coding style fix
* Delete bar.png
* Load bottom bar texture from skin rather than gui folder
Also rename bg_image to m_bg_image
* Don't display unlocked features out of screen when there are 4 to 6-7
And more regular spacing between them
* Remove outdated workaround
* Store the previous number of story mode point
* Allow to get the previous points from player profile
* Fix points estimation for finding unlocked tracks
- Updated to reflect that the player's points are now updated before this function
- Use the real previous number of points rather than trying to estimate the point change (otherwise, the points computation method would have to be duplicated here to not have a bug with GPs who give more points than single race challenges).
* Reduce the maximum scaling time from 600s to 500s
8m20s is already much longer than nearly all ranked races will be, so it matters most for eliminated players. It would be too punishing if kept to 600 with the new time scaling method.
* New helper function for ranking computations
* Make short races less important for ranking points
And long races more important
This permission is not officially available in documentation and it was a hack for some devices that have access to sdcard only on system applications.
* Don't generate IRC alerts
* Differentiated rubber-banding
* Fix#3222
* Small simplification
* Use master's version
* Fix typo
* Use std::sort
* Remove useless function call
test_ai is only used for profiling without human players
Checklines validation is for karts only, so having it true for the basket ball made the ball_distance always equal to zero. Setting it to false make the basket ball work again.
* Update GUI files for replay improvements
* Updated replay capabilities
* Improve timer formatting possibilities
Mainly, the ability to choose to display or not minutes, and to choose how many digits are shown after seconds (from 0 : second as smallest timestep - to 3 : ms as smallest timestep)
Also displays "mm:ss.ms" rather than "mm:ss:ms".
* Some new list widget possibilities
Like the ability to update the header while the list is displayed (useful to add or remove columns)
* Update ghost kart for the new replay data
* Also update the ghost controller
* Live differences with ghost replays in linear worlds
* Replay-related UI changes
Big changes to the replay selection screen, and small change to the race UI (add the live timer in ghost races) and the race result UI (add the option to directly race against a newly saved ghost).
* Improves the replay action modal dialog
* Fix time-to-ticks regression
* Several requested improvements
* Improved ghost icon
Also updates the license
* GUI changes and improvements to accomodate multi-mode support
* Additional recorded data
* More functions to get the current race state
* Update replay variables to match what is used
* Updated replay-related config values
* Add ghost kart support to easter egg hunt mode
* Transparent attachments for ghost karts
* Use new stored data (color, item type)
Also :
- Interpolate speed for smoother display in watch-only mode
- Coding style improvements
* Fix coding style issues and add UI support for modes
* Fix coding style issues & support for easter egg mode
* Remove leftover prints
* Use getDifficultyName to remove hardcoded values
* Fix attach_ticks and coding style fixes
* Make the position of the timers fully relative
Otherwise, they would tend to touch each other in some resolutions
Also add a comment about the 59.9995f
* Make the list filling code clearer
Also use getDifficultyName
Most of the line changes shown by git correspond to moving around some bits or adjusting indentation.
* Remove a TODO as requested
* Fix dialog being dismissed too soon
* Remove a fixme
* Small clean up
* Fix logging
* Partial #3249 fix
Now spinner widget is drawn correctly and min value >= 1 restriction exists in xml file anyway. In this way it shows correct value when particles effects are manually set to 0 in config.xml.
* Update custom_video_settings.stkgui
Change label titles to conform to title case typographical convention.
* Update custom_video_settings.stkgui
Sentence case for everything.
updates of all collected items to the clients as part of a state.
A client confirms the received states. Once all clients have
confirmed a certain event, that event is deleted on the server
and not sent anymore. WIP, item collection kind of works, but only
because of kart state updates which include attachment (but not
e.g. nitro).
This factor has been chosen because :
1) It allows the toplist to be able to still display 10 karts (maximum number reached in story mode or in networking (currently 12 but will be 8-10 for release according to Benau))
2) This size should fit nicely in the android GUI.
Otherwise, there is still some margin before it hinders view in 4:3 resolutions.
* Add SuperTux difficulty & update number of karts
Also make the expert challenge slightly easier to match more the difficulty of other challenges.
* Add SuperTux difficulty & update number of karts & points required
Also give some more time margin in easier difficulties, as it is a hard challenge compared to most.
* Add SuperTux difficulty & update number of karts & points required
Also change the lap count to 4 as it is a very short track (sub 30s)
* Add SuperTux difficulty
Also tweak the expert challenge to have a more appropriate difficulty
* Add SuperTux difficulty & update number of karts
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
Also correct the requirement position, since this is not a FTL race anymore.
* Add SuperTux difficulty & update number of karts & points required
Also slight balancing improvements for the usual difficulties.
* Add SuperTux difficulty & update number of karts & points required
Also adds a position requirement in expert
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
Also change the number of laps to 5, as this is a very short track. The time requirements for easier difficulties have been kept proportionally similar to before.
* Add SuperTux difficulty & update number of karts & points required
Also change the number of laps to 4.
* Add SuperTux difficulty & update number of karts & points required
Also add a position requirement to expert and intermediate.
* Add SuperTux difficulty & update number of karts & points required
Also change the number of laps to 4, as a lap often is 30s or less in expert/supertux
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Rename islandtrack.challenge to gran_paradiso.challenge
* Rename challenge file
* Add SuperTux difficulty & update number of karts & points required
Also makes the time limit in expert less easy and tweak position requirement.
* Add SuperTux difficulty & update number of karts
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
Doesn't unlock the SuperTux difficulty anymore - it's managed elsewhere.
* Add SuperTux difficulty & update number of karts & points required
* Add SuperTux difficulty & update number of karts & points required
* Add new unlock challenges, for difficulty and karts
* Add a lap to oliver's math class
* Replace Northern Resort by Volcano Island
* Replace Volcano Island by Candela City
Candela City was in no (official) GP before this.
Also sets Green Valley to 3 laps.
* Add Northern Resort and remove Fort Magma
In 0.9.3, this GP has only 4 races in Story Mode (5 for the other GPs) because Fort Magma is locked.
Of all the tracks outside this GP before, Northern Resort is one of the hardest, the AI being rather good there.
* Temporary cup for SuperTux challenges
Recolored version of the gold cup
* Update challenge selection UI for the SuperTux challenges
* GUI used before SuperTux difficulty unlocking
This is the old select_challenge.stkgui
* Swap the two sara
* Replace Kiki by another kart to unlock on Benau's demand
* Update for improved Story Mode
* Update for improved Story Mode
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Update for SuperTux ; also adds the ability to unlock a challenge by points
* Update for unlocking by points
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Add support for SuperTux challenges
* Minor changes to function calls
* Update for SuperTux challenges
* Add support for SuperTux challenges
* Update for Story Mode GP changes
* Allows to display the correct number of points for GP challenges
* Set the unlock of the 1st bonus kart to correct non-test value
* Add support for SuperTux challenges
Including a bigger challenge selection diaolg
* Add default value
* Icon to indicate that there is an unlockable
The number of points needed to unlock it are displayed next to it.
* Changed format : the point requirements is now specified in the file
* Changed format : the point requirements is now specified in the file
* Changed format : the point requirements is now specified in the file
* Function for unlock by points UI
* Add default for unlock list node and use requirements node for all
* Make unlockByPoints simpler and more flexible
Now the code will iterate in StoryModeStatus and send the unlock_list challenges for treatment here. The question of getting the right challenge statuses beings solved, it allows for a great simplification and much more flexibility
* Update unlockByPoints declaration
* Adds support for next unlockable UI
* Improve call of unlockByPoints
Also calculations for displaying in the UI how many point the next unlockable by points requires.
* Add icon for next unlockable
* Displays icon/number to make the player aware of the next unlockable
Also displays the number below the icon rather than on the side, for more clarity.
* Changes to display karts in the unlock scene
* Update unlock functions declarations
* New function to clarify code and more logical recently unlocked list management
In the previous version, everything was added to the recently unlocked list at some point, necessitating a clearing at the end of computeActive, which also removed from the list the non-race challenges. Checking if the feature is newly unlocked to add it to the list remove the need of that clearing.
* Declaration for unlockFeatureByList
* Display newly unlocked karts
* Display newly unlocked karts
* Clear the list of recently unlocked features at the end
* Update testing code
* Update unlocks finding function call
* Improve UI scaling
* Fixes indentation
* Update the number of points before checking for unlock by points
* Add const to declarations
* Remove const_cast
* Remove a const_cast
There are other const_cast in the menu debug items (but they are unrelated to this PR)
* Fix menu being bolder
Now we don't use tfb shader to compute particles, so it seems to not have a sense anymore.
And it's still possible to set particles_effects=0 in config.xml if someone will need it.
add code to create a set of potential broadcast addresses and
use them all. Duplicated will be filtered out (since likely a server
will replace more than all).
the state, the current height of the kart in case of a jump is
then computed (without keeping track of speed etc). Jumping is
now only done during updateGraphics().
this is now called separately once per rendered frame from
the main loop. Started to split other objects to have separate
updateGraphics functions (e.g. to fix skid marks issues caused
by previously updating skidmarks even in rewind).
* New getRecentPreviousXYZ function
* New getRecentPreviousXYZ function
* New getRecentPreviousXYZ function
* General slipstreaming refinements
* Increase the minimum time to get the slipstream bonus
The obsolete parameter is not yet removed as several other files would have to be changed to not trigger an error.
* Slipstreaming characteristics update
* Changed slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Update slipstreaming characteristics
* Remove slipstreaming power engine bonus per kart type
Power engine bonus is already balanced by the different weights : a heavier kart needs more engine power to achieve/maintain the same speed.
* Remove an unused function
* Various slipstreaming refinements
* Pull the XYZ history size from config
* Pull the XYZ history size from config
* Remove unnecessary logs
* Fix a frenchism with fix
1)Use a new helper function for the drawing as the code was nearly identical at three different places
2)Fixes the coloring of transparent points : full color as intended, rather than black
3)Additional drawing points to properly manage the gauge_goal going outside of the gauge_full space
* New command line option for testing
* Fix command line option
* Allow races from command line without player kart
* Use the new command line option for testing
Also increase the default number of karts for testing from 9 (including player kart) to 15 (no player kart) for reduced randomness.
And set the default test difficulty to SuperTux
Use an array of 30 Vec3 to remember the previous kart positions 0,25s before. Each one is updated with the previous one, starting from the oldest.
time_previous_counter is used to keep the time of the oldest as close as possible to 0,25s ; in case the physics ticks proceed faster or slower than 1/120th of second.
Also remove the code logic which tells to use a zipper instead of nitro (not always useful, and should be managed inside handleNitroAndZipper anyway) ; and fixes the code disabling the use of zipper at start in time-trial (the previous code made the AI use it at random, when it's sometimes better to not use it at all at this moment and to wait later).
* New speedometer and nitrometer gui
* Update Speedometer and Nitrometer
* Improve nitro background
* Improve nitro bar drawing
* Improved meters
* Improve meter and rank drawing
* Agressive smoothing and higher visibility
* Helper function for meter drawing
* Helper function for meter drawing
* Improved meters
* New nitro bar, slight 3D effects and hopefully fix compilation
* Update license
* Prepares for advanced item and nitro usage strategy
Replace the bool determining if usage is random or not by an int allowing several levels of AI item usage.
Add NITRO_ADVANCED mode for nitro usage.
* Adapt for more item and nitro levels
The XML files have to be changed. The logic for the item_skill still has to be done.
* Preparation for the preferred kart in GP
* Preparation for the preferred kart in GP
* Preparation for the preferred kart in GP
* Prepares for advanced item and nitro usage strategy
* Prepares for advanced item usage strategy
* Preparation for the preferred kart in GP
* Parametrized AI_skill level
* Fix typo
* Fix typo
* Fix typo
* Fire items with a shield on in unrestricted mode
* New function allowing AI to know what flyable is incoming
* New function allowing AI to know what flyable is incoming
* Fix typo
* Update bubble gum AI to new system
In addition of making some functionality depends on AI levels, there are a few overall improvements for the better AIs :
1)Remove the "drop the gum in the last lap" logic. Bad strategy since ever the shield has been added to the gum
2)The protection against flyable is not used if the user holds a swatter and the flyable is a plunger
3)Holding a swatter no longer blocks the AI from using the shield against a flyable nor from using the gum behind
4)The shield is used to remove bad attachments (bomb, parachute, anvil)
5)Reduce the distance with the kart behind when dropping the gum to reduce misses
* Update swatter AI to new system
The swatter could benefit from several kind of usage improvement. This patch introduce only one, but probably the more important : the better AIs now use it to remove bad attachments
* Fixing #3139
* Fix compile error
* Fix
* Fix compilation
* Fix compilation
* Fix compilation
* Update variable
* Update variable
* Fix non-breaking space issue
* Fix typos
* Revert for compilation
* Revert for compilation
* Update cake AI to new system
* Redefine HandleItems to be position aware
* Redefine HandleItems to be position aware
Also changes bowling ball for the new system.
* Activate shield before hitting box or bad item
Meant for higher AIs.
* Increase lookup distance
Some distance will be needed for the switch
* Temporary fix to avoid a nitro regression
* Fix typo
* Fix typo
* Bubble gum improvements ; explicitely calculate distances to items
* Update Switch to the new system ; use item-distance awareness
Also fix a missing parenthesis
* Change nitro-usage to a numerical parameter
* Change nitro-usage to a numerical parameter
Also update comments to explain the new item-skill
* Change nitro-usage to a numerical parameter
* Change nitro-usage to a numerical parameter
* Change nitro-usage to a numerical parameter
* Update handleNitroAndZipper to the new system
Also fix a naming error, remove the 95% speed limitation on nitro usage
* Adds a small engine boost to nitro
Currently, nitro is very counter-intuitive as it only affects max_speed. This change corrects it. The effect remains small to not upset balance. It is mostly felt when below max_speed, so the can of nitro potential power doesn't change much.
* Improve AI nitro handling
Summary :
1)Makes the AI use nitro by bursts, greatly improving its efficiency
2)Makes the AI use nitro when close to max speed (to unlock the max speed increase)
3)Remove the overtaking logic as the AI will now use its nitro anyway
4)The AI tries to keep a reserve of nitro for use towards the end of the race.
* Allows estimated finish time to be checked at any lap, fix a crash
* Makes the AI use its nitro reserves
* Better tuning for nitro reserve usage to reduce the probability of unused nitro
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Remember last used powerup for AI
* Fix compilation
* AI don't wait between usage of items of different types
* Use floats for Parachute duration
* Revert
* Nitro use when trying to pass a bomb improved
* Fix broken time check
* Take into account the kart-specific fadeout to calculate time between bursts
* Improvements to bursts and to use of the reserve at the end
* Improve comments explaining item_usage_skill and nitro_usage
* Make LastUsedPowerup a PowerupType
* Make LastUsedPowerup a PowerupType
* Make LastUsedPowerup a PowerupType
* Make LastUsedPowerup a PowerupType
* Make last_used_powerup a PowerupType
* Make last_used_powerup a PowerupType
* Fix compilation
* Fix compilation
* Revert
* Revert
* Finally fix compilation
* Finally fix compilation
* Change shield radius per difficulty
A reduced non-null shield radius reduces false positives as long as it is big enough to get a few frames during which the object is inside the radius.
* Improve Projectile closeness management
* Improve projectileCloseType
* Improve projectileCloseType
* Fixes indentation
* Fix lastUsedPowerup initialization
* Fix the last used powerup type
* Rename projectileCloseType
* Rename projectilCloseType
* Clarify comment and update projectileCloseType to new name
* Reuse a member RandomGenerator
* Fixes getLastUsedPowerup type
* Fixes comparison
* Fixes type
* Change camera view from one kart to the previous/next with F5-6 keys or with menu buttons
* Simplify code
The kart_num/real_num distinction was part of the base code Benau did ; but it is completely redundant after the changes I did to the way kart_num is calculated (it was previously a static int, it's now an unsigned int).
* Fix "Final lap!" message on one-lap races
When starting a one-lap race, the game gives the message "Final lap!". This should only be given when there is more than one lap in the race. This commit changes linear_world.cpp so that this message is only given when the number of laps in the race is greater than 1.
* Fix spacing
I accidentally changed the spacing when making my last commit. This commit fixes that accident.
So that the last one who deletes it can clear all the remaining data
properly (ie if it's STKHost listening thread)
Remove the assert in async update thread as it may not be true for
the first thread creation
Now we can get determine the background color by depth, so
the alpha tricks in diffuse color fbo is not necessary
And using rgba8 to pack normal doesn't seem to cause visual glitches.
* Initial SplitScreen
All are upside down and player 1, 5 player does 6 even...
* Working version of splitscreen
* black screen fix
* te fix
* Update race_gui.cpp
* Change item
* wrong way fix and refactorings
* Fix icon scale, cleaning code for lap count
* Remove tabs
* Add settings option
* Fix FOV
Right now the FOV gradually decreases when going from 1,2,3,4 players. Then after 4 players it wont drop any lower. This behaviour can easily be replaced in the future
* Prevent overflow
* Unlimited splitscreen
* Space out duplicate skins across additional players
* Update stk_config.cpp
* Update irr_driver.cpp
* Update options_screen_ui.cpp
* Update irr_driver.cpp
* Update options_screen_ui.cpp
* Update race_gui.cpp
* Update irr_driver.cpp
* Fix for empty pixels at edges
* Fix referring to template not int
* Fix compile errors
* Progress towards fixing selection screen
* Begin process for selections
* Fix selection screen for >4 people
Important GUI changes included
* Disable changing rows/cols ingame
* fix sp related crash
* Styling fixes
* Half of the rescue animation is now placing the kart back down
* Bit of cleaning
* Single Camera Cut
* Update rescue_animation.hpp
* Update rescue_animation.cpp
* progress to fixes
* potential fix
* broken implementation
* Latest attempt
* Instant camera snap when placing the kart down
* style cleanups
* Fix BACKSLASH
HYEH
later to a higher value (which happens in overworld, which sets max speed
to 0, but the value got later overwritten with the normal supertuxkart max_speed
handling.
Now there are:
- dependencies-vs
- dependencies-vs-64bit
- dependencies-mingw
- dependencies-mingw64
And if it's not found, then fallback to:
- dependencies
- dependencies-64bit
So that if you use only one compiler, then you can just still use "dependencies" or "dependencies-64bit".
And I didn't restrict it to WIN32 only, because in theory it should be possible to put there openglrecorder for linux build.
Atm. use it only on linux, because there is no need to spam with cmake warnings on other platforms.
Also fallback to built-in enet if system enet is not found.
It reverts commit:
https://sourceforge.net/p/angelscript/code/2278/
It looks that it's impossible to detect "real" clang version using compiler definitions, so that we can't check if std::is_trivially_default_constructible is available.
I mean that clang 4.0 on my machine is "newer" than clang 5.0 on travis, because it tries to use gcc 4.8 headers:
/usr/lib/gcc/*x86_64-linux-gnu/4.8*/../../../../include/c++/4.8/type_traits:1211:12:
note: 'has_trivial_default_constructor' declared here
struct has_trivial_default_constructor
At this stage we can just disable AS_CAN_USE_CPP11 for clang. It was disabled for clang before our angelscript upgrade, so that it's not worse than before.
Note that I don't use clang and I don't really know what are our requirements (for example for Mac OS build). Feel free to revert it after travis upgrade.
Because input manager use this to determine backspace functionality
(for rescue in game or leave a screen)
This will be reset to NO_ASSIGN when you go back to main menu screen
time-step size was 1 ms, which resulted in the world time advancing
faster than real time. This caused problems in the communication
and synchronisation with clients.
It's not 100% ready yet, but some testing won't hurt.
It's possible to switch between wayland/x11 using
export IRR_DEVICE_TYPE=x11
or
export IRR_DEVICE_TYPE=wayland
so that x11 device can be forced in wayland session.
The option is enabled by default, but the system version will only be used
if found and newer than 2.0.0 (to ensure that https://sourceforge.net/p/glew/patches/40/
is fixed). When missing, we silently fallback to the vendored source code,
so there is no change for e.g. Windows compilation.
updated would be duplicated etc). Instead it will move 'past' events
to the current time, causing only a 'jump' in the one client causing
the event (instead of all).
It was crashing when add-on track was uninstalled.
It only avoids a crash and it's not true fix, because replays list should be updated when add-ons have been installed/uninstalled.
* Small clarification to prevent build errors
Building outside of this directory prevents the executable from launching, this small addition can help prevent this issue from happening.
* Initial Commit
* Code cleanup
* Fix compile error
* Fix incorrect comparison
* Fix focusing erorr twice over
It may be worth making 'setfocusable' part of setvisible
It has been broken in commit 271a26eaf0.
It solves some issues with etnaviv gallium driver. It may also solve a crash on old intel 965gm on windows, but I can't test it atm.
Keep the "fortmagma" challenge marked as locked on the GUI minimap even if enough points (180+) have been gathered to unlocked it, when the door is not open yet
* Small clarification to prevent build errors
Building outside of this directory prevents the executable from launching, this small addition can help prevent this issue from happening.
* Initial Commit
* Code cleanup
* Fix compile error
* Fix incorrect comparison
* Small clarification to prevent build errors
Building outside of this directory prevents the executable from launching, this small addition can help prevent this issue from happening.
* Initial calculation and application
However this doesn't handle other karts well. Max speed both karts should differ in each direction
* Properly scale volume appropriate to speed and direction
* Improve clarity in variables and created getcurrentemitter method
* equation is awful, don't use
* Head on collision fix physics to be more accurate
* Removed debug std cout
* Cleaned up method for calculating volume, other misc fixes
Changed from m_body->getlinearvelocity() to getvelocity() to ensure that the reader doesn't mistake the functions as being different
* Fixed wrong value for min_volume
* Updated to Styling guidelines
* Fixed tabs to spaces
* fixed tab to space
* Coding conventions, fix set volume
* Last tab fix
* Make quiter sounds louder through math, whilst ensuring not imaginary numbers
(i.e. the one that was just added for the upcoming timestep that
first needed to do the rewind) instead of comparing world time
and end time - the latter is prone to floating point differences,
causing rewinds to 'rewind' the timestep that has yet being computed.
'accelerate' events over and over). This reduces traffic to
the server and other clients (and fixed a bug caused by rewinding
those events in the wrong order).
avoiding creating smaller time steps on the server when events
from clients are received, and also made it easier to handle
duplicated states (i.e. server rewinds and sends a second state
for a certain time).
Still work in progress though.
not to lock the whole event queue while an event is being delivered, which
allows more parallelism (especially the asynchronous eventss queue is not
locked while e.g. the world is loaded, which can take several seconds).
# Unfortunately using all threads crashes g++: "g++: internal compiler error: Killed (program cc1plus)"
# Use half of the available threads, gcc is memory hungry
- 'if [ ${CC} = "gcc" ]; then
export THREADS=$((`nproc` / 2));
else
export THREADS=$((`nproc` + 1));
fi'
- echo "THREADS = $THREADS"
- free -mt
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew bundle; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo mkdir -p /usr/local/include/; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo ln -s /System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/ /usr/local/include/GL; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CMAKE_PREFIX_PATH=/usr/local/opt/freetype/:/usr/local/opt/curl/:/usr/local/opt/libogg/:/usr/local/opt/libogg/:/usr/local/opt/libvorbis/:/usr/local/opt/openssl\@1.1/:/usr/local/opt/glew/:/usr/local/opt/fribidi/; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then /usr/local/opt/cmake/bin/cmake .. -DFREETYPE_INCLUDE_DIRS=/usr/local/opt/freetype/include/freetype2/ -DUSE_SYSTEM_GLEW=1 -DOPENAL_INCLUDE_DIR=/usr/local/opt/openal-soft/include/ -DOPENAL_LIBRARY=/usr/local/opt/openal-soft/lib/libopenal.dylib -DFREETYPE_LIBRARY=/usr/local/opt/freetype/lib/libfreetype.dylib -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSERVER_ONLY=$SERVER_ONLY -DCHECK_ASSETS=off -DBUILD_RECORDER=off; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSERVER_ONLY=$SERVER_ONLY -DCHECK_ASSETS=off -DBUILD_RECORDER=off; fi
This file documents notable changes to SuperTuxKart across versions since its inception.
It should be kept in mind that some versions have a less complete changelog than others, and that this changelog do not list the details of the many small bugfixes and improvements which together make a significant part of the progress between releases.
For similar reasons, and because some features are vastly more complex than others, attributions of main changes should not be taken as a shorcut for overall contribution.
## Unreleased
* Networking game for normal race, time trial, free for all, capture the flag and soccer
* Better random item distribution for various numbers of karts by Alayan and hiker
* Numerous improvements to input on Android by deveee
* Unlockable SuperTux challenges in Story Mode by Alayan
* Race UI improvements (new speedometer, nitro gauge, bigger minimap) by Alayan
* Improvements to ghost replays (more data saved, live time difference, replay comparison, UI improvements, egg hunt replays) by Alayan
* Kart color customization by Benau
* Improved powerup handling in AI by Alayan
* Local multiplayer improvements by Fantasmos
* New coal skin by Alayan
* Visual improvements (new skidding particles, better rescue, bubblegum flashing before ending)
* Audio improvements (crash sound depending on speed/direction, sound cue in nitro challenges)
* Gameplay improvements (much better slipstreaming, GP points...)
* Terrain slowdown works again as intended on several tracks where it was missing
* Many bugfixes
### Tracks and modeling
#### Tracks
* Many unwanted shortcuts and exploits fixed by Auria
* Las Dunas Soccer by samuncle
## SuperTuxKart 0.9.3 (28. October 2017)
* Reduced RAM and VRAM usage, reducing load times by Auria and Benau
* New mesh format optimized for space and hardware skinning
* Code refactoring of both render pipeline by Benau and Elderme
* New kart Wilber and Hexley by Jymis
* New kart Kiki and updated Konqi by Benau
* New tracks Candela City, Cornfield Crossing and Las Dunas Arena by samuncle
* Physics improvements and various physics bugfixes by hiker
* Kart GFX improvements (exhaust and headlight)
* In-game screen recording powered by libopenglrecorder
@@ -13,92 +38,113 @@
* New grand prix win scene
* Gamepad configuration bugfixes
* 3 Strikes Battles : added spare tire karts
* Various improvements (wall driving fixes, parachutes, GP points, cannon fixes, colorization shader)
* Visual representation of the start line in all tracks
* Various improvements (starting boost effect, wall driving fixes, parachutes, GP points, help page for bananas, cannon fixes, colorization shader)
### Tracks and modeling
#### Karts
* New kart Wilber and Hexley by Jymis
* New kart Kiki and updated Konqi by Benau
#### Tracks
* All tracks drivable in reverse, with arrows pointing in the correct direction
* Candela City by samuncle (replace Shiny Suburbs)
* Cornfield Crossing by samuncle (replace Bovine Barnyard)
* New battle track Las Dunas Arena by samuncle
## SuperTuxKart 0.9.2
## SuperTuxKart 0.9.2 (1. July 2016)
* Ghost replay races by Benau
* Battle mode AI by Benau
* Soccer mode AI by Benau
* New icy soccer field by samuncle and Benau
* New subsea track by samuncle
* New volcano track by Ponzino
* TTF font rendering by Benau
* New ruby and forest skins by Benau
* Kart properties refactor by Flakebi
* Scripting work under the hood
* Work on the track editor by mhp
* Tweak to challenges
* New farm track song by 0zone0ne and Krobonil
* Bugfixes
### Tracks and modeling
#### Tracks
* Antediluvian Abysses by samuncle (replace Subsea)
* Volcano Island by Ponzino
* New icy soccer field by samuncle and Benau
## SuperTuxKart 0.9.1
## SuperTuxKart 0.9.1 (17. October 2015)
* Many bug fixes
* Started to use scripting in tracks
* Significant audio performance improvements
* Smaller tweaks and improvements to several tracks including
** Math class
** XR591
** Fort Magma
** Gran Paradiso
** Subsea
* Tweak to challenges
### Tracks and modeling
#### Tracks
* Better support for driving tracks in reverse
* Smaller tweaks and improvements to several tracks including
* Math class
* XR591
* Fort Magma
* Gran Paradiso Island
* Subsea
## SupertTuxKart 0.9 (April 2015)
## SupertTuxKart 0.9 (24. April 2015)
* Fully shader-based rendering engine
* New tracks Cocoa Temple and Gran Paradiso
* Graphical improvements to many other tracks
* New karts amanda and gavroche
* New and improved tux, adiumy, sara the wizard and the racer, xue kart
* Online login which allows to:
** connect with friends and see when they are playing
** vote for addons
** collect online achievements
* connect with friends and see when they are playing
* vote for addons
* collect online achievements
* Grand Prix editor, including creation of random GPs
* Different kart physics
### Tracks and modeling
#### Karts
* New karts Amanda and Gavroche by XGhost
* New and improved Tux, Adiumy, Sara the Wizard and the Racer, Xue
#### Tracks
* Cocoa Temple by samuncle (replace Amazonian Journey)
* Gran Paradiso Island by samuncle (replace The Island)
* Graphical improvements to many other tracks
## SuperTuxKart 0.8.1 (26. November 2013)
* New track STK Enterprise
* Updated track The old mines
* Updated Lighthouse track
* Updated Zen Garden track
* New Soccer mode
* New Egg Hunt mode
* New karts Xue and Sara
* Updated Beastie kart
* 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
* Improve skid marks and nitro effects
* Wiimote support
### Tracks and modeling
#### Karts
* New karts Xue and Sara
* Updated Beastie kart
#### Tracks
* STK Enterprise by Rubberduck (replace Star Track)
* Gameplay and graphical updates to several tracks :
* The Old Mine
* Lighthouse
* Zen Garden
#### Miscellaneous
* Updated nitro models
## SuperTuxKart 0.8 (11. December 2012)
* Story mode and new challenge set
* Improved AI
* Skidding and better collision physics
* Reverse mode
* New green valley track
* New Blackhill Mansion track
* Updated XR591 track
* Updated Fort Magma track
* Updated jungle track
* Updates Sand track
* Updated menus
* New music
### Tracks and modeling
#### Tracks
* Green Valley by Wolfs (replace Tux Tollway)
* Blackhill Mansion by samuncle (replace Crescent Crossing)
* Gameplay and graphical updates to several tracks :
* XR591
* Fort Magma
* Jungle
* Sand
## SuperTuxKart 0.7.3 (2. November 2011)
* New Zen Garden and Subsea tracks
* New Island battle arena
* New Suzanne kart
* New graphical effects
* New weapons 'Swatter' and 'Rubber Ball'
* Added Thunderbird as race referee
* 3 Strikes Battles now displays lives as spare tires
* Improved bubble gum
* See progression during Grand Prix
@@ -107,16 +153,28 @@
* Improved kart control at high speeds
* Better placement of rescued karts
* Transition track-making to blender 2.5/2.6
### Tracks and modeling
#### Karts
* New Suzanne kart
#### Tracks
* Zen Garden by samuncle (replace Secret Garden)
* New Subsea
* New Island battle arena
#### Miscellaneous
* Added Thunderbird as race referee
## SuperTuxKart 0.7.2 (15. July 2011)
* Added in-game addon manager
* Fixed major memory leaks
* New Snow Peak track by Samuncle
* Improved star track UFO by Rudy
* New Beastie kart.
* Show when you get a highscore
* Improve gamepad configuration under Windows (add ability to tell gamepads apart)
* Various other tweaks done and glitches fixed
### Tracks and modeling
#### Karts
* New Beastie kart.
#### Tracks
* Improved Snow Peak by samuncle
* Improved Star Track UFO by Rudy
## SuperTuxKart 0.7.1b (21. April 2011)
* Fix circular dependency in challenges
@@ -124,8 +182,6 @@
## SuperTuxKart 0.7.1 (15. April 2011)
* Particle (smoke, splash, fire) and weather effects
* New Fort Magma by Samuncle, new Shiny Suburbs track by Horace
* New Beagle kart by wolterh
* Added internet news
* Support for live language switch
* Added optional minimal race UI
@@ -140,6 +196,12 @@
* Fixed character names that contain non-ASCII characters
* Full RTL (right to left) support
* Various other tweaks done and glitches fixed
### Tracks and modeling
#### Karts
* New Beagle kart by wolterh
#### Tracks
* New Fort Magma by samuncle
* New Shiny Suburbs by Horace
## SuperTuxKart 0.7 (December 2010)
Too many to list them all. Main points:
@@ -152,8 +214,12 @@ Too many to list them all. Main points:
* Other improvements
- Allowed alternative ways/shortcuts in tracks
- New item 'switch'
* New art:
- New tracks farm, hacienda, scotland, secret garden
### Tracks and modeling
#### Tracks
- Farm
- Hacienda by samuncle (replace Beach)
- Scotland by Canis Lupus
- Secret Garden
## SuperTuxKart 0.6.2a (October 2009)
* Bugfix: STK would crash while trying to save the config file
@@ -173,7 +239,7 @@ Too many to list them all. Main points:
* Bugfix: battle mode would not display track groups.
## SuperTuxKart 0.6.1 (February 2009)
*Added new kart ("Puffy"), new battle map ("Cave"), and new music for Snow Mountain.
*New music for Snow Mountain.
* Fixed bug in track selection screen that could cause a crash when track groups were used.
* Fixed crash in character selection that could happen if an old user config file existed.
* Fixed incorrect rescues in Fort Magma.
@@ -181,15 +247,19 @@ Too many to list them all. Main points:
* A plunger in the face is now removed when restarting.
* Added slow-down for karts driving backwards.
* Somewhat reduced 'shaking' of AI driven karts.
### Tracks and modeling
#### Karts
- New Puffy kart
#### Tracks
- New Cave battle map
## SuperTuxKart 0.6 (January 2009)
* New improved physics and kart handling
* Added sharp turns and nitro speed boost (replacing wheelies and jump)
* Totally rewrote powerups (plunger, bowling ball, cake, bubblegum) and new look for bananas
* New and improved tracks : skyline, snow mountain, race track, space track, old mine, XR591
* New game mode : 3-Strikes Battle
* Major improvements to AI
* New/improved karts (and removed some old ones) : wilber, eviltux, hexley
* Improved user interface
* Karts now have a visible suspension effect
* Fully positional audio with OpenAL
@@ -204,9 +274,23 @@ Too many to list them all. Main points:
* Bug fixes and code refactor/cleanup/documentation
- Fixed 'joystick locks' (kart would turn even if the joystick is in neutral),
thanks to Samjam for the patch.
### Tracks and modeling
#### Karts
* Improved Wilber
* Eviltux
* Hexley
* Some old karts have been removed
#### Tracks
* Skyline
* Snow Mountain
* Race track
* Old Mine
* XR591
* Improved track :
* Star track
## SuperTuxKart 0.5 (May 2008)
* Six new tracks and one improved track: Fort Magma, SnowTux Peak, Amazonian Journey, City, Canyon, Crescent Crossing and StarTrack
* Complete Challenges to unlock game modes, new tracks and a skidding preview
* New Follow the Leader game mode
* New Grand Prix
@@ -217,18 +301,29 @@ Too many to list them all. Main points:
* Many Bugfixes including:
- a memory leak fix (Charlie Head)
- an AI crash fix (Chris Morris)
### Tracks and modeling
#### Tracks
* SnowTux Peak
* Amazonian Journey
* City
* Canyon
* BSODs Battlements renamed to Fort Magma
* Improved Crescent Crossing, Fort Magma, and Star Track
## SuperTuxKart 0.4 (February 2008)
* New physics handling using the bullet physics engine
* New kart: wilber
* Improved 'Shifting Sands' and 'Lighthouse' tracks
* Improved AI
* New GUI handling, including resolution switching GUI
* Improved input handling
* Jump and look-back featue
* Additional music and main theme
### Tracks and modeling
#### Karts
* New kart: wilber
#### Tracks
* Improved 'Shifting Sands' and 'Lighthouse'
## SuperTuxKart 0.3 (May 2007)
* Highscore lists
@@ -260,7 +355,7 @@ Too many to list them all. Main points:
- Fixed keyboard keys unable to work on the first key press bug
- And others
##SuperTuxKart 0.2 (22. Sep 2006)
##SuperTuxKart 0.2 (22. Sep 2006)
* Significant performance improvement by using display lists
* Improved AI
* Support for different grand prixs
@@ -278,7 +373,7 @@ Too many to list them all. Main points:
* Added help and about screens, added credits to track designer
* Items were added to all tracks
##SuperTuxKart 0.1 (04. May 2006) (not officially released)
##SuperTuxKart 0.1 (04. May 2006) (not officially released)
* Significant speedup by using a new HOT and collision algorithm --> all tracks are now playable
* Removed all SDL dependencies, only plib is needed
* Single and multi-window menu can be used
@@ -286,7 +381,7 @@ Too many to list them all. Main points:
* Some bug fixes and small improvements
* Added profile option to support automatic profiling
# In case of 64-bit windows, use a different path for dependencies
# so that both dependencies can be installed next to each other
if(WIN32AND(CMAKE_SIZEOF_VOID_PEQUAL8))
set(DEPENDENCIES"dependencies-64bit")
endif()
include(BuildTypeSTKRelease)
if(NOTCMAKE_BUILD_TYPE)
if(NOTCMAKE_BUILD_TYPE)
message(STATUS"No build type selected, default to STKRelease")
set(CMAKE_BUILD_TYPE"STKRelease")
endif()
option(SERVER_ONLY"Create a server only (i.e. no graphics or sound)"OFF)
option(USE_FRIBIDI"Support for right-to-left languages"ON)
option(CHECK_ASSETS"Check if assets are installed in ../stk-assets"ON)
option(USE_SYSTEM_ANGELSCRIPT"Use system angelscript instead of built-in angelscript. If you enable this option, make sure to use a compatible version."OFF)
option(ENABLE_WAYLAND_DEVICE"Enable Wayland device for linux build"OFF)
option(USE_SYSTEM_ENET"Use system ENET instead of the built-in version, when available."ON)
option(USE_SYSTEM_GLEW"Use system GLEW instead of the built-in version, when available."ON)
CMAKE_DEPENDENT_OPTION(USE_CRYPTO_OPENSSL"Use OpenSSL instead of Nettle for cryptography in STK."OFF
In order to build SuperTuxKart from source, you'll need both the code and the assets (See <https://supertuxkart.net/Source_control> for more information):
To build the in-game recorder for STK, you have to install
libopenglrecorder from your distribution, or compile it yourself from [here](https://github.com/Benau/libopenglrecorder).
Compilation instruction is explained there. If you don't need this feature, pass `-DBUILD_RECORDER=off` to cmake.
### Compiling
To compile SuperTuxKart, run the following commands inside `stk-code` directory:
```bash
mkdir cmake_build
cd cmake_build
cmake ..
make -j4
```
STK can then be run from the build directory with `bin/supertuxkart`
#### Keeping your build up to date
To recompile the latest code without redownloading the entire source, first run the ```svn up``` command inside the 'stk-assets' directory, then run the following commands inside the 'stk-code' directory:
```bash
git pull
cd cmake_build
cmake ..
make -j4
```
##### Build Speed Optimization
"-j4" is an example, for a faster build, use "-jx" instead, where "x" is the amount of CPU threads you have, minus one. "-j$(nproc)" usually works.
### Further options
To create a debug version of STK, run:
```bash
cmake .. -DCMAKE_BUILD_TYPE=Debug
```
You can install your build system-wide:
```bash
sudo make install
```
The default install location is `/usr/local`, i.e. the data files will
be written to `/usr/local/share/games/supertuxkart`, the executable
will be copied to `/usr/local/bin`. To change the default installation
location, specify `CMAKE_INSTALL_PREFIX` when running cmake, e.g.:
`cmake .. -DCMAKE_INSTALL_PREFIX=/opt/stk`
## Building SuperTuxKart on Windows
To Build SuperTuxKart on Windows, follow these instructions:
1. Download and install Visual Studio from here: [Visual Studio - Download](https://www.visualstudio.com/downloads/). The free Visual Studio Community edition works fine. Remember to select "Desktop development with C++" in the installer.
2a. If you want the stable version, download the SuperTuxKart source package from the latest stable version [SuperTuxKart download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/) and unpack it.
2b. If you want the development version, you will need a Git client and a SVN client. More information can be found here: [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control).
Open your file browser and find somewhere you want to put the development version of SuperTuxKart. For example in C:\Users\<Your Username> as the Git and SVN clients will have write permissions there, and you should create its own directory, for example SuperTuxKart-dev. Enter that directory, and create a directory inside called stk-assets, and enter it. If you installed TortoiseSVN, right-click, select TortoiseSVN -> Checkout... and paste the correspodning URL found in [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control). While it is downloading the game assets, go back to your file browser and one level up. Right-click again somewhere empty and select "Git clone..." and paste the corresponding link found in [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control).
*Note: Both `stk-code` and `stk-assets` **must** be in the same directory, otherwise the build will likely fail!*
3a. If you got the stable version, download the Windows dependencies package from [SuperTuxKart download area: Dependencies - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/Windows/) and unpack it.
3b. If you got the development version go to SuperTuxKart-dev in your file browser, right-click somewhere empty, select "Git clone..." and paste https://github.com/supertuxkart/dependencies.git in the URL field; click OK. When finished, copy the `dependencies` directory from either the `windows` or the `windows_64bit` directories into the `stk-code` directory; rename the latter to `dependencies-64bit` if you want to compile a 64-bit build.
4. Download CMake from here: [CMake - download page](https://cmake.org/download/), install it; once CMake is installed, double click on the CMake icon on your desktop, and point it towards your `stk-code` directory in the 'Where is the source code' field, and point it to a new directory called `build` or `bld` inside the stk-code directory.
5. Press 'Configure'; CMake will ask you if it is OK to create the aforementioned directory, press `Yes`. CMake will then ask you about your version of Visual Studio.
Confirm your selection; *Please look at the table below to avoid confusion between version numbers and releases of Visual Studio*; CMake will begin creating the required files for the build in the directory. If you want to do a 64-bit build, select the version of Visual Studio you installed with "Win64" appended.
6. Navigate to your build directory and open the `SuperTuxKart.sln` file; Visual Studio will now load the solution.
7. In the 'Solution Explorer', right click on the `supertuxkart` project and select "Set as StartUp project".
8. Open the 'Build' menu and select 'Build Solution'; or, press the default keyboard shortcut: `CTRL + SHIFT + B` to build the solution.
*Note: To avoid confusion between releases and versions, refer to this table:*
Visual Studio Release | Version
----------------------|------------
Visual Studio 2017| 15
Visual Studio 2015| 14
Visual Studio 2013| 13
## Building SuperTuxKart on Windows (from PowerShell/Command line)
1. Download and install Visual Studio from here: [Visual Studio - Download](https://www.visualstudio.com/downloads/), the free Visual Studio Community edition works fine.
2. Download a source package from either [SuperTuxKart 0.9.2 download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/0.9.2) or [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control)
NOTE: the `stk-code` and `stk-assets` directories **must** be in the same directory
3. Download the Windows dependencies package from either [SuperTuxKart download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/Windows/)
or [SuperTuxKart on GitHub - Dependencies](https://github.com/supertuxkart/dependencies)
and unpack the archive; once unpacked, copy the `dependencies` directory from either the `windows` or the `windows_64bit` directories into the `stk-code` directory
4. Download CMake from here: [CMake - download page](https://cmake.org/download/); and install it. Navigate to the `stk-code` directory; and create an directory called "build":
```cmd
mkdir build
cd build
```
5. Once inside the build directory; run CMake to start the compilation process:
```cmd
cmake ..
```
6. Now that CMake finished configuring and creating the necessary files for the build, run the build command in the same directory:
```cmd
msbuild.exe SuperTuxKart.sln
```
SuperTuxKart can now be run as `bin\Debug\supertuxkart.exe` or `bin\Release\supertuxkart.exe`
## Building SuperTuxKart on macOS
### Getting Started
Install the developer tools, either from the OS X Install DVD or from Apple's website.
If you have never built anything before, you have create `/usr/local/include/` first:
```bash
sudo mkdir -p /usr/local/include/
```
Symlink the `include`-folder of OpenGL framework to `/usr/local/include/GL` (Unix programs have an easier time finding it this way):
Afterwards, copy the contents of `stk-assets` into `/SuperTuxKart.app/Contents/Resources/data`.
### STK 0.9.3 or earlier
Download pre-built dependencies from [here](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/OSX/) and put the frameworks in [hard disk root]/Library/Frameworks
First of all, you can compile STK with `-DSERVER_ONLY=ON` which will produce a GUI-less STK binary optimized for size and memory usage, useful for situation like in VPS.
### Hosting WAN (public internet) server
You are required to have an stk online account first, go [here](https://addons.supertuxkart.net/register.php) for registration.
It is recommended you have a saved user in your computer to allow hosting multiple servers simultaneously with the same account, if you have a fresh STK installation, first run:
It will create that xml configuration file if not found in current directory, you can type `quit` in terminal, than you can edit that file for further configuration as required.
The current server configuration xml looks like this:
```xml
<?xml version="1.0"?>
<server-configversion="1">
<!-- Name of server, encode in XML if you want to use unicode characters. -->
<server-namevalue="stk server"/>
<!-- Port used in server, if you specify 0, it will use the server port specified in stk_config.xml or if random-server-port is enabled in user config, than any port. STK will auto change to random port if the port you specify failed to be bound. -->
<server-portvalue="0"/>
<!-- Game mode in server, 0 is normal race (grand prix), 1 is time trial (grand prix), 3 is normal race, 4 time trial, 6 is soccer, 7 is free-for-all and 8 is capture the flag. Notice: grand prix server doesn't allow for players to join and wait for ongoing game. -->
<server-modevalue="3"/>
<!-- Difficulty in server, 0 is beginner, 1 is intermediate, 2 is expert and 3 is supertux (the most difficult). -->
<server-difficultyvalue="0"/>
<!-- Number of grand prix tracks per game (If grand prix enabled). -->
<gp-track-countvalue="3"/>
<!-- Use goal target in soccer. -->
<soccer-goal-targetvalue="false"/>
<!-- Enable wan server, which requires you to have an stk-addons account with a saved session. Check init-user command for details. -->
<wan-servervalue="true"/>
<!-- Enable network console, which can do for example kickban. -->
<enable-consolevalue="false"/>
<!-- Maximum number of players on the server, setting it more than 8 will have performance degradation. -->
<server-max-playersvalue="8"/>
<!-- Password for private server, empty for a public server. -->
<private-server-passwordvalue=""/>
<!-- Message of today shown in lobby, you can enter encoded XML words here or a file.txt and let STK load it. -->
<motdvalue=""/>
<!-- Timeout in seconds for voting tracks in server. -->
<voting-timeoutvalue="20"/>
<!-- Timeout in seconds for validation of clients in wan, currently stk will use the stk-addons server to share AES key between client and server. -->
<validation-timeoutvalue="20"/>
<!-- By default WAN server will always validate player and LAN will not, disable it to allow non-validated player in WAN. -->
<validating-playervalue="true"/>
<!-- Disable it to turn off all stun related code in server, it allows saving server resource if your server is not behind a firewall. -->
<firewalled-servervalue="true"/>
<!-- No server owner in lobby which can control the starting of game or kick any players. -->
<owner-lessvalue="false"/>
<!-- Time to wait before entering kart selection screen if satisfied min-start-game-players below for owner less or ranked server. -->
<start-game-countervalue="30"/>
<!-- Only auto start kart selection when number of connected player is larger than or equals this value, for owner less or ranked server, after start-game-counter reaches 0. -->
<min-start-game-playersvalue="2"/>
<!-- Automatically end linear race game after 1st player finished for some time (currently his finished time * 0.25 + 15.0). -->
<auto-endvalue="false"/>
<!-- Enable team choosing in lobby in team game (soccer and CTF). If owner-less is enabled, than this option is always disabled. -->
<team-choosingvalue="true"/>
<!-- Server will submit ranking to stk addons server for linear race games, you require permission for that. validating-player, auto-end and owner-less will be turned on. -->
<rankedvalue="false"/>
<!-- Time in seconds when a flag is dropped a by player in CTF returning to its own base. -->
<flag-return-timemoutvalue="20"/>
<!-- Value used to calculate hit limit in free for all, which is min(number of players * hit-limit-threshold, 40), negative value to disable hit limit. -->
<hit-limit-thresholdvalue="5"/>
<!-- Value used to calculate time limit in free for all, which is max(number of players * time-limit-threshold-ffa, 3.0) * 60, negative value to disable time limit. -->
<time-limit-threshold-ffavalue="0.7"/>
<!-- Value used to calculate capture limit in CTF, which is max(3.0, number of players * capture-limit-threshold), negative value to disable capture limit. -->
<capture-limit-thresholdvalue="0.7"/>
<!-- Value used to calculate time limit in CTF, which is max(3.0, number of players * (time-limit-threshold-ctf + flag-return-timemout / 60.0)) * 60.0, negative value to disable time limit. -->
<time-limit-threshold-ctfvalue="0.9"/>
<!-- Value used by server to automatically calculate lap of each race in network game, if more than 0.0f, the number of lap of each track vote in linear race will be determined by max(1.0f, auto-lap-ratio * default lap of that track). -->
<auto-lap-ratiovalue="-1"/>
<!-- Maximum ping allowed for a player (in ms). -->
<max-pingvalue="300"/>
<!-- Tolerance of jitter in network allowed (in ms). -->
<jitter-tolerancevalue="100"/>
<!-- Kick players whose ping is above max-ping. -->
<kick-high-ping-playersvalue="false"/>
<!-- ip: IP in X.X.X.X/Y (CIDR) format for banning, use Y of 32 for a specific ip, expired-time: unix timestamp to expire, if -1 (uint32_t max) than a permanent ban. -->
<server-ip-ban-list>
<banip="0.0.0.0/0"expired-time="0"/>
</server-ip-ban-list>
<!-- online-id: online id for banning, expired-time: unix timestamp to expire, if -1 (uint32_t max) than a permanent ban. -->
<server-online-id-ban-list>
<banonline-id="0"expired-time="0"/>
</server-online-id-ban-list>
</server-config>
```
At the moment STK has a list of STUN servers for NAT penetration which allows players or servers behind a firewall or router to be able to connect to each other, but in case it doesn't work, you have to manually disable the firewall or port forward the port(s) used by the STK.
By default STK servers use port `2759`. For example, in Ubuntu based distributions, run the following command to disable the firewall on that port:
`sudo ufw allow 2759`
You may also need to handle the server discovery port `2757` for connecting your WAN server in LAN / localhost.
Notice: You don't need to make any firewall or router configuration changes if you connect to our official servers.
### Hosting LAN (local internet) server
Everything is basically the same as WAN one, except you don't need an stk online account, just do:
In LAN network it is required that the server and server discovery port is connectable by clients directly, no NAT penetration will be done in LAN.
------
After the first time configuration, you can just start the server with the command:
`supertuxkart --server-config=your_config.xml`, regardless of whether LAN or WAN server is chosen (of course you need to have a saved user for the WAN one), by default your server logging will be saved to the STK configuration directory with a name of `your_config.log`, given that the server configuration filename is `your_config.xml`.
You can find out that directory location [here (See Where is the configuration stored?)](https://supertuxkart.net/FAQ)
## Testing server
There is a network AI tester in STK which can use AI on player controller for server hosting linear races game mode, which helps automating the testing for servers, to enable it use:
x.x.x.x:y is your server ip address with its port, id is the id field of server-info in STK server xml list, omit it if you are testing LAN server, n is the number of AI you want to create.
You can see STK server xml list [here](https://addons.supertuxkart.net/api/v2/server/get-all).
The server you want to test must be able to be connected without NAT penetration. You can remove `--auto-connect` if you have another client which can control the starting of games in server, or you can consider enable owner-less mode on server so the games on server can keep going. Remove `--no-graphics` if you want to see the AI racing. You can also run network AI tester in server-only build of STK.
With the network AI tester, it's easier to for example simulate high-loaded servers or bad (high ping with packet loss) network.
Tested on a Raspberry Pi 3 Model B+, if you have 8 players connected to a server hosted on it, the usage of a single CPU core is ~60% and there are ~60MB of memory usage for game with heavy tracks like Cocoa Temple or Candela City on the server, you can use the above figures to consider number of STK servers hosting on a same computer.
For bad network simulation, we recommend `network traffic control` by linux kernel, see [here](https://wiki.linuxfoundation.org/networking/netem) for details.
You have the best gaming experience when choosing server less than 100ms ping with no packet loss.
@@ -10,7 +10,7 @@ The SuperTuxKart homepage can be found at <https://supertuxkart.net/>. There is
## Hardware Requirements
To run SuperTuxKart, make sure that your computer's specifications are equal or higher than the following specifications:
* A graphics card capable of 3D rendering - NVIDIA GeForce 8 series and newer (GeForce 8100 or newer), AMD/ATI Radeon HD 4000 series and newer, Intel HD Graphics 3000 and newer. OpenGL >= 3.1
* A graphics card capable of 3D rendering - NVIDIA GeForce 8 series and newer (GeForce 8100 or newer), AMD/ATI Radeon HD 4000 series and newer, Intel HD Graphics 3000 and newer. OpenGL >= 3.3
* You should have a CPU that's running at 1 GHz or faster.
* You'll need at least 512 MB of free VRAM (video memory).
* Minimum disk space: 800 MB
@@ -30,196 +30,4 @@ The export utilities perform the needed transformation, so in Blender you just
## Building from source
In order to build SuperTuxKart from source, you'll need both the code and the assets (See <https://supertuxkart.net/Source_control> for more information):
In order to build the in-game recorder for STK, you have to install
libopenglrecorder from your distribution, or compile it yourself from [here](https://github.com/Benau/libopenglrecorder).
Compilation instruction is explained there. If you don't need this feature, pass `-DBUILD_RECORDER=off` to cmake.
### Compiling
Run the following commands inside `stk-code` directory to compile SuperTuxKart:
```bash
mkdir cmake_build
cd cmake_build
cmake ..
make -j4
```
STK can then be run from the build directory with `bin/supertuxkart`
### Further options
To create a debug version of STK, run:
```bash
cmake .. -DCMAKE_BUILD_TYPE=Debug
```
You can install your build system-wide:
```bash
sudo make install
```
The default install location is `/usr/local`, i.e. the data files will
be written to `/usr/local/share/games/supertuxkart`, the executable
will be copied to `/usr/local/bin`. To change the default installation
location, specify `CMAKE_INSTALL_PREFIX` when running cmake, e.g.:
`cmake .. -DCMAKE_INSTALL_PREFIX=/opt/stk`
## Building SuperTuxKart on Windows
To Build SuperTuxKart on Windows, follow these instructions:
1. Download and install Visual Studio from here: [Visual Studio - Download](https://www.visualstudio.com/downloads/). The free Visual Studio Community edition works fine.
2. Download the SuperTuxKart source package from either [SuperTuxKart download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/0.9.2) or [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control), and unpack it.
*Note: If you downloaded the source package from here: [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control), then both `stk-code` and `stk-assets`**must** be in the same directory, otherwise the build can result in failure*
3. Download the Windows dependencies package from either [SuperTuxKart download area: Dependecies - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/Windows/)
or [SuperTuxKart on GitHub - Dependencies](https://github.com/supertuxkart/dependencies), and unpack it; then, copy the `dependencies` directory from either the `windows` or the `windows_64bit` directories into the `stk-code` directory, rename it to `dependencies-64bit` if you want to compile a 64bit build.
4. Download CMake from here: [CMake - download page](https://cmake.org/download/), install it; once CMake is installed, double click on the CMake icon on your desktop, and point it towards your `stk-code` directory in the 'Where is the source code' field, and point it to a directory called `build` or `bld` inside the stk-code directory.
5. Press 'Configure'; CMake will ask you if it is OK to create the aformentioned directory, press `Yes`. CMake will then ask you about your version of Visual Studio.
Confirm your selection; *Please look at the table below to avoid confusion between version numbers and releases of Visual Studio*;
CMake will begin creating the required files for the build in the directory.
6. Navigate to your build directory and open the `SuperTuxKart.sln` file; Visual Studio will now load the solution.
7. In the 'Solution Explorer', right click on the `supertuxkart` project and select "Set as StartUp project"
8. Open the 'Build' menu and select 'Build Solution'; or, press the default keyboard shortcut: `CTRL + SHIFT + B` to build the solution.
*Note: To avoid confusion between releases and versions, refer to this table:*
Visual Studio Release | Version
----------------------|------------
Visual Studio 2017| 15
Visual Studio 2015| 14
Visual Studio 2013| 13
## Building SuperTuxKart on Windows (from PowerShell/Command line)
1. Download and install Visual Studio from here: [Visual Studio - Download](https://www.visualstudio.com/downloads/), the free Visual Studio Community edition works fine.
2. Download a source package from either [SuperTuxKart 0.9.2 download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/0.9.2) or [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control)
NOTE: the `stk-code` and `stk-assets` directories **must** be in the same directory
3. Download the Windows dependencies package from either [SuperTuxKart download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/Windows/)
or [SuperTuxKart on GitHub - Dependencies](https://github.com/supertuxkart/dependencies)
and unpack the archive; once unpacked, copy the `dependencies` directory from either the `windows` or the `windows_64bit` directories into the `stk-code` directory
4. Download CMake from here: [CMake - download page](https://cmake.org/download/); and install it. Navigate to the `stk-code` directory; and create an directory called "build":
```cmd
mkdir build
cd build
```
5. Once inside the build directory; run CMake to start the compilation process:
```cmd
cmake ..
```
6. Now that CMake finished configuring and creating the necessary files for the build, run the build command in the same directory:
```cmd
msbuild.exe SuperTuxKart.sln
```
SuperTuxKart can now be run as `bin\Debug\supertuxkart.exe` or `bin\Release\supertuxkart.exe`
## Building SuperTuxKart on macOS
### Getting Started
Install the developer tools, either from the OS X Install DVD or from Apple's website.
If youhaveneverbuiltanythingbefore,youhavecreate`/usr/local/include/`first:
```bash
sudo mkdir -p /usr/local/include/
```
Symlink the `include`-folder of OpenGL framework to `/usr/local/include/GL` (Unix programs have an easier time finding it this way):
The first link is required in order to find libcurl, the second to find opengl.
Download pre-built dependencies from [here](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/OSX/) and put the frameworks in [hard disk root]/Library/Frameworks
### CMake
CMake is used to build STK. At this time CMake will not make a binary that is ready for distribution.
You'll have to run these commands inside your stk-code directory.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.