Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 100
» Latest member: Veqrsmamn
» Forum threads: 105
» Forum posts: 460

Full Statistics

Latest Threads
Skidding Improvements / A...
Forum: Game development
Last Post: Asher3theG
2 hours ago
» Replies: 1
» Views: 27
I don't see any textures ...
Forum: Addon Talk
Last Post: woosh
4 hours ago
» Replies: 3
» Views: 57
Standalone Server help
Forum: General
Last Post: nightmareinvention
Yesterday, 09:56 PM
» Replies: 2
» Views: 74
STK-BLENDER
Forum: Game development
Last Post: LLS_forum
Yesterday, 05:59 PM
» Replies: 3
» Views: 292
More than a account in Ra...
Forum: General
Last Post: Dashy_
09-01-2026, 11:01 AM
» Replies: 0
» Views: 56
Some characters are in ne...
Forum: Game development
Last Post: Sven
07-01-2026, 04:21 PM
» Replies: 9
» Views: 1,712
Noinexu Shore track is br...
Forum: Addon Talk
Last Post: woosh
07-01-2026, 09:16 AM
» Replies: 5
» Views: 223
I don't like Hexley and W...
Forum: Game development
Last Post: Tuxito3000
06-01-2026, 10:41 PM
» Replies: 6
» Views: 1,248
Sync more types of data t...
Forum: Game development
Last Post: Alayan
06-01-2026, 09:57 PM
» Replies: 1
» Views: 135
Add Rocket Boost powerup ...
Forum: Game development
Last Post: jvondrashek
05-01-2026, 11:23 PM
» Replies: 2
» Views: 165

 
  The FEEL Branch (of Speed)
Posted by: kadajett - 01-01-2026, 12:31 AM - Forum: Game development - Replies (5)

*Editing post after chatting and re-reviewing my code. Paired down to only speed lines!*

First off, happy new year all! I am writing this forum post at least partially on the 31st at 4PM! 

I am pretty new to this project. The last game project I was working on announced they wouldn't be supporting Linux going forward, and that was a deal breaker. In finding a new project to contribute to, I found an amazing fun game to play! I really appreciate what everyone here is building. 

I am also kadajett on Discord, so come and say hello! I have introduced myself there as much as possible in such a short time! 

So, WHAT IS THE FEEL?

I started out playing the version of the game that is on the master branch. It was fun, but there were some quirks. I set out to find bugs that other people had posted first, with a goal of learning the codebase enough to form an opinion, and maybe fix some stuff. 
A few days in after discovering the beautiful BalanceSTK2 branch, I learned how most of the kart, physics, map normal stuff, etc worked. With that, I started to play around with some minimal UI additions, not meant to modify gameplay at all, but meant to improve the feeling of the game. Make things feel more impactful. When you are hit, it should feel like you are hit! When you hit a zipper, you should feel like you are moving FAST. in addition to a few more things, I worked on a few new shaders to help see items on the track with my 5k widescreen, as the outlines were almost invisible. Turns out, someone had already posted an issue about this in github, so maybe I did the right thing! 

Before I continue, I wanted to say that the goal of this post is to see what you all think! We can talk game design, or we can talk tech. I am happy to talk through either, since I am so new to this project, I have no right to a strongly held opinion! 

what did I do?



Camera pulls back slightly during boosts

During boosts, the camera briefly pulls back to enhance the "speed" sensation, then smoothly returns.
Parameters:
  - Max FOV increase: 8 degrees
  - Speed threshold: 70% of max speed
  - Lerp speed: 4.0 (smooth interpolation)

  How it works:
  1. Calculate speed_factor = (speed_ratio - 0.7) / 0.3
  2. During boost, add extra factor (0.3 for nitro, 0.5 for zipper)
  3. Lerp toward target FOV each frame
  4. Result: subtle widening at high speed, more pronounced during boosts

Speed lines appear during nitro/zipper/skid boosts
Seen above! 
You can see in the boost. This one is all technical, so I apologize. 
For the non-technical, this is a boolean value based on whether the character is boosting, and what caused it. You could think of it like this equation, but you would be wrong. lol

`an=vn−vn−1`
It is far simpler. I did go the calculation route early on, but is wasn't as satisfying, as you could hit multiple zippers and sit at your max speed and never see the lines. This way, you feel FAST when you do something that should make you go FAST.


How it actually works:
Speed Lines Shader (speed_lines.frag)

Trigger: onBoostActivated() callback sets intensity

Uniforms:
- speed_intensity [0.0-1.0]: Line density and length
- boost_intensity [0.0-1.0]: Purple tint amount
- time: Animation driver
- center: Screen center (where kart is)
- inner_radius: Where lines start fading in

1. Calculate angle from screen center for each pixel
2. Divide into 60-100 radial sections (more sections at higher intensity)
3. Per-section random offset for non-uniform appearance
4. Smoothstep for anti-aliased line edges
5. Radial falloff: lines stronger at screen edges, invisible near center
6. Animation: lines move outward, fade in/out over time
7. Three layers blended for depth (60%, 30%, 20% weights)
8. At high boost intensity (>0.3): adds subtle chromatic aberration

Happy new year, everyone! 
Small tidbit, moving from JS and C#, C++ here was weird. The observer pattern was new to me, but not completely foreign. Fun to learn, at least! 

Print this item

Lightbulb Add Rocket Boost powerup for catch-up mechanics
Posted by: jvondrashek - 31-12-2025, 09:00 PM - Forum: Game development - Replies (2)

I was playing with a few of my friends and family who haven't played before and I noticed a few things when playing online.

1. With skill, you can get VERY far ahead of the pack. If this were a pure racing game that would be fine, but with items this is more party oriented so ideally you want to have a higher turn over a players in various places.
2. If you are below average, you can easily lose the pack and it becomes pretty hopeless to catch up.

The idea to solve the latter of these problems is the "Rocket Boost"

This "Rocket Boost" puts the player on auto-pilot and speeds them up to catch them. This would be for players really falling behind and would only be accessible to those in the lower half with those in last having more broad access to it.

I have created a PR for this to that end and value feedback on it as well as the idea in general for those interested.

https://github.com/supertuxkart/stk-code/pull/5606

Print this item

Lightbulb EvilTux redesign
Posted by: Tuxito3000 - 30-12-2025, 05:45 PM - Forum: Other creations - No Replies

"Hello everyone!

I've been working on a redesign for EvilTux. My goal was to move away from the classic rounded shape and give him a more unique and menacing silhouette.

In this version, I made his arms thin and elongated to give him a more "villainous" and agile look, similar to a rival character like Wario. I also refined his helmet to give it a clearer, more pointed shape.

I want this design to be usable in SuperTuxKart or any other project, so I'm releasing it under free licenses.

Design changes: Longer and thinner arms, a single-spiked helmet, and a more aggressive expression.

License: Dual license under GNU GPL v3 and CC BY-SA 4.0.

Alayan, if you see this, I would like you to use my redesign.

It looks a bit like it was made in Paint, but with a few tweaks it looks good.

I hope you like this new direction for the character! Feedback is welcome."



Attached Files Thumbnail(s)
   
Print this item

  Fix this in the Spanish translation.
Posted by: NicMay2023 - 29-12-2025, 12:19 AM - Forum: Localization - Replies (1)

In the Spanish translation, when the female character (e.g. Godette, Suzanne, Kiki, Pepper, or Xue) gets eliminated, it would be great that instead of saying "(Insert female character name here) ha sido eliminado" it would say "(Insert female character name here) ha sido eliminada", because the pronouns of these female characters are "she".

   

Can somebody at the development team fix that?

Print this item

  (server mode) AI karts still driving like noobs
Posted by: akiuni - 27-12-2025, 04:58 PM - Forum: General - Replies (7)

Hello

I've configured a LAN server to play with friends, all is okay, the server is providing races in supertux level. However, I want to add some AI karts when to few persons are connected (e.g. when there is only 2 human players, the server adds 3 AI players). It's working fine but AI karts are very weak, they seems to be novice players.
I've tried everything, including settings last-speed-cap="0:5.0" (speed x5) in stk_config.xml but nothing changed. Please, can someone tell me what to do to improve those IA karts, at least to SuperTux level) ?

Server start:
./run_game.sh  --server-config=/opt/stk/server-lantest2.xml --disable-polling

Client start:
./run_game.sh --connect-now=127.0.0.1:2759  --network-ai=3 --no-graphics  --difficulty=3 --disable-polling

Note that if I try to move stk_config.xml somewhere else and add the parameter 'stk-config=..." the client doesn't find the file:
[error  ] StkConfig: FATAL ERROR while reading '':
[fatal  ] StkConfig:    Cannot find file


Thank you

Here is the content of  server-lantest2.xml:
<?xml version="1.0"?>
<server-config version="6" >
    <!-- Name of server, encode in XML if you want to use unicode characters. -->
    <server-name value="Super Nouille Prime" />
    <!-- Port used in server, if you specify 0, it will use the server port specified in stk_config.xml. If you wish to use a random port, set random-server-port to '1' in user config. STK will automatically switch to a random port if the port you specify fails to be bound. -->
    <server-port value="2759" />
    <!-- <server-port value="5684" /> -->
    <!-- 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-mode value="3" />
    <!-- Difficulty in server, 0 is beginner, 1 is intermediate, 2 is expert and 3 is supertux (the most difficult). -->
    <server-difficulty value="3" />
    <!-- Enable wan server, which requires you to have an stk-addons account with a saved session. Check init-user command for details. -->
    <!-- <wan-server value="true" /> -->
    <wan-server value="false" />
    <!-- Enable network console, which can do for example kickban. -->
    <!-- <enable-console value="false" /> -->
    <enable-console value="false" />
    <!-- Maximum number of players on the server, setting this to a value greater than 8 can cause performance degradation. -->
    <server-max-players value="8" />
    <!-- Maximum number of players in the game, all other players on the server are spectators. Specify 0 to allow all players on the server to play. -->
    <max-players-in-game value="0" />
    <!-- Password for private server, leave empty for a public server. -->
    <private-server-password value="" />
    <!-- Message of today shown in lobby, you can enter encoded XML words here or a file.txt and let STK load it. -->
    <motd value="Welcome to Super Nouille Prime STK Server" />
    <!-- If this value is set to false, the server will ignore chat messages from all players. -->
    <chat value="true" />
    <!-- If client sends more than chat-consecutive-interval / 2 chats within this value (read in seconds), it will be ignore, negative value to disable. -->
    <chat-consecutive-interval value="8" />
    <!-- Allow players to vote for which track to play. If this value is set to false, the server will randomly pick the next track to play. -->
    <track-voting value="true" />
    <!-- Timeout in seconds for selecting karts and (or) voting tracks in server, you may want to use a lower value if you have track-voting off. -->
    <voting-timeout value="25" />
    <!-- Timeout in seconds for validation of clients in wan, currently STK will use the stk-addons server to share AES key between the client and server. -->
    <validation-timeout value="25" />
    <!-- By default WAN server will always validate player and LAN will not, disable it to allow non-validated player in WAN. -->
    <!-- <validating-player value="true" /> -->
    <validating-player value="false" />
    <!-- Disable it to turn off all stun related code in server, it allows for saving of server resources if your server is not behind a firewall. -->
    <firewalled-server value="false" />
    <!-- Enable to allow IPv6 connection if you have a public IPv6 address. STK currently uses dual-stack mode which requires server to have both IPv4 and IPv6 and listen to same port. If STK detects your server has no public IPv6 address or port differs between IPv4 and IPv6 then it will use IPv4 only socket. For system which doesn't support dual-stack socket (like OpenBSD) you may fail to be connected by IPv4 clients. You can override the detection in config.xml at supertuxkart config-0.10 folder, with default-ip-type option. -->
    <ipv6-connection value="false" />
    <!-- No server owner in lobby which can control the starting of game or kick any players. -->
    <owner-less value="true" />
    <!-- Time to wait before entering kart selection screen if satisfied min-start-game-players below for owner less or ranked server. -->
    <start-game-counter value="60" />
    <!-- Clients below this value will be rejected from joining this server. It's determined by number of official karts in client / number of official karts in server -->
    <official-karts-threshold value="1" />
    <!-- Clients below this value will be rejected from joining this server. It's determined by number of official tracks in client / number of official tracks in server, setting this value too high will prevent android players from joining this server, because STK android apk has some official tracks removed. -->
    <official-tracks-threshold value="0.7" />
    <!-- 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-players value="1" />
    <!-- Automatically end linear race game after 1st player finished for some time (currently his finished time * 0.25 + 15.0). -->
    <auto-end value="false" />
    <!-- If strict-players is on, no duplicated online id or split screen players are allowed, which can prevent someone using more than 1 network AI with this server. -->
    <!-- <strict-players value="true" /> -->
    <strict-players value="false" />
    <!-- Server will submit ranking to stk-addons server for linear race games, you require permission for that. validating-player, auto-end, strict-player and owner-less will be turned on. -->
    <ranked value="false" />
    <!-- If true, the server owner can config the difficulty and game mode in the GUI of lobby. This option cannot be used with owner-less or grand prix server, and will be automatically turned on if the server was created using the in-game GUI. The changed difficulty and game mode will not be saved in this config file. -->
    <server-configurable value="false" />
    <!-- If true, players can live join or spectate the in-progress game. Currently live joining is only available if the current game mode used in server is FFA, CTF or soccer, also official-karts-threshold will be made 1.0. If false addon karts will use their original hitbox other than tux, all players having it restriction applies. -->
    <live-spectate value="true" />
    <!-- If true, server will send its addon karts real physics (kart size, length, type, etc) to client. If false or client chooses an addon kart which server is missing, tux's kart physics and kart type of the original addon is sent. -->
    <real-addon-karts value="true" />
    <!-- Hit limit of free for all, zero to disable hit limit. -->
    <hit-limit value="20" />
    <!-- Time limit of free for all in seconds, zero to disable time limit. -->
    <time-limit-ffa value="360" />
    <!-- Value used by server to automatically estimate each game time. For races, it decides the 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-game-time-ratio * default lap of that track). For soccer if more than 0.0f, for time limit game it will be auto-game-time-ratio * soccer-time-limit in UserConfig, for goal limit game it will be auto-game-time-ratio * numgoals in UserConfig, -1 to disable for all. -->
    <!-- <auto-game-time-ratio value="-1" /> -->
    <auto-game-time-ratio value="1" />
    <!-- Maximum ping allowed for a player (in ms), it's recommended to use default value if live-spectate is on. -->
    <max-ping value="300" />
    <!-- Tolerance of jitter in network allowed (in ms), it's recommended to use default value if live-spectate is on. -->
    <jitter-tolerance value="100" />
    <!-- Kick players whose ping is above max-ping. -->
    <kick-high-ping-players value="false" />
    <!-- Allow players exceeding max-ping to have a playable game, if enabled kick-high-ping-players will be disabled, please also use a default value for max-ping and jitter-tolerance with it. -->
    <high-ping-workaround value="true" />
    <!-- Kick idle player which has no network activity to server for more than some seconds during game, unless he has finished the race. Negative value to disable, and this option will always be disabled for LAN server. -->
    <kick-idle-player-seconds value="60" />
    <!-- Set how many states the server will send per second, the higher this value, the more bandwidth requires, also each client will trigger more rewind, which clients with slow device may have problem playing this server, use the default value is recommended. -->
    <!-- <state-frequency value="10" /> -->
    <state-frequency value="20" />
    <!-- Use sql database for handling server stats and maintenance, STK needs to be compiled with sqlite3 supported. -->
    <sql-management value="false" />
    <!-- Database filename for sqlite to use, it can be shared for all servers created in this machine, and STK will create specific table for each server. You need to create the database yourself first, see NETWORKING.md for details -->
    <database-file value="stkservers.db" />
    <!-- Specified in millisecond for maximum time waiting in sqlite3_busy_handler. You may need a higher value if your database is shared by many servers or having a slow hard disk. -->
    <database-timeout value="1000" />
    <!-- IPv4 ban list table name, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. STK can auto kick active peer from ban list (update per minute) whichallows live kicking peer by inserting record to database. -->
    <ip-ban-table value="ip_ban" />
    <!-- IPv6 ban list table name, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. STK can auto kick active peer from ban list (update per minute) which allows live kicking peer by inserting record to database. -->
    <ipv6-ban-table value="ipv6_ban" />
    <!-- Online ID ban list table name, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. STK can auto kick active peer from ban list (update per minute) which allows live kicking peer by inserting record to database. -->
    <online-id-ban-table value="online_id_ban" />
    <!-- Player reports table name, which will be written when a player reports player in the network user dialog, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. -->
    <player-reports-table value="player_reports" />
    <!-- Days to keep player reports, older than that will be auto cleared, 0 to keep them forever. -->
    <player-reports-expired-days value="3" />
    <!-- IP geolocation table, you only need this table if you want to geolocate IP from non-stk-addons connection, as all validated players connecting from stk-addons will provide the location info, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. -->
    <ip-geolocation-table value="ip_mapping" />
    <!-- IPv6 geolocation table, you only need this table if you want to geolocate IP from non-stk-addons connection, as all validated players connecting from stk-addons will provide the location info, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. -->
    <ipv6-geolocation-table value="ipv6_mapping" />
    <!-- If true this server will auto add / remove AI connected with network-ai=x, which will kick N - 1 bot(s) where N is the number of human players. Only use this for non-GP racing server. -->
    <ai-handling value="true" />
    <!-- If true this server will allow AI instance to be connected from anywhere. (other than LAN network only) -->
    <!-- <ai-anywhere value="false" /> -->
    <ai-anywhere value="true" />
</server-config>

Print this item

Tongue Why do WarMUX icons look so good on STK?
Posted by: Tuxito3000 - 25-12-2025, 05:11 PM - Forum: SuperTuxKart 0.9.3 and older - No Replies

I've noticed that in previous versions of STK they used WarMUX icons; why do they look so good?

Print this item

Music Demon Hill, but in the pitch of the alternate version - SuperTuxKart UST
Posted by: stkfan2008 - 23-12-2025, 04:09 PM - Forum: Other creations - No Replies

A few days ago I was browsing the SuperTuxKart asset repositories and unexpectedly stumbled upon an alternate version of Demon Hill that was never used in the game. It had a different pitch on some notes, and even though it might seem insignificant to some, I wondered what the song we all heard in the game would sound like with that pitch, and that's how this remix was born, haha. The original song was composed by 0zone0ne and is licensed under CC-BY-SA 3.0, and therefore, the remix has the same license.

You can listen to it here: https://www.youtube.com/watch?v=B9KMzAguL50

Print this item

Exclamation I found a candidate to be destroyed
Posted by: Tuxito3000 - 23-12-2025, 04:44 AM - Forum: Game development - Replies (1)

I was investigating on the STK subreddit and came across SeaLionsClub's NFT. Basically, they stole our code and violated the GPL, probably because they're closed source. It's obvious Angry Angry . Check this out: https://www.reddit.com/r/NFTsMarketplace..._wl_spots/ and you'll understand. Send a cease and desist letter; they may have had similar cases before. I know they're inactive, but it's a violation.

Print this item

Wink I created the SuperTuxKart Wiki on Miraheze
Posted by: stkfan2008 - 22-12-2025, 12:57 PM - Forum: Other creations - Replies (6)

Hello everyone, today I'm here to show you a project I decided to start as my small contribution to the SuperTuxKart community: the SuperTuxKart Wiki. As the name suggests, it's a wiki, or rather, an encyclopedia about the game. I originally considered reviving the SuperTuxKart Wikia (stk.fandom.com), but many people told me it was better to create a wiki from scratch. Besides, its only administrator has been active since 2016, which is about a decade. So in the end, I decided reviving that wiki wasn't worth it and created the wiki on Miraheze instead.

At the moment, being a newly created wiki, it has practically nothing and is a blank canvas, although I have already been creating the infoboxes and I have drafts of several articles in Google Docs, in addition to a lot of files from various versions of SuperTuxKart on my laptop. And even though I started the wiki as a fan project and not official, several people told me I should ask the team what they think about it, as a kind of permission, I guess.

You can access the wiki by going to supertuxkart.miraheze.org and here's the logo I made for the wiki, I hope you like it:

[Image: SuperTuxKart_Wiki_Logo.png]

Print this item

Lightbulb [Suggestion] Idle Animation
Posted by: Mish7913 - 15-12-2025, 12:16 PM - Forum: Game development - Replies (4)

Everyone, I have an great IDEA, what if add Idle animation to the game?  Smile

So ... right now exist only "straight" pose and it's helps to switch between "left" and"right" poses. But what if add idle animation too - If player didn't press any keys on the keyboard, then after 10 sec will start playing "idle-start" and "idle-end" animation.

I think it will add more life to the game.

Print this item