Kart Config Modding Project

Kart Config Modding Project

Postby NowhereMan » 05 Mar 2015, 23:09

I'd like to start by thanking solistice for going to so much effort to provide semi-customized kart configs (yay!), as well as a quick way to represent that in the kart selection menu. Because of his efforts, I felt encouraged to expand on the idea. Naturally, I've run into some problems.

What I'd like to do:

Rather than 3 kart-types, I'd like to expand that into 5 chassis and 5 transmissions. This would give us 25 combinations to use for karts, leaving plenty of room for immediate expansion (at least among standard karts; obviously you could easily blow through these if you include addons). However, it appears the game won't allow me to define new kart tags in stk_config. When I tried and referenced them in a kart config file, it just used the default settings.

So first off, would it be possible to define new option-sets in a similar way as "kart-type" (e.g. "kart-chassis" and "kart-transmission")? Defining 25 kart types individually is a pain (and naming them would quickly devolve into numbers), but I don't know of another way, currently, other than my copy-paste method (see below).

Second, I currently have turn, nitro, and skid parameters split between chassis and transmission. Obviously, this doesn't work since the game only recognizes the first instance of an xml tag. But, taking the nitro tag as one example, engine-force needs to be based on the chassis or heavy karts with weak transmissions won't get enough power while light karts with powerful transmissions will get too much. However, the rest of the nitro settings should be based on the transmission since that's the part of the engine I think should be used to determine all the efficiency factors. Similar thinking goes into the other tags I'm trying to split.

Is there some way to make this work, or am I stuck adding those options in manually for each kart?

Third, looking to the future, I'd like to add three basic engine types. (Coupled with the above, this would provide a total of 75 unique kart types; more than enough for every kart to be unique, including all the current addons.) These engine types would modify the engine and nitro settings; possibly some others. The standard engine would use the normal settings for the kart. The supercharged engine would boost nitro effects at the cost of some engine power. The high-power engine would increase the base engine specs but nitro wouldn't be as good. Thus, the affected settings would need to be modified percentage-wise, which obviously is not currently possible. I'd like to put it on the wish-list, though, for anyone who can code and has the time and will (and assuming it's trivial or at least not too non-trivial).

Last, for now, I'd like to share what I've currently worked on. Please realize it's a huge work in progress. I think the biggest hurdles for most people are going to be the higher top speeds and the twitchier skidding, but there are a bunch of changes to other areas as well. I'll hit the highlights.

Chassis:
    stability - changes are currently only meant to maintain kart balance given differences in mass; needs more work

    rescue - currently using default settings; not sure if I should even touch it, but if I do, heavier karts will get rescued faster; this would keep with the theme of heavier karts being tankier

    bubblegum - made it so you really feel like you just drove through gum instead of insta-stop; heavier is less affected; minor tweaks might be useful, but plays great as is

    zipper - more effective on lighter karts

    slipstream - harder to use with heavier karts; I have a hard time using it, even under the best circumstances, so I can't tell how well the changes are working

    swatter - lighter karts have shorter reach and duration; if I'm understanding the params correctly, being squashed by lighter karts shouldn't slow you down as much and shouldn't last very long

    mass - lightest is 125, heaviest is 525; no intention of changing this; it's kinda the basis of the chassis, after all, and it's working surprisingly well

    plunger - heavier karts have a longer band, but lighter karts get more out of it; I'm considering tweaking duration, but for now, it's the same for all karts

    explosion - time and invulnerability are longer for lighter karts; radius is bigger for heavier karts

    engine - mostly the changes are to maintain balance, but all else being equal, heavier karts have lower power-to-weight ratios, so they'll accel slightly slower compared to lighter karts; heavier karts should also take longer to brake

    nitro - chassis only affects engine-force; again, power-to-weight ratio means heavier karts receieve less effect; could probably use some tweaking

    skid - chassis affects about half the parameters; heavier karts have a wider base skid radius and get some more boost, but shouldn't be enough to completely make up for the mass difference; I'm still working on the rest

    turn - heavier karts have a slightly wider turn radius; might not be that noticable, but I'm hesitant to mess with this much

Transmission:
    startup - heavier transmissions are more lenient on the timing and provide a better boost; I'm thinking of keeping the better boost, but making the timing stricter so lighter transmissions have something here; even so, the start usually isn't crucial and sometimes "bad" starts are better (avoid the scrum), so it doesn't bother me much if the startup favors one transmission type over another; I'm open to opinions one way or the other

    gear - heavier transmissions have more gears, but that doesn't mean better power overall; universal transmissions have a single gear at power-increase of 1.8; heavier transmissions have more gears, up to 5, with lower gears more powerful and upper gears less powerful, so you'll be able to get up to speed faster, but it'll be harder to keep top speed; this could probably use more tweaking, but it's quite playable as is

    turn - heavier transmission results in the kart going to full steer slightly quicker; didn't want to play with this too much since the default steering is already in a pretty sweet spot, so if I've done this right, it shouldn't make a huge difference in play but should hopefully still provide a difference in feel...if that makes any sense

    nitro - the rest; heavier transmissions need more nitro per use and get less duration from it, so if you like to use nitro, go with a lighter transmission; game bug is currently causing problems with nitro consumption or some aspect thereof, so super transmissions only use 3 or 4 units of nitro instead of the 5 they're supposed to. (Hard to test since there's no nitro count on the HUD.)

    skid - heavier transmissions take less time to get their bonuses, have lower min-speed to start the skid--heaviest can start skidding from a dead stop--have higher speed bonuses, but bonus duration is lower; also heavier transmissions provide a bigger turn range between skid min and max radius, meaning slightly better handling during a skid

General notes:
    Default top speed on SuperTux difficulty in 0.8.1 is 27. In 0.8.2, the light karts top out at 30 by default. I use 32 across the board. Despite this, I've found lighter karts still feel zippier compared to heavy karts, and heavier karts definitely have a real sense of weight to them that makes you feel like you can just shove everything out of the way. (You can't, though, because you probably won't be the only heavy kart in the race.)

    Skidding is much more responsive, now. Karts take only 0.3 seconds to get into the skid rather than the default 0.5. I tried 0.25, which worked fine in 0.8.1, but it's too twitchy in 0.8.2. For now, this is across the board, but I do intend a range (probably 0.3 to 0.4, but that's pure guesswork at the moment) based on chassis.

    Overall, heavier karts are tankier while lighter karts are zippier. Heavier transmissions are better for twisty tracks (i.e. minigolf) where you have to slow down a lot, so getting back up to speed is important, while lighter transmissions are better for gentler tracks (i.e. barnyard). There is no outright race-winning combo. You should be able to win (or at least compete well, depending on your lap and kart number settings) on any track no matter which kart you drive, so choose one that suits your preferences. I prefer heavier transmissions, myself, but the lighter transmissions are not to be dismissed (I had plenty of fun winning with ElePhPant--heavy chassis, universal transmission--on a 16 kart 20 lap minigolf race).

    I'm not sure if modding the collision parameters will address some of the kart<->track collision issues the game is having. My guess is probably not. I'll probably also play around with suspension some, just to see what happens, but I don't have any plans to include it right away.

I've included two files, below. One is a zipped file containing my modified kart.xml files for all the standard karts. These are my own interpetations of what I think the karts should have. If you don't like them, by all means, change them. In any case, just copy the files into the appropriate kart folders and start the game. (Make backups first, of course.) Here's a brief rundown:

Kart: Chassis / Transmission

Adiumy: Dainty / Light
Amanda: Standard / Heavy
Beastie: Heavy / Standard
ElePhPant: Heavy / Universal
eMule: Standard / Universal
Gnu: Light / Universal
Hexley: Dainty / Super
Konqi: Heavy / Super
Nolok: Heavy / Heavy
Pidgin: Light / Super
Puffy: Massive / Light
Sara (Racer): Light / Heavy
Sara (Wizard): Light / Light
Suzanne: Standard / Super
Tux: Standard / Standard
Wilber: Dainty / Standard
Xue: Dainty / Universal

The second zip file is my xml file containing the chassis and transmission options. How to use:
    1) Choose a kart you'd like to modify.
    2) Make a backup of the kart.xml file.
    3) Open the kart.xml file in a text editor.
    4) Remove the "type" parameter (the entire line) from the "kart" tag. In the standard karts, you'll find it between the "random-wheel-rot" and "groups" parameters. It may or may not exist in addon karts.
    5) From my xml mod file, choose one chassis and one transmission you'd like to use.
    6) Copy the chassis and transmission types anywhere after the opening kart tag and before the closing kart tag. (I prefer to put them after the "hat" tag. I find it easier to keep track of them that way.)
    6.5) If you copied the type tags, delete those. (i.e. if you chose the heavy chassis, and you copied the <heavy> and </heavy> tags, delete those.)
    7) Put all the nitro parameters into one tag and delete the other (which should be empty).
    8) Repeat step 7 for the skid parameters.
    9) Repeat step 7 for the turn parameters.
    10) Save the file.
    11) Play the game.

If you're not sure if you've done it right, download the file containing the kart files I've already modded and compare them to yours.

Note that you can also use these settings in 0.8.1 for the most part. However, in the stability tag, make the following changes:
    downward-impulse-factor="0"
    roll-influence="0.3"
Those are the defaults in 0.8.1, and I don't see a reason to change them, except perhaps on a per-kart basis (but that's beyond the scope of my efforts, here).

To do:
Lots. Main focus at the moment is....

In 0.8.2, ending the skid is jerky, so that needs smoothing. Works great in 0.8.1, though. Not sure why the discrepancy. I'm guessing it may have something to do with the skid's increase/decrease params, which I think determine how quickly the kart enters and leaves the skid, but the code comments on those params are utterly useless, so I'll just have to test some numbers and see what happens. In any case, the current number range I'm using is more like placeholders for my future intentions (if my assumptions are correct, which they very well may not be) than any real effort to make a change. They don't seem to have any noticable impact at the moment.

Also need to get the karts to stop tumbling so easily. I don't think modding roll-influence will solve it entirely. Maybe needs some angular damping? Not sure I want to touch that param, though. What's it even do? No code comment on it. (Tumbling might also be something that needs to be addressed in the game code, itself.)

Beyond that, not sure. This is more of a whatever-the-heck-I-feel-like-working-on-today project. ;)

Thoughts, ideas, and other comments welcome.

Edit:
3/8/15 - Updated files. Changed stability roll-influence to 0 in all cases. Renamed standard-kart-mods-0.8.2beta to standard-kart-mods. Still only meant for 0.8.2beta, though.
Attachments
kart-mod-xml.zip
Base xml file listing chassis and transmissions
(2.09 KiB) Downloaded 326 times
standard-kart-mods.zip
Modded standard kart.xml files for 0.8.2beta
(23.56 KiB) Downloaded 333 times
Last edited by NowhereMan on 08 Mar 2015, 20:48, edited 1 time in total.
NowhereMan
 
Posts: 16
Joined: 04 Mar 2015, 23:13

Re: Kart Config Modding Project

Postby ArDanWol » 06 Mar 2015, 02:18

Hi Nowhereman,
Wow, long post. :p This is an excellent idea in my opinion. Personally, I think the current kart properties system still needs some work (no offense developers ;) ). It's an improvement, but it still can be improved. What you've stated sounds pretty good, and it seems like you have the kart performances pretty well balanced from what I've read. Seems a bit complicated, but you've got an excellent start. I'll definitely try modding a few karts on my own and give you some feedback on my experience. I agree that you shouldn't mess with the rescuing, but the tumbling problem needs addressed. Tall karts especially have issues colliding with other karts and the sides of the track. Thanks for your work on this. :D
I'm know pretty much everywhere else on the internet as "Kpenguin"
"Profanity is one language all computer users know" - Murphy's 50th Law of Computers
Software bugs are impossible to detect by anybody except the end user - Murphy's 31st law of software
Each computer code has five bugs, regardless of how many bugs have been already found - Murphy's 50th law of software
"That's not a bug, it's an undocumented feature!"
User avatar
ArDanWol
 
Posts: 181
Joined: 07 Nov 2014, 17:36
Location: Ohio, USA

Re: Kart Config Modding Project

Postby NowhereMan » 06 Mar 2015, 06:36

Yeah, kinda got a little carried away with the post. Sorry 'bout that.

The performance balance looks good on my spreadsheet, but when driving, it doesn't always work out that way. And some issues are hard for me to test (like slipstream, as I've already mentioned). I'd love feedback on any of it.

I agree it seems complicated. Most of it is necessary due to the limitations currently imposed on how we can mod the kart files. Some of it is self-imposed, though, like my decision to split the tags, but I wouldn't do that unless I thought it was important for balance. There's plenty more I'd modify if I could, but since the options aren't available...well, that's that.

Tumbling is a serious problem. And like you mentioned, tall karts are especially bad. Right now, though, I'd settle for stablizing Konqi. That was one of the most stable in 0.8.1, but he seems to bounce around like a Super Ball in 0.8.2. It's ridiculous! Any insight on how to address the issue would be greatly appreciated. My only thought is to throw some very high numbers into the params and see what, if anything, works, then tone it down to drivable levels.
NowhereMan
 
Posts: 16
Joined: 04 Mar 2015, 23:13

Re: Kart Config Modding Project

Postby hiker » 06 Mar 2015, 13:49

Hi,

NowhereMan {l Wrote}:I'd like to start by thanking solistice for going to so much effort to provide semi-customized kart configs (yay!), as well as a quick way to represent that in the kart selection menu. Because of his efforts, I felt encouraged to expand on the idea. Naturally, I've run into some problems.

It would be great if someone would look and tune that part of stk :)

Rather than 3 kart-types, I'd like to expand that into 5 chassis and 5 transmissions. This would give us 25 combinations to use for karts, leaving plenty of room for immediate expansion (at least among standard karts; obviously you could easily blow through these if you include addons). However, it appears the game won't allow me to define new kart tags in stk_config. When I tried and referenced them in a kart config file, it just used the default settings.

Can you post your example here? I think it should be possible to define your own types.

So first off, would it be possible to define new option-sets in a similar way as "kart-type" (e.g. "kart-chassis" and "kart-transmission")? Defining 25 kart types individually is a pain (and naming them would quickly devolve into numbers), but I don't know of another way, currently, other than my copy-paste method (see below).

Atm we don't have time to work on this, since we are focusing on the release. But I see a potential problem with your approach:

Second, I currently have turn, nitro, and skid parameters split between chassis and transmission. Obviously, this doesn't work since the game only recognizes the first instance of an xml tag. But, taking the nitro tag as one example, engine-force needs to be based on the chassis or heavy karts with weak transmissions won't get enough power while light karts with powerful transmissions will get too much. However, the rest of the nitro settings should be based on the transmission since that's the part of the engine I think should be used to determine all the efficiency factors. Similar thinking goes into the other tags I'm trying to split.

Partly this, it would require additional code to handle this - but the main issue: how can you guarantee (at least to a certain degree) that all 25 combinations are balanced?

Is there some way to make this work, or am I stuck adding those options in manually for each kart?

Third, looking to the future, I'd like to add three basic engine types. (Coupled with the above, this would provide a total of 75 unique kart types; more than enough for every kart to be unique, including all the current addons.) These engine types would modify the engine and nitro settings; possibly some others. The standard engine would use the normal settings for the kart. The supercharged engine would boost nitro effects at the cost of some engine power. The high-power engine would increase the base engine specs but nitro wouldn't be as good. Thus, the affected settings would need to be modified percentage-wise, which obviously is not currently possible. I'd like to put it on the wish-list, though, for anyone who can code and has the time and will (and assuming it's trivial or at least not too non-trivial).

Well, it can be done of course, but you have to also consider the fact that we have 4 different difficulty settings to take into account.

...
slipstream - harder to use with heavier karts; I have a hard time using it, even under the best circumstances, so I can't tell how well the changes are working

Yes, slipstream needs work :(

swatter - lighter karts have shorter reach and duration; if I'm understanding the params correctly, being squashed by lighter karts shouldn't slow you down as much and shouldn't last very long

Well, we don't need any realism tbh - but balanced karts. So, whatever works is fine for me :)

...
turn - heavier karts have a slightly wider turn radius; might not be that noticable, but I'm hesitant to mess with this much

I often use an arena to skid in circles ;) If you can build stk yourself (not that hard), I can give you a patch that would print x,y,z position of the kart. You can plot this to visualise the affect of different parameters on the turn radius.

General notes:
    Default top speed on SuperTux difficulty in 0.8.1 is 27. In 0.8.2, the light karts top out at 30 by default. I use 32 across the board. Despite this, I've found lighter karts still feel zippier compared to heavy karts, and heavier karts definitely have a real sense of weight to them that makes you feel like you can just shove everything out of the way. (You can't, though, because you probably won't be the only heavy kart in the race.)

I always anticipated that some features should be added to STK to allow for heavier karts to push other karts out of their way.

...
Overall, heavier karts are tankier while lighter karts are zippier. Heavier transmissions are better for twisty tracks (i.e. minigolf) where you have to slow down a lot, so getting back up to speed is important, while lighter transmissions are better for gentler tracks (i.e. barnyard). There is no outright race-winning combo. You should be able to win (or at least compete well, depending on your lap and kart number settings) on any track no matter which kart you drive, so choose one that suits your preferences. I prefer heavier transmissions, myself, but the lighter transmissions are not to be dismissed (I had plenty of fun winning with ElePhPant--heavy chassis, universal transmission--on a 16 kart 20 lap minigolf race).

The interesting and difficult question: how do you want to verify this? For example, if heavier karts get an advantage from collisions, the driver needs to use this feature (and the AI won't know anything about trying to crash into people).

I'm not sure if modding the collision parameters will address some of the kart<->track collision issues the game is having. My guess is probably not. I'll probably also play around with suspension some, just to see what happens, but I don't have any plans to include it right away.

What exactly are the kart-track collision problems you have? I am aware of some karts apparently colliding with the ground, and I have seen karts now sometimes stuck at a wall. Is it one of those?

Re suspension: I had to tweak the suspension from 0.8.1 to the next release in order to better support 'driving on the wall' - which is not really included in this release, but if you compile yourself (or just download the tracks from stk-assets) you can have a look at the Newton track.

...
Note that you can also use these settings in 0.8.1 for the most part. However, in the stability tag, make the following changes:
    downward-impulse-factor="0"
    roll-influence="0.3"
Those are the defaults in 0.8.1, and I don't see a reason to change them, except perhaps on a per-kart basis (but that's beyond the scope of my efforts, here).

Iirc I had to re-activate the downward impulse because of the Newton track :( On the other hand, that might indeed cause kart-track collision in some cases *sigh* Physics are a pain :)

....

In 0.8.2, ending the skid is jerky, so that needs smoothing. Works great in 0.8.1, though. Not sure why the discrepancy.

Jerky? You mean the pretty much instantaneous straightening of the kart? That's a thing I have been wanting to improve for a long time ... never got around to that :) It took us forever to tune the direction in which you would leave a skid :P
...
Also need to get the karts to stop tumbling so easily. I don't think modding roll-influence will solve it entirely. Maybe needs some angular damping? Not sure I want to touch that param, though. What's it even do? No code comment on it. (Tumbling might also be something that needs to be addressed in the game code, itself.)

I actually haven't seen too much of the karts toppling over in the last months (well, I see some of it, but typically during more crazy physics tests I do). I've seen karts taking a bit too long to get back into horizontal (e.g. if you drive with one side of the wheels on the paper plane in math class), but was always struggling to reproduce the issue to be able to improve it ... so in the end I decided that it might actually be quite rare ;)

I hope I didn't sound too negative ;) Getting more kart types would be really great, but from the previous work I know that it's difficult and easy to get wrong - and while I really would love to have two or three main categories, which combines gives us dozens of different karts, balancing them might be difficult - esp. if you would also consider that for example heavier karts would get a benefit by being able to push other karts around more. This either needs to be tested by human vs human games, or the AI would need to be improved to use this features.

Just for the record: us devs from the core team won't have time to look into this in the near future, since we want to get a release candidate out asap. But we are certainly interested in that,

Thanks a lot for this long posting!

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby ArDanWol » 06 Mar 2015, 15:49

hiker {l Wrote}:
I'm not sure if modding the collision parameters will address some of the kart<->track collision issues the game is having. My guess is probably not. I'll probably also play around with suspension some, just to see what happens, but I don't have any plans to include it right away.[/list]

What exactly are the kart-track collision problems you have? I am aware of some karts apparently colliding with the ground, and I have seen karts now sometimes stuck at a wall. Is it one of those?

I have had just a few kart/track collision problems. They seem to happen in Cocoa Temple, right after you jump over the road, on Snow Mountain, and in Old Mine right before the finish line (once, just about every kart in a 10 kart race had a track collision and ended up in the pond beside the road :D ). I'll post screenshots of the exact places if I can.
hiker {l Wrote}:
Also need to get the karts to stop tumbling so easily. I don't think modding roll-influence will solve it entirely. Maybe needs some angular damping? Not sure I want to touch that param, though. What's it even do? No code comment on it. (Tumbling might also be something that needs to be addressed in the game code, itself.)[/list]

I actually haven't seen too much of the karts toppling over in the last months (well, I see some of it, but typically during more crazy physics tests I do). I've seen karts taking a bit too long to get back into horizontal (e.g. if you drive with one side of the wheels on the paper plane in math class), but was always struggling to reproduce the issue to be able to improve it ... so in the end I decided that it might actually be quite rare ;)

Just drive Adumy or Sara the racer (especially) and crash into a roadside object at high speed. You'll see what he means by tumbling. ;) It gets really fun when the AI is driving Sara and you hit her with a heavy kart at high speed! :lol:
I'm know pretty much everywhere else on the internet as "Kpenguin"
"Profanity is one language all computer users know" - Murphy's 50th Law of Computers
Software bugs are impossible to detect by anybody except the end user - Murphy's 31st law of software
Each computer code has five bugs, regardless of how many bugs have been already found - Murphy's 50th law of software
"That's not a bug, it's an undocumented feature!"
User avatar
ArDanWol
 
Posts: 181
Joined: 07 Nov 2014, 17:36
Location: Ohio, USA

Re: Kart Config Modding Project

Postby samuncle » 06 Mar 2015, 18:48

We are open improvement to the kart system. Now you have to understand several things

1) It's relatively new we still need to tweak it
2) It's a nightmare to balance it. Let's imagine 3 parameters, 15 karts, 4 difficulties level, 20 tracks. Which means 3 * 15 * 4 * 20 = 3600 different cases. Which is a HUGE amount of work to test them and be sure everything works and is balanced. AS a rule of thumb I prefer to keep the number of options low and be kiss (keep it simple). 3 classes, well done is sufficient IMHO. Light, Medium, Heavy. We might do some karts with particular options (like nolok).
3) One interesting parameter that could be added is nitro consumption it would be relatively easy to add something like that and that (IMHO) would not influence too much the balance
Image
User avatar
samuncle
STK Moderator
 
Posts: 752
Joined: 16 Mar 2010, 21:28

Re: Kart Config Modding Project

Postby hiker » 06 Mar 2015, 23:33

ardanwol {l Wrote}:
hiker {l Wrote}:What exactly are the kart-track collision problems you have? I am aware of some karts apparently colliding with the ground, and I have seen karts now sometimes stuck at a wall. Is it one of those?

I have had just a few kart/track collision problems. They seem to happen in Cocoa Temple, right after you jump over the road, on Snow Mountain, and in Old Mine right before the finish line (once, just about every kart in a 10 kart race had a track collision and ended up in the pond beside the road :D ). I'll post screenshots of the exact places if I can.

Yes, that would be great.

...
hiker {l Wrote}:I actually haven't seen too much of the karts toppling over in the last months (well, I see some of it, but typically during more crazy physics tests I do). I've seen karts taking a bit too long to get back into horizontal (e.g. if you drive with one side of the wheels on the paper plane in math class), but was always struggling to reproduce the issue to be able to improve it ... so in the end I decided that it might actually be quite rare ;)

Just drive Adumy or Sara the racer (especially) and crash into a roadside object at high speed. You'll see what he means by tumbling. ;) It gets really fun when the AI is driving Sara and you hit her with a heavy kart at high speed! :lol:

Ah, I typically don't drive those karts. We have a mechanism in place that will reduce the height of the physical objects in case of a tall kart, but I have to check if that actually works for the newer kart. Adiumy always had problems - I think the kart is just too short.

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby hiker » 06 Mar 2015, 23:38

samuncle {l Wrote}:We are open improvement to the kart system. Now you have to understand several things

1) It's relatively new we still need to tweak it
2) It's a nightmare to balance it. Let's imagine 3 parameters, 15 karts, 4 difficulties level, 20 tracks. Which means 3 * 15 * 4 * 20 = 3600 different cases. Which is a HUGE amount of work to test them and be sure everything works and is balanced.

I think it is actually impossible to balance them that generally - we would have to accept that certain tracks favour certain type of karts - but that only means that it is more work to balance it all.

AS a rule of thumb I prefer to keep the number of options low and be kiss (keep it simple). 3 classes, well done is sufficient IMHO. Light, Medium, Heavy. We might do some karts with particular options (like nolok).

I would actually prefer more variety. Just three classes is rather boring.

3) One interesting parameter that could be added is nitro consumption it would be relatively easy to add something like that and that (IMHO) would not influence too much the balance

We already have this parameter, but (as mentioned) I should check if this still works as expected. We changed the nitro behaviour to use one unit of nitro whenever you press it (as opposed to use a certain smaller amount every frame you have it pressed, which resulted in kind of cheating by pressing nitro often for a shorter time).

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby NowhereMan » 07 Mar 2015, 00:53

Yay! Comments! :D

:!: Warning: long post! :shock: :!:

hiker {l Wrote}:
NowhereMan {l Wrote}:I'd like to start by thanking solistice for going to so much effort to provide semi-customized kart configs (yay!), as well as a quick way to represent that in the kart selection menu. Because of his efforts, I felt encouraged to expand on the idea. Naturally, I've run into some problems.

It would be great if someone would look and tune that part of stk :)

Certainly could use it, but if you're trying to hint at me to take it up, I'm going to have to dissapoint you. I'm not a programmer in any sense of the word. Give me something straightforward to work with (such as these config files), and I can do something with that. Otherwise, it'll have to be someone else. I'm not complaining, though. Everyone has their focus. If someone wants to help in that regard, I will personally be quite happy, but I'm not going to make any demands. ;)

hiker {l Wrote}:
Rather than 3 kart-types, I'd like to expand that into 5 chassis and 5 transmissions. This would give us 25 combinations to use for karts, leaving plenty of room for immediate expansion (at least among standard karts; obviously you could easily blow through these if you include addons). However, it appears the game won't allow me to define new kart tags in stk_config. When I tried and referenced them in a kart config file, it just used the default settings.

Can you post your example here? I think it should be possible to define your own types.

Sure, if you don't mind the post being ridiculously long. ;) I'm going to truncate a bunch for the sake of brevity. If this isn't clear, let me know and I'll attach a couple files for you to look at.

So, in stk_config, here's what I tried doing (pardon the formatting, but I'm doing a bit of copy-paste from different files which results in different indentations):
{l Code}: {l Select All Code}
....
             <mass value="350"/>

             <explosion time="1.5" radius="4"
                   invulnerability-time="6" />
         </heavy>
     </kart-type>

    <kart-chassis>
      <dainty>
   <stability
     chassis-angular-damping="0"
     chassis-linear-damping="0.2"
     downward-impulse-factor="5"
     roll-influence="0.2"
     smooth-flying-impulse="15"
     track-connection-accel="2"
     />

   <rescue
     height="2"
     time="1.2"
     vert-offset="0.0"
     />

   <bubblegum
     fade-in-time="1"
     speed-fraction="0.1"
     time="1.4"
     torque="500"
     />

   <zipper
     fade-out-time="3"
     force="200"
     max-speed-increase="18"
     speed-gain="5"
     time="4"
     />

   <slipstream
     add-power="3"
     collect-time="1"
     duration="3"
     fade-out-time="4"
     length="12"
     max-speed-increase="7"
     min-speed="6"
     use-time="7"
     width="5"
     />

   <swatter
     distance="3"
     duration="7"
     squash-duration="3"
     squash-slowdown="0.7"
     />

   <mass value="125"/>

   <plunger
     band-duration="1"
     band-fade-out-time="5"
     band-force="900"
     band-max-length="40"
     band-speed-increase="10"
     in-face-time="4 5 5.5 5.5"
     />

   <explosion
     invulnerability-time="8"
     radius="2"
     time="3"
     />

   <engine
     brake-factor="15.0"
     brake-time-increase="7"
     power="340 375 410 440"
     max-speed="17 22 27 32"
     max-speed-reverse-ratio="0.3"
     />
      </dainty>

      <light></light>

      <standard></standard>

      <heavy></heavy>

      <massive></massive>
    </kart-chassis>

    <kart-transmission>
      <universal></universal>

      <light>
   <startup
     time="0.2 0.7"
     boost="4 2"
     />

   <gear
     switch-ratio="0.5 1"
     power-increase="2.0 1.7"
     />
      </light>

      <standard></standard>

      <heavy></heavy>

      <super></super>
    </kart-transmission>

Note that I didn't include turn, skid, and nitro. I stated why this is necessary in my OP.

After that, I open a kart.xml file. Let's use Adiumy as an example. Here's the original:
{l Code}: {l Select All Code}
<kart name              = "Adiumy"
      version           = "2"
      model-file        = "adiumy.b3d"
      icon-file         = "adiumyicon.png"
      minimap-icon-file = "adiumyicon.png"
      shadow-file       = "adiumyshadow.png"
      random-wheel-rot  = "true"
      type              = "medium"
      groups            = "standard"
      rgb               = "0.00 0.70 0.00" >

I would like to be able to do this:
{l Code}: {l Select All Code}
<kart name              = "Adiumy"
      version           = "2"
      model-file        = "adiumy.b3d"
      icon-file         = "adiumyicon.png"
      minimap-icon-file = "adiumyicon.png"
      shadow-file       = "adiumyshadow.png"
      random-wheel-rot  = "true"
      chassis      = "dainty"
      transmission   = "light"
      groups            = "standard"
      rgb               = "0.00 0.70 0.00" >

Then all I should need to do is separately copy-paste the predifined turn, skid, and nitro params for each kart. Still a bit of a hassle, but not nearly as bad.

hiker {l Wrote}:
Second, I currently have turn, nitro, and skid parameters split between chassis and transmission. Obviously, this doesn't work since the game only recognizes the first instance of an xml tag. But, taking the nitro tag as one example, engine-force needs to be based on the chassis or heavy karts with weak transmissions won't get enough power while light karts with powerful transmissions will get too much. However, the rest of the nitro settings should be based on the transmission since that's the part of the engine I think should be used to determine all the efficiency factors. Similar thinking goes into the other tags I'm trying to split.

Partly this, it would require additional code to handle this - but the main issue: how can you guarantee (at least to a certain degree) that all 25 combinations are balanced?

I'm a lone person doing this as a personal project I thought others might like. If someone else can help with the balancing (or any other) aspect, that would be great! But on my own, I don't know of any way to guarantee it's balanced. For now, I use a spreadsheet to crunch the numbers and keep track of corrections, and then test the karts myself and see how they drive. Are they fun to drive? Can I compete well on any track with any kart? (Whether or not a track is winnable can depend on the number of laps and number of AI karts you choose, so I don't go that far with the criteria. That said, I do expect to be able to win a 20 lap race against any number of AI karts. So far, that holds true. ;) ) Do they all have unique driving characteristics? Those are the primary questions I try to answer. If I can say yes to them all, then that would be a good start, I think.

For the first question, ignoring stability issues, I can answer yes for every kart. Once stability is dealt with, that should be an uncatagorical affirmative.

To the second question, I haven't tested every kart on every track, but with those I have tested (most karts on most tracks), the answer is yes, leading me to feel confident about the others.

To the third question, some of this depends on the kart design, and as things currently stand, it's prohibitively difficult to test different config options on the same kart. I can only tell you that, so far, I have noticed a definite difference in kart handling between them all, and it's not all due to the kart design.

I did not try to balance them to win the nitro challenge in story mode. Mostly because I find those challenges to be boring and tedious, so I just don't care about it. Universal transmissions can't hold enough nitro to complete it. This could be fixed, but the numbers I'm using right now seem to work pretty well for normal racing, so the only tweaking I intend to do is with that in mind. Of course, if someone comes along and presents a different set of numbers that can also allow every kart to complete the nitro challenge, I'm not going to ignore it. It just isn't on my priority list.

I also did not try to balance them for AI use. The AI (such as it is) needs fixing. Badly. I think you know this already, so I won't belabor the point. ;) In any case, trying to balance the options to make up for poor AI isn't on my todo list. However, I certainly won't complain if you take my work and change it to fit your needs. And again, if someone presents changes that address that issue, I won't ignore it out of hand. But my priority is always going to be on making the karts fun for players to drive. (If I could code, I'd fix the AI, too, but since I can't, I'll just have to wait for someone else to do the work.)

And as a general note, I look mostly at SuperTux difficulty primarily because that's where the greatest changes are happening. If a kart drives well at that setting, it should drive well at the lower settings. If you have any doubts, please do drive some karts at lower diff settings and see how they handle. The basic ratios between the different chassis and transmissions should be similar, if not exactly the same, no matter the difficulty. (Some ratios are going to be different because I don't want to use long decimal parameters. Please concede that much in your critique. ;) )

hiker {l Wrote}:
Third, looking to the future, I'd like to add three basic engine types. .... Thus, the affected settings would need to be modified percentage-wise, which obviously is not currently possible. I'd like to put it on the wish-list, though, for anyone who can code and has the time and will (and assuming it's trivial or at least not too non-trivial).

Well, it can be done of course, but you have to also consider the fact that we have 4 different difficulty settings to take into account.

Naturally. And naturally, I don't have even the slightest inkling of how much trouble that would be to code. Maybe it's trivial, but then again, maybe it requires ripping out great heaping chunks of code and doing all sorts of Byzantine cross-library hacking. So like I said, it's on my wish-list should someone feel up to working on it, but I'm not going to make any demands. Even if it never happens, I'll keep plugging away with what's available, and who knows, maybe I'll figure out some other solution.

hiker {l Wrote}:
swatter - lighter karts have shorter reach and duration; if I'm understanding the params correctly, being squashed by lighter karts shouldn't slow you down as much and shouldn't last very long

Well, we don't need any realism tbh - but balanced karts. So, whatever works is fine for me :)

Actually, what I wanted was for lighter karts to be squashed harder and longer, but that's not how the params function, so this is my backup plan. It's still pretty interesting, I think.

hiker {l Wrote}:I often use an arena to skid in circles ;) If you can build stk yourself (not that hard), I can give you a patch that would print x,y,z position of the kart. You can plot this to visualise the affect of different parameters on the turn radius.

Ooh! I'll get back to you on that soon as I manage to build it. :)

hiker {l Wrote}:I always anticipated that some features should be added to STK to allow for heavier karts to push other karts out of their way.

Would be nice, but just setting a high enough mass seems to do the trick.

hiker {l Wrote}:
Overall, heavier karts are tankier while lighter karts are zippier. Heavier transmissions are better for twisty tracks (i.e. minigolf) where you have to slow down a lot, so getting back up to speed is important, while lighter transmissions are better for gentler tracks (i.e. barnyard). There is no outright race-winning combo. You should be able to win (or at least compete well, depending on your lap and kart number settings) on any track no matter which kart you drive, so choose one that suits your preferences. I prefer heavier transmissions, myself, but the lighter transmissions are not to be dismissed (I had plenty of fun winning with ElePhPant--heavy chassis, universal transmission--on a 16 kart 20 lap minigolf race).

The interesting and difficult question: how do you want to verify this? For example, if heavier karts get an advantage from collisions, the driver needs to use this feature (and the AI won't know anything about trying to crash into people).

Eh? The AI is always trying to ram me (and each other) off the road. (At least until I lap them, at which point they ignore me for the most part.) Have you ever watched how the AI start? After a second, they all do hard turns into each other like it's a frickin' crash derby. The problem isn't getting the AI to hit other karts, it's getting them to recognize that if they're in a light kart (relative to another), they should try to avoid it. And not to sound like a skipping record, but again, that's a problem with the AI, not the config settings.

And to pre-empt the obvious rebuttle, no, I don't expect the AI to handle weird or outlandish settings. But I don't think the settings I'm using fall into either category. I'm using what I think are fairly rational settings--settings which are perfectly drivable by players, even as they are right now--so I don't see a need to scale them back for the sake of bad AI. And, because the AI can (and does) have instant reaction time, by rights, it should be able to better take advantage of those settings. The fact that it can't is proof that the AI doesn't work well. I don't mind tweaking things, but if I have to choose settings so the AI can take full advantage of them, I might as well leave it to the defaults. Fix the AI, first. Then I'll be more receptive to balancing for the AI. ;)

Anyway, leaving that specific example behind, I'm open to suggestions and help for testing methodology. I don't have the resources or skill to do comprehensive testing, myself. But, for games at least, I'm plenty used to looking at numbers and seeing how they interact without ever playing. So even before I started what little testing I can do, I was pretty confident the numbers I used were at least in the ballpark, if not pitch perfect. I've refined them some with the testing I've done. Also found that some settings didn't do what I thought they did, so made corrections on those. But again, help and suggestions would be quite welcome. :)

hiker {l Wrote}:What exactly are the kart-track collision problems you have? I am aware of some karts apparently colliding with the ground, and I have seen karts now sometimes stuck at a wall. Is it one of those?

Correct. I've also noticed it's worse at higher speeds, so it's easier to reproduce on higher diff settings.

hiker {l Wrote}:Re suspension: I had to tweak the suspension from 0.8.1 to the next release in order to better support 'driving on the wall' - which is not really included in this release, but if you compile yourself (or just download the tracks from stk-assets) you can have a look at the Newton track.

Sounds cool. Let's see how good I am at building from source, first. ;)

hiker {l Wrote}:Iirc I had to re-activate the downward impulse because of the Newton track :( On the other hand, that might indeed cause kart-track collision in some cases *sigh* Physics are a pain :)

So true. And to be clear, I'm not faulting you. I understand the need to make these kinds of changes for "anti-grav" driving. Being able to drive in loops is something I've been looking forward to, too. :D If there's nothing in the game code that can solve the issue, I'll just keep plugging away at the config numbers until something sticks.

hiker {l Wrote}:
In 0.8.2, ending the skid is jerky, so that needs smoothing. Works great in 0.8.1, though. Not sure why the discrepancy.

Jerky? You mean the pretty much instantaneous straightening of the kart? That's a thing I have been wanting to improve for a long time ... never got around to that :) It took us forever to tune the direction in which you would leave a skid :P

Yep, that's the one! Well, I don't feel so bad about not being able to figure out a solution, now. :lol: Still, it does work better in 0.8.1 for some reason, and that's a head-scratcher for me.

hiker {l Wrote}:I actually haven't seen too much of the karts toppling over in the last months (well, I see some of it, but typically during more crazy physics tests I do). I've seen karts taking a bit too long to get back into horizontal (e.g. if you drive with one side of the wheels on the paper plane in math class), but was always struggling to reproduce the issue to be able to improve it ... so in the end I decided that it might actually be quite rare ;)

This is another one that's easier to reproduce at higher diff settings. And especially on twisty tracks. I'm always getting Konqi port-over-starboard on minigolf, and I consider that kart to be very stable, if not the most stable of all. I'm sure part of it is that the karts are taking too long to get righted, so they keep bouncing around, but there really shouldn't be a reason in most cases for the karts to start tumbling in the first place. I make my comparisons with 0.8.1. If a kart doesn't tumble in 0.8.1 under the same (or worse) conditions, then I consider that a problem. (I'd prefer to even improve on it, some, but for now, I'll be ecstatic if I can just achieve parity.)

hiker {l Wrote}:I hope I didn't sound too negative ;) Getting more kart types would be really great, but from the previous work I know that it's difficult and easy to get wrong - and while I really would love to have two or three main categories, which combines gives us dozens of different karts, balancing them might be difficult - esp. if you would also consider that for example heavier karts would get a benefit by being able to push other karts around more. This either needs to be tested by human vs human games, or the AI would need to be improved to use this features.

You didn't come off at all negative to me. :) And hopefully I don't come off combative or negative, either. If so, I apologize. I appreciate the interest and feedback. Even when I'm basically saying "no" in response, I'm not doing so without a reason. (Might not be a reason you like, but we can't have everything, can we? ;) ) And if you have a counter-argument that you think can persuade me, by all means, let me have it.

I think your worry about heavier karts is unfounded. It's not as simple as you make it sound to push around other karts. I urge you to download the modded kart files I attached in the OP and try them out. Heavier karts can push lighter karts around, but lighter karts are generally more nimble, so they can avoid it. But yes, I agree there needs to be more and better testing to make sure this and other settings aren't unbalanced.

hiker {l Wrote}:Just for the record: us devs from the core team won't have time to look into this in the near future, since we want to get a release candidate out asap. But we are certainly interested in that,

No worries. There's plenty here to keep me busy, as is. Whenever you get around to it is fine by me.

ardanwol {l Wrote}:I have had just a few kart/track collision problems. They seem to happen in Cocoa Temple, right after you jump over the road, on Snow Mountain, and in Old Mine right before the finish line (once, just about every kart in a 10 kart race had a track collision and ended up in the pond beside the road :D ). I'll post screenshots of the exact places if I can.

I can get track collisions on pretty much any track. Managed it on a reverse Lighthouse race the other day driving up the chicane. :/ Some karts are better than others, too. Xue seems to collide at the slightest hint of change. On the other end, Gnu glides over dips and bumps the other karts collide against. (Tumbles at the push of a feather, though. *sigh*)

ardanwol {l Wrote}:Just drive Adumy or Sara the racer (especially) and crash into a roadside object at high speed. You'll see what he means by tumbling. ;) It gets really fun when the AI is driving Sara and you hit her with a heavy kart at high speed! :lol:

It's even more fun when it's you driving Sara. (Travel places; see the world! Upside down! :p )

samuncle {l Wrote}:We are open improvement to the kart system. Now you have to understand several things

1) It's relatively new we still need to tweak it

Completely understandable. No arguments from me on that.


hiker {l Wrote}:
samuncle {l Wrote}:2) It's a nightmare to balance it. Let's imagine 3 parameters, 15 karts, 4 difficulties level, 20 tracks. Which means 3 * 15 * 4 * 20 = 3600 different cases. Which is a HUGE amount of work to test them and be sure everything works and is balanced. AS a rule of thumb I prefer to keep the number of options low and be kiss (keep it simple).

I think it is actually impossible to balance them that generally - we would have to accept that certain tracks favour certain type of karts - but that only means that it is more work to balance it all.

Besides which, I think those numbers are way off base.

You can remove the track parameter because that's not something that needs balancing through kart configs. It's necessary for the karts to be able to handle various track situations,, and we can use different tracks to help test those situations, but actually racing the tracks is up to the player and AI. And as for those situations, there are only a few that really need testing. Steep hills, tight corners, jumps, track getting sideways/upside-down (currently, I can only test that on Cocoa), hard bumps/dips,....there's really not that much that needs testing. If a kart can handle the worst, then it can handle easier stuff, too. (On that note, I'd really like to see old Minigolf come back so I could test its switch-back in 0.8.2. I'm pretty sure it won't drive the same as in 0.8.1, but until I can test it, I won't know what I need to change.)

As for difficulties, there are very few config options touched by that: engine power and max-speed, and plunger in-face-time. That's pretty much it. So maintain the power-weight ratios across difficulties and don't over-tweak the plunger settings. All that's left then is tweaks to improve how the karts handle. In other words, if a kart drives well at SuperTux diff, then it'll be fine at lower diffs because the lower power and speeds and shorter plunger times make it easier to drive the karts for both players and AI.

Last, we can also ignore the number of karts. Not because it's necessarily unimportant, but because it's irrelavent. Karts are what take the config parameters in the first place. We would actually be limiting how much we need to test if we included karts. I'm providing 25 combinations as a starting point. There aren't that many karts in the game as standard, so it's pretty much impossible to test all 25 combinations without including addon karts. (Or we can duplicate existing karts, I guess.)

Or were you (samuncle) suggesting we should test every possible combination with every kart? Because if so, I have to point out there is no reason to do so. For example, why should Adiumy have anything heavier than a light chassis? Or why should Pidgeon or Suzanne, both karts that look like they can handle off-roading, get anything less than a heavy transmission? So no, we don't need to test every combo with every kart. At most, pick the combos that make sense and test those. For my part, I decided to try to make sure each standard kart had a unique combo that made sense. Of course, if you want to make an in-game method for choosing chassis and transmissions (and other potential kart settings), then I will agree we need to test all possible combinations. Until then, though, it's a waste of time.

TL;DR: I don't have the resources to throw everything and the kitchen sink at testing my settings. I have to test smart, not hard. Please, at least respect my limitations. :)

hiker {l Wrote}:
samuncle {l Wrote}:AS a rule of thumb I prefer to keep the number of options low and be kiss (keep it simple). 3 classes, well done is sufficient IMHO. Light, Medium, Heavy. We might do some karts with particular options (like nolok).

I would actually prefer more variety. Just three classes is rather boring.

And why bother with a config file if you're just going to limit it? 25 combos is really small when you consider that each parameter could be changed to practically anything, thus providing limitless options. What's really impressive to me (in a sad way) is how long STK has been around and had these config options and no one has touched them until now.
hiker {l Wrote}:
samuncle {l Wrote}: 3) One interesting parameter that could be added is nitro consumption it would be relatively easy to add something like that and that (IMHO) would not influence too much the balance

We already have this parameter, but (as mentioned) I should check if this still works as expected. We changed the nitro behaviour to use one unit of nitro whenever you press it (as opposed to use a certain smaller amount every frame you have it pressed, which resulted in kind of cheating by pressing nitro often for a shorter time).

Right. And I've already made some changes in that regard in the nitro settings. Heavier transmissions hold more nitro but also use more, so relatively speaking, they can't boost as often because the nitro tank:consumption ratio is worse. (Currently 15, 10, 8.3, 7.5, 7 -- which obviously could use work, and I'll come back to it again at some point, but is still quite playable.) The main issue is the AI, which doesn't know to use nitro only once and then wait for nitro duration (you could use fade-out-time as an extra fudge factor--maybe based on difficulty) before hitting it again.

Visually, would be nice to see the nitro boost flames last for the entire duration, too, but that's me being nitpicky. :D

Holy rinky-doodle, was that long! Whew!
NowhereMan
 
Posts: 16
Joined: 04 Mar 2015, 23:13

Re: Kart Config Modding Project

Postby hiker » 07 Mar 2015, 02:33

Another encyclopedia to read ;) Ah no,just one post ;) Don't have time to read it all, but just 2 comments:
...
NowhereMan {l Wrote}:Certainly could use it, but if you're trying to hint at me to take it up, I'm going to have to dissapoint you. I'm not a programmer in any sense of the word. Give me something straightforward to work with (such as these config files), and I can do something with that. Otherwise, it'll have to be someone else. I'm not complaining, though. Everyone has their focus. If someone wants to help in that regard, I will personally be quite happy, but I'm not going to make any demands. ;)

I understood (or suspected) that. I think we should be able to implement some changes, though ideally I would prefer to give this to someone else (since just setting and combining parameters is simple, no need to really undestand physics) - I want to focus on GSoC work that needs to be merged in and of course networking.

What I meant is: we need someone to drive the kart physics (no pun intended ... I think), come up with suggestions ideas, tests things, provides feedback, combines suggestions from other people. I think you could do that ;)

One quick suggestion (without reading the rest); what we could try is instead of overwriting parameters (e.g. kart-specific engine values atm would overwrite the values from the kart type, which overwrite the default values), we could combine them. So you could specify: brake-factor default: 0.85 ; heavy kart: *1.2; whatever-gear-bonus: brake-factor *1.1 or so. If necessary even additive (+0.3).

Then a kart would specify: <physics type="medium" gear="whatever" ..> and we compute out the final values.

Certain combinations might need to be disabled, e.g. if they create non-competitive (or too good) karts.

I just remember that we also have a handicap system ... more complications ;)

I'll look at your files later, and will see what went wrong.

Cheers,
joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby NowhereMan » 07 Mar 2015, 03:55

hiker {l Wrote}:Another encyclopedia to read ;) Ah no,just one post ;) Don't have time to read it all, but just 2 comments:

I am very sorry. :cry:

What I meant is: we need someone to drive the kart physics (no pun intended ... I think), come up with suggestions ideas, tests things, provides feedback, combines suggestions from other people. I think you could do that ;)

Ah. :think: I'm not sure what all is involved with kart physics, but if it's mostly dealing with config settings or things related to that, I think I could manage. Once it gets into code, the only thing I can really offer is suggestions about what I think could help. If that's what you're looking for, then sure. :)

One quick suggestion (without reading the rest); what we could try is instead of overwriting parameters (e.g. kart-specific engine values atm would overwrite the values from the kart type, which overwrite the default values), we could combine them. So you could specify: brake-factor default: 0.85 ; heavy kart: *1.2; whatever-gear-bonus: brake-factor *1.1 or so. If necessary even additive (+0.3).

Then a kart would specify: <physics type="medium" gear="whatever" ..> and we compute out the final values.

Now that's a very interesting idea! :think: I'd have to see something a little more concrete to tease out how it would function, but first impression is this is almost exactly like what I had asked on my wish-list. So I'm all for working with this! :D

Certain combinations might need to be disabled, e.g. if they create non-competitive (or too good) karts.

Actually, I doubt this will be necessary for any official config you release. So let players mod as they wish. It's part of the fun of the game, IMO. And if someone wants a silly config setting, let them play with it. Who knows, it may draw them into contributing to the game later on. Also, when you get network play functioning, you'll need to have a way to ensure all players are using the same set of config files, but that was always going to be the case, anyway, so no change there.

I just remember that we also have a handicap system ... more complications ;)

Can we just disable that, please? The AI is already handicapped enough as is. :(
NowhereMan
 
Posts: 16
Joined: 04 Mar 2015, 23:13

Re: Kart Config Modding Project

Postby NowhereMan » 07 Mar 2015, 19:49

Quick post. Not sure if I'll have a chance later, but wanted to note a couple things I worked on last night.

Turns out, to mitigate tumbling, stability roll-influence needs to be lower, not higher. I thought the opposite because, well, who wants to make karts tumble more easily? That just doesn't make sense. Turns out, what doesn't make sense is, nevertheless, true. *sigh* I'll be setting this to 0 for all karts for now. If that keeps them grounded, I'll consider raising it a bit, but probably not by much.

Also, setting stability chassis-angular-damping higher appears to be helping with the end skid jerk problem. I say "appears" because I've gotten so used to the jerk that I'm worried I may be starting to compensate for it without thinking. In any case, started with 0.5, but I'm not sure if that's the best choice, so I'll be testing some other numbers to see what happens.

I'll try to update the attached files tomorrow after I've done some more testing.
NowhereMan
 
Posts: 16
Joined: 04 Mar 2015, 23:13

Re: Kart Config Modding Project

Postby Seebi » 07 Mar 2015, 20:05

Hi,

I like the ideas you have, especially because it gives you more opportunities to win a game :cool: .
I can try to implement your suggestions with chassis and transmissions. I will probably refactor/change some code for difficulties and handicaps too, to have an interface that's easier to use.

Handicaps aren't meant to handicap the ais, you can give yourself a handicap in multiplayer games (in the kart selection screen), which makes you slower, it takes longer to rescue, etc. It's meant for uneven skilled players, e.g. parents and kids or just friends to make it more difficult to win for one of them, that should make it more fun for both.

Handicaps (or per-player difficulties) are already using percentages so it shouldn't be needed to change them. The hardest part on tweaking the values will probably be to make the game fun and balanced (as mentioned so often :D ). I think max speed (and acceleration) are the most critical parts, so the slower and heavier karts need something in exchange for that. I like the idea that these karts get more boost from skidding, that would require more skill to drive them but you still have their other advantages.

Concerning the maximum speed, I don't think it's a good idea to go even further (more than 30). There are already issues, because you can "tunnel" through walls if you're fast enough (the maximum speed gets higher if you activate zipper, nitro and skidding boost). Increasing that would increase the chance for that to happen and it doesn't look good when you get regularly stuck in a wall. ;)


For the implementation side, I'm not completely sure where to put the absolute values (e.g. 30 as max speed) and where the relative ones (obviously there should be only one absolute value per property).
  • Define general values (which are used e.g. by the medium difficulty) and difficulties, per-kart-properties, etc. will only have percentages (e.g. the hard difficulty will be defined as "higher speed than medium")
  • Difficulties define absolute values, karts and the rest are relative
  • Each kart defines its absolute properties, that's probably the worst one :think:

That were my ideas so far, any suggestions and improvements are welcome.
User avatar
Seebi
 
Posts: 9
Joined: 07 Mar 2015, 03:18

Re: Kart Config Modding Project

Postby Tiger » 07 Mar 2015, 21:11

The idea is good in general, but IMO, the main drawback is other aspect: we still start from the last place. So, I would like a previous qualifying race as new feature. Until they allow this, the race will remain unfair. This is just my oinion. Maybe, some other gamers like this. :?
User avatar
Tiger
 
Posts: 46
Joined: 24 Oct 2014, 20:54

Re: Kart Config Modding Project

Postby ArDanWol » 08 Mar 2015, 00:15

I got the screenshots of my track collision tendency areas:

30_chocolate-2015.03.07_11.22.51.png
Right after I captured this screenshot, I got completely turned around because of a track collision.

This is right after the jump over the road in Cocoa Temple. As the attachment comments say, I got completely turned around right after I captured this screenshot because of a track collision.

mines-2015.03.07_18.06.32.png
The track collision problem area here is right where the wooden bridge meets the road.

This is in Old Mine right before the finish line. As the attachment comment says, the problem is where the wooden bridge meets the road. This is also where all the AI karts like to go swimming! :lol:

snowtuxpeak-2015.03.07_18.00.54.png
The problem here is right where the curve starts.

This is in Snow Mountain right where the cottages are. As the comments say, the problem is where the curve starts.

Hope this is helpful in determining problem areas. :)
I'm know pretty much everywhere else on the internet as "Kpenguin"
"Profanity is one language all computer users know" - Murphy's 50th Law of Computers
Software bugs are impossible to detect by anybody except the end user - Murphy's 31st law of software
Each computer code has five bugs, regardless of how many bugs have been already found - Murphy's 50th law of software
"That's not a bug, it's an undocumented feature!"
User avatar
ArDanWol
 
Posts: 181
Joined: 07 Nov 2014, 17:36
Location: Ohio, USA

Re: Kart Config Modding Project

Postby NowhereMan » 08 Mar 2015, 21:20

:lol: Okay, I tried setting stability chassis-angular-damping to 10 on a lark. Started the race and....aaaahh! I can't turn! I can't turn! *wham!* Into a wall. :lol:

Then tried setting it to 1. Same result. :think: Odd. :think: Tried setting it to 0.9, and I had full handling again.

Upshot: chassis-angular-damping is an on-off setting. If it's on, you can't turn. If it's off, you can. If this is working as intended, I'd really like to know the thought process that resulted in "we need a config setting that prevents karts from turning." Because that doesn't seem to me like a very useful thing to do--ever--in a racing game. (I could be wrong!)

In any case, looks like I have to go back to plan A (muck with skid parameters).

Seebi {l Wrote}:Handicaps aren't meant to handicap the ais, you can give yourself a handicap in multiplayer games....

Ah. Gotcha. Thanks! :)

Concerning the maximum speed, I don't think it's a good idea to go even further (more than 30). There are already issues, because you can "tunnel" through walls if you're fast enough (the maximum speed gets higher if you activate zipper, nitro and skidding boost). Increasing that would increase the chance for that to happen and it doesn't look good when you get regularly stuck in a wall. ;)

*sigh* I do appreciate the comments and suggestions from everyone, but I'd appreciate it even more if the concern trolling (not just from you) would stop, now. I'll explain briefly.

Only one person has bothered to download the files I've provided. I know this because I can read the little notes next to each file that say how many times they've been downloaded. That means, other than that one person, you have no clue whether your concerns are founded. Yet you expect me to take your concerns seriously. This is the epitome of concern trolling. Not cool, guys. Stop it. :|

*deep breath* *exhale*

Okay, I can tell you that the choices I made are fun to play for me. And I find them to be quite playable and relatively well balanced in general, despite the fact that there are still several problems to work out.

And the reasons for my choices are simple: having fun is the most important aspect of any game, and driving fast is kinda the point of a racing game. So in STK, if you're not driving fast, and you're not having fun, something is very seriously wrong. I found the default settings to be too slow (and certain other settings didn't feel fun), which made the game boring and tedious for me. So I changed them to suit myself. Now when I drive on SuperTux setting, it's at 32, which is fast and frenetic, and it makes me go wheeee!

And I absolutely love love love it when I can use the zipper, nitro, skid boost combo! Aaaaaah! So it looks like we're going to disagree on that point. And hitting bubblegum is fun, now, thanks to an increased fade-in-time. And karts don't all drive the same, which means I now drive all sorts of karts rather than just Konqi. And I could go on and on and on.

But recognizing that not everyone may like to drive that fast, or maybe they just aren't ready for it yet, I kept the lower difficulties, but modded a bit to provide what I think is a more reasonable (and tolerable) experience ladder. No more pointless baby steps. Novice is left essentially unchanged (still had to do some tweaking, of course). Intermediate is now just shy of where Expert used to be. Expert is basically the old SuperTux, and SuperTux is fast. As it should be.

Last, I'm not going to try to fix other problems with the game. I don't have the skills nor expertise. So karts are getting stuck in walls? I've experienced this, too. It sucks, I agree. I'd love to see that fixed. But changing the config settings will only paper over the problem, not fix it. Maybe its somethig with the track design. Maybe its something with the code. I don't know. But I do know that if it were working properly, it wouldn't matter what speed you were going, you wouldn't "tunnel" into walls. (Hmmm...maybe breakaway walls.... Require a certain amount of speed*mass to go through.... Well, just spitballing....)

For the implementation side, I'm not completely sure where to put the absolute values (e.g. 30 as max speed) and where the relative ones (obviously there should be only one absolute value per property).
  • Define general values (which are used e.g. by the medium difficulty) and difficulties, per-kart-properties, etc. will only have percentages (e.g. the hard difficulty will be defined as "higher speed than medium")
  • Difficulties define absolute values, karts and the rest are relative
  • Each kart defines its absolute properties, that's probably the worst one :think:

That were my ideas so far, any suggestions and improvements are welcome.


Well, since you asked.... :D

Here's my dream/wish (open to improvements):

Start with a base config file. This contains the base numbers for every kart setting. This doesn't necessarily need to be balanced, though balance can still be addressed here as needed. Instead, they need to be simple so that they can be easily modified. Once it's in place, the general modding rule should be "don't touch." (Well, it's more like a suggestion, but whatever. :lol: )

Difficulty config file. This will be a file that looks very similar to the base config file, but all of the settings here will be used for modding the base settings. There will also need to be a new setting for this file. Something like:
{l Code}: {l Select All Code}
<--! Difficulties:
   difficulty-numbers: a list of whole numbers from 1 to n, where n is the total number of difficulties desired. This is used for reference purposes as needed.
   
   difficulty-names: a list of names for the difficulties; must match the difficulty numbers; will be shown in the appropriate menus in the same order
   
   difficulty-images: a list of images to be used in the menus; matched in order with the names
   -->
<difficulties
    difficulty-numbers="1 2 3 4"
    difficulty-names="Novice Intermediate Expert SuperTux"
    difficulty-images="[list of image locations">
</difficulties>

Those are the parameters I could think of off the top of my head. There should probably be more, but none come to mind at the moment. Maybe difficulty-numbers is redundant? In any case....

All of the settings between the opening and closing tags will either modify or overwrite the base settings in the order of the listed difficulties. Math is allowed, and I'd like it if we could use at least semi-complex formulae if possible. So, if we assume plunger in-face-time was given a base value of 3, we could do the following:
{l Code}: {l Select All Code}
<plunger
  in-face-time="*1 (+5)/2 +1.5 4.5"
  />

And that would give us the current default setting for plunger in-face-time. 3*1=3. (3+5)/2=4. 3+1.5=4.5. And then overwrite with 4.5. :)

I realize the use of parentheses in the list might not work as I'd hope. My main concern here is we need a way to override the standard order of operations, and it needs to work at the start of the formula, too. If not this way, then something else.

Kart mod file. This file contains all the available kart mod sets. I.e. chassis, transmission, and anything else someone might think up. These are arbitrary sets of config options that use the same modding concept as in the difficulties config file. (I don't think it's possible to reference arbitrary tag parameters, though, so we'll have to twist this a bit. Maybe have certain generic parameters to look for? Is that even possible? Otherwise, unless someone has a better idea, we'll probably have to fall back to solistice's design decision, which is much more tedious.)

So, something like this, where base mass is 225:
{l Code}: {l Select All Code}
<--!
   Each option must begin with the word "kart" followed by a dash and then at least one unique character or number, or a unique set of characters and/or numbers. Each option must have at least one of the following parameters:
   
     number: how many versions there are of this option

     name: a list of the names for the versions
    
   Either parameter may be used to reference the options -->

<kart-chassis name="dainty light standard heavy massive">
  <mass value="-100 *1 +100 +200 +300"
</kart-chassis>

<kart-transmission
  number="1 2 3 4 5"
  name="universal light standard heavy super">
....
</kart-transmission>


Finally, there are the kart config files. Configuration options used here can either overwrite or further modify the settings. If you don't do anything with the file, the kart will use the base file, which in turn gets modified by the difficulty settings depending on what the player chooses in the appropriate menu.

But once kart mod sets are added, I'm not sure how to decide the order to apply the mods (including difficulty). Maybe there should be another parameter for them? Something like priority="n" where n is between 0 and some very high number. Then the settings are applied in order, lowest to highest. To start with, we could set the difficulty priority to...say, 1000? (Still make it a config setting so we can easily change it without having to rebuild the game every time.) This would leave plenty of room for people to include mod sets that have either earlier or later priority. (What should happen if two or more mod sets use the same priority? I'm stumped on how to handle that gracefully. Probably just have to make an arbitrary decision.)

Overall, I think the priority concept allows for a lot of flexibility. The downside is it could make for longer race load times as the game has to run through all the calculations for every kart before each race. OTOH, even decade old CPUs should be plenty fast enough for that kind of thing. It's not like we're having them perform calculus with imaginary numbers or something. ;)

So, here's a sample kart config where I've decided to further modify mass:
{l Code}: {l Select All Code}
<kart name              = "Adiumy"
      version           = "2"
      model-file        = "adiumy.b3d"
      icon-file         = "adiumyicon.png"
      minimap-icon-file = "adiumyicon.png"
      shadow-file       = "adiumyshadow.png"
      random-wheel-rot  = "true"
      chassis      = "dainty"
      transmission   = "2"
      groups            = "standard"
      rgb               = "0.00 0.70 0.00" >
<mass value="*0.8">
....
</kart>

So, we have a kart that uses the dainty chassis. According to kart-chassis (above), a dainty kart has a mass value of -100. That means we subtract 100 from the base. Earlier, we established the base mass value at 225. So 225 - 100 = 125. Then, the kart config file includes the mass setting which further multiplies the value by 0.8. This gives the kart a final mass value of 125 * 0.8 = 100. (Of course, I could have instead overwritten the mass value, setting it to 100, so if I later decided to tweak the dainty chassis, it wouldn't affect Adiumy.)

What all of this does is to allow us to make changes to the config settings in multiple ways. From wholesale changes, to groups of settings, to fine-tuning each kart individually. Settings can be modified multiple times if desired, overwritten at any stage, or never touched at all. While it permits complex interactions, it also allows someone to completely ignore them all in favor of their own, home-brewed settings. Balance can be achieved at any stage of the process. It's a win all the way around (except for the person who takes on the task of making it possible in the first place :lol: ).

Tiger {l Wrote}:The idea is good in general, but IMO, the main drawback is other aspect: we still start from the last place. So, I would like a previous qualifying race as new feature. Until they allow this, the race will remain unfair. This is just my oinion. Maybe, some other gamers like this. :?

Well, that's not something that can be addressed in the kart config files, obviously. Or at least not that I'm aware of.

However, considering how bad the AI is, I consider starting last to be a suitable handicap for the player. In a 20 kart race, I can almost always pass at least 1/2 (or thereabouts) in the first lap, and the rest in the next 2-5, depending on the track and my luck with powerups. Fewer AI karts makes it easier. The AI just isn't that difficult, even at it's best.

In any case, I'm a skipping record on this subject, but until the AI is fixed, a lot of balance issues can't be properly addressed, including this one. Maybe as a stop-gap measure, the player's starting position could be randomized? (Actually, that could be an interesting race option even without other considerations.)

ardanwol {l Wrote}:I got the screenshots of my track collision tendency areas:

I can verify all of those. There's plenty more besides. However, there's another thread for that issue, so let's keep it there. :)

Anyway, updated the files to use 0 for stability roll-influence.
NowhereMan
 
Posts: 16
Joined: 04 Mar 2015, 23:13

Re: Kart Config Modding Project

Postby NowhereMan » 10 Mar 2015, 06:22

So, I had skid revert-visual-time set too low which was what was causing the end-skid jerk. I discovered this when I returned it to 0.7. That still feels too mushy for my taste, though. 0.6 feels okay, and I've been trying 0.55, as well.

But having played at 0.5 for so long, now, I think I've started to get the hang of it. It's twitchy, to be sure, but once you know how to anticipate it, it's kinda nice to have that immediate reaction. Not newbie friendly at all, though, so I plan to change it once I've decided on a more forgiving setting that's still responsive. (If we had better config control, I could mod it based on difficulty as well. Then I could use more lenient settings at lower difficulties while using the tighter settings at higher difficulties. But since that's not an option, this'll have to do.*)

For the curious, I had it set lower because I did a lot of my initial testing in 0.8.1, and it worked fine there. I just brought the numbers over into 0.8.2 and made some obvious changes before posting here. I'm not surprised there are differences, but sometimes I forget which changes cause which effects. (In other words, I was a dumb-dumb. :oops: And this probably won't be the last time.)

Also, I've tried some preliminary changes to the various suspension parameters in an effort to mitigate or remove the kart-track collision problem. So far, it's been a dismal failure. I'm not giving up on that angle just yet, but it doesn't look promising. :(

--
* Actually, I'd like to be able to decouple some or all aspects of the kart config options from the difficulty settings. I'd rather have harder difficulties be the result of better AI, and then allow players to choose racing circuits or divisions (or whatever term you'd like to use) which would determine engine power, top speed, and the other kart factors that the current difficulty settings are applied to. Whether or not this is feasible, I don't know, but assuming the best, I guess that's another config file to include in my config dream/wish (unless someone has a better idea).
NowhereMan
 
Posts: 16
Joined: 04 Mar 2015, 23:13

Re: Kart Config Modding Project

Postby hiker » 10 Mar 2015, 13:40

NowhereMan {l Wrote}::lol: Okay, I tried setting stability chassis-angular-damping to 10 on a lark. Started the race and....aaaahh! I can't turn! I can't turn! *wham!* Into a wall. :lol:

Then tried setting it to 1. Same result. :think: Odd. :think: Tried setting it to 0.9, and I had full handling again.

Upshot: chassis-angular-damping is an on-off setting. If it's on, you can't turn. If it's off, you can. If this is working as intended, I'd really like to know the thought process that resulted in "we need a config setting that prevents karts from turning." Because that doesn't seem to me like a very useful thing to do--ever--in a racing game. (I could be wrong!)

Yes, you are wrong: angular damping is a fraction by which the angular velocity is reduced. It is clamped to be between 0 and 1 - and obviously if you set it to 1, all of the angular velocity is 'damped', so no turning, while setting it to 0 will result in the biggest angular velocity.

...
Concerning the maximum speed, I don't think it's a good idea to go even further (more than 30). There are already issues, because you can "tunnel" through walls if you're fast enough (the maximum speed gets higher if you activate zipper, nitro and skidding boost). Increasing that would increase the chance for that to happen and it doesn't look good when you get regularly stuck in a wall. ;)

*sigh* I do appreciate the comments and suggestions from everyone, but I'd appreciate it even more if the concern trolling (not just from you) would stop, now. I'll explain briefly.

Could you please be VERY careful about accusing people who want to help you to be trolling? Seebi is an experienced contributor who is trying to help you!

Only one person has bothered to download the files I've provided. I know this because I can read the little notes next to each file that say how many times they've been downloaded. That means, other than that one person, you have no clue whether your concerns are founded. Yet you expect me to take your concerns seriously. This is the epitome of concern trolling. Not cool, guys. Stop it. :|

It's not necessary to test your values, it's a simple restriction of how the physics engine is used atm. You might not be aware of it, but the physics engine runs at fixed 60 FPS. If the speed of a kart is say 60 m/s, it will move 1 m per frame. If that kart is less than 1 m long, it can pass completely through a plane in that time. It has nothing to do with your values. Now I am not saying that this can't be changed,but this is the way it is atm.

Additionally, we actually had a ticket opened by a very experienced player actually asking to make karts a bit slower. While this is of course not really decided yet, most developers seem to agree that the top speed is quite good (feedback welcome ;) ).

...
And the reasons for my choices are simple: having fun is the most important aspect of any game, and driving fast is kinda the point of a racing game. So in STK, if you're not driving fast, and you're not having fun, something is very seriously wrong.

I might partly disagree with that. Take the Old Mines track: if you go into the wooden bridge section a bit too fast, you lose contact with the ground (i.e. are flying), but without the feeling of a big jump - very annoying (imho). Going faster will make this problem even more severe. Tracks need to be designed with the physics in mind, so if you make the game faster, other locations might suffer similar problems. The same problem later in the same track, when you go up into a cave - there is a 'don't drive here' sign, but still if you are too fast you can't avoid crashing into the sign.

Admittedly, forcing players to slow down increases the skill and therefore fun of the game, but this kind of losing control (as opposed to a jump) feels wrong to me.

...
Last, I'm not going to try to fix other problems with the game. I don't have the skills nor expertise. So karts are getting stuck in walls? I've experienced this, too. It sucks, I agree. I'd love to see that fixed.

*grin* As Seebi has said, it is caused by the karts being to fast for their size and the physics framework. Changing that is possible, but difficult (e.g. making the physics run at higher fps will negatively affect performance, maybe even stability of the physics simulation - e.g there are certain tolerances build in, which probably depend somewhat on the size of the objects and frame rate, ... 60 FPS is the recommended value for bullet).

But changing the config settings will only paper over the problem, not fix it. Maybe its somethig with the track design. Maybe its something with the code. I don't know. But I do know that if it were working properly, it wouldn't matter what speed you were going, you wouldn't "tunnel" into walls.

It's a basic restriction of the physics engine (and other games have the problem, too, check for 'tunneling'). There are better solutions, but they are a lot more expensive, which makes STK run slower. With a base speed of 30 m/s, we can reach around 50 m/s top speed (iirc, maybe slightly less or more), which is 180 km/h. No problem if we would simulate a real live kart (because of its size), but our scale is much smaller, so moving 1 m / frame with a kart 1 m long is a problem.

Still, if we implement a more flexible way of specifying the physics settings, we could use some of your values in the game, but leave the faster ones as a mod. We just want to avoid that people discover (too many) problems, resulting in bug reports and wasted time.
...
Difficulty config file. This will be a file that looks very similar to the base config file, but all of the settings here will be used for modding the base settings. There will also need to be a new setting for this file. Something like:

We can't easily change the difficulties, since they tie into the challenge system. If we have only two difficulties, the challenges don't make sense, if we have more than three, then we need to decide which difficulties to use. it might also be confusing for the player to have too many values.

...
Overall, I think the priority concept allows for a lot of flexibility. The downside is it could make for longer race load times as the game has to run through all the calculations for every kart before each race. OTOH, even decade old CPUs should be plenty fast enough for that kind of thing. It's not like we're having them perform calculus with imaginary numbers or something. ;)

I don't have enough time to discuss the implementation, but don't worry about the time requirements for doing this.

Tiger {l Wrote}:The idea is good in general, but IMO, the main drawback is other aspect: we still start from the last place. So, I would like a previous qualifying race as new feature. Until they allow this, the race will remain unfair. This is just my oinion. Maybe, some other gamers like this. :?

Well, that's not something that can be addressed in the kart config files, obviously. Or at least not that I'm aware of.

That can actually be set in the player's config.xml file, but this is actually off topic here in this thread :)

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby ArDanWol » 10 Mar 2015, 15:07

Seebi {l Wrote}:Concerning the maximum speed, I don't think it's a good idea to go even further (more than 30). There are already issues, because you can "tunnel" through walls if you're fast enough (the maximum speed gets higher if you activate zipper, nitro and skidding boost). Increasing that would increase the chance for that to happen and it doesn't look good when you get regularly stuck in a wall. ;)


hiker {l Wrote}:Additionally, we actually had a ticket opened by a very experienced player actually asking to make karts a bit slower. While this is of course not really decided yet, most developers seem to agree that the top speed is quite good (feedback welcome ;) ).

Nowhereman {l Wrote}:And the reasons for my choices are simple: having fun is the most important aspect of any game, and driving fast is kinda the point of a racing game. So in STK, if you're not driving fast, and you're not having fun, something is very seriously wrong.


I might partly disagree with that. Take the Old Mines track: if you go into the wooden bridge section a bit too fast, you lose contact with the ground (i.e. are flying), but without the feeling of a big jump - very annoying (imho). Going faster will make this problem even more severe. Tracks need to be designed with the physics in mind, so if you make the game faster, other locations might suffer similar problems. The same problem later in the same track, when you go up into a cave - there is a 'don't drive here' sign, but still if you are too fast you can't avoid crashing into the sign. Admittedly, forcing players to slow down increases the skill and therefore fun of the game, but this kind of losing control (as opposed to a jump) feels wrong to me.


I agree with Seebi and Hiker. Personally, I think the top speed is just about right. I can go fast if I want to, but I don't think we should raise the top speed any higher than it is.

NowhereMan {l Wrote}:Only one person has bothered to download the files I've provided.


That was me. :) Sorry I haven't provided any feedback yet. I've had a busy weekend and didn't get the chance to play STK more than 5 minutes. The only kart that I tried with your mod so far was Amanda. She handled pretty well overall, but the main thing I didn't like was how the nitro continued providing a boost after you shut it off. Maybe you could just turn the consumption down so that you would get the same amount of boost for the same amount of nitro, but only when you want it. Also, did you raise the top speeds on the karts? I can't tell very well because the numbers aren't on the speedometer anymore, but it seemed I was going a little to fast for Novice mode with a rather heavy kart.

Nowhereman {l Wrote}:And hitting bubblegum is fun, now, thanks to an increased fade-in-time.


Yes!!! I love the increased fade in time with your mod!!! I hated running into bubble gum before, but now I hit it on purpose! :D
I'm know pretty much everywhere else on the internet as "Kpenguin"
"Profanity is one language all computer users know" - Murphy's 50th Law of Computers
Software bugs are impossible to detect by anybody except the end user - Murphy's 31st law of software
Each computer code has five bugs, regardless of how many bugs have been already found - Murphy's 50th law of software
"That's not a bug, it's an undocumented feature!"
User avatar
ArDanWol
 
Posts: 181
Joined: 07 Nov 2014, 17:36
Location: Ohio, USA

Re: Kart Config Modding Project

Postby charlie » 10 Mar 2015, 18:47

Talking of top speeds, I liked how you had different engine sizes in MarioKart - 50cc, 150cc etc. I know STK is not trying to copy MK, but that was a paricularly cool feature.
Free Gamer - it's the dogz
Vexi - web UI platform
User avatar
charlie
Global Moderator
 
Posts: 2131
Joined: 02 Dec 2009, 11:56
Location: Manchester, UK

Re: Kart Config Modding Project

Postby Seebi » 10 Mar 2015, 21:46

I tried your kart values and they feel good! :) Especially the skidding variants are a nice change imo.

NowhereMan {l Wrote}:Last, I'm not going to try to fix other problems with the game. I don't have the skills nor expertise. So karts are getting stuck in walls? I've experienced this, too. It sucks, I agree. I'd love to see that fixed. But changing the config settings will only paper over the problem, not fix it. Maybe its somethig with the track design. Maybe its something with the code. I don't know. But I do know that if it were working properly, it wouldn't matter what speed you were going, you wouldn't "tunnel" into walls.

The "tunneling" is caused by the way a physic engine works. It moves objects according to their speed and then looks if there are any collisions. If the object moved too fast, bullet isn't capable of seeing a collisions and the object "tunnels" through e.g. a wall. As hiker mentioned there are ways to make things work even at higher speed, but that's no easy and simply setting the physic update rate to 100Hz introduced more severe issues (I tried that). :(

NowhereMan {l Wrote}:Actually, I'd like to be able to decouple some or all aspects of the kart config options from the difficulty settings. I'd rather have harder difficulties be the result of better AI, and then allow players to choose racing circuits or divisions (or whatever term you'd like to use) which would determine engine power, top speed, and the other kart factors that the current difficulty settings are applied to. Whether or not this is feasible, I don't know, but assuming the best, I guess that's another config file to include in my config dream/wish (unless someone has a better idea).

That's an interesting idea, but I think driving faster actually makes racing more difficult too. I get your point that it can be fun to mix these different settings and I don't object splitting them in the config file. Reflecting these changes in-game would be much more difficult as challenges are based on it (hiker mentioned that already) and it would also add more options in the gui which makes it more complex and may confuse people. Adding a simple section in the config file (to mix kart and ai properties) would allow experienced players to change it and still has no effect on the default game. :)

About more config files, I only wanted to mention that making one more file and putting anything related to kart properties in there is enough in my opinion (so the stk_config.xml doesn't get too complex/bloated with these things and it's remains simple to oversee all settings).

NowhereMan {l Wrote}:(Hmmm...maybe breakaway walls.... Require a certain amount of speed*mass to go through.... Well, just spitballing....)

I heard rumors that scripting in tracks will be possible in the future (though it will still take much time to get there). That will make there things possible. ;)

NowhereMan {l Wrote}:All of the settings between the opening and closing tags will either modify or overwrite the base settings in the order of the listed difficulties. Math is allowed, and I'd like it if we could use at least semi-complex formulae if possible.

Your proposal with computations and priorities would indeed allow for very complex setups concerning the properties of a kart. My original idea was to simply put percentages for each value and to get e.g. the speed of a kart, one simply multiplies all of them to get the final speed:
{l Code}: {l Select All Code}
basevalues[speed] * gear[speed] * engine[speed] * difficulty[speed]


I don't know if it's really needed to e.g. add or substract a value for a kart and in my opinion it wouldn't make sense to replace a value for a specific kart, because what happens if the base value changes? All other karts would be adjusted automatically while this kart remains at its previous state.
That are only my thoughts, I didn't understand the purpose and need of complex computations so far. :think:
User avatar
Seebi
 
Posts: 9
Joined: 07 Mar 2015, 03:18

Re: Kart Config Modding Project

Postby hiker » 11 Mar 2015, 22:03

NowhereMan {l Wrote}:
hiker {l Wrote}:Can you post your example here? I think it should be possible to define your own types.

Sure, if you don't mind the post being ridiculously long. ;) I'm going to truncate a bunch for the sake of brevity. If this isn't clear, let me know and I'll attach a couple files for you to look at.

So, in stk_config, here's what I tried doing (pardon the formatting, but I'm doing a bit of copy-paste from different files which results in different indentations):
{l Code}: {l Select All Code}
....
             <mass value="350"/>

             <explosion time="1.5" radius="4"
                   invulnerability-time="6" />
         </heavy>
     </kart-type>

    <kart-chassis>
      <dainty>
   <stability
     chassis-angular-damping="0"
     chassis-linear-damping="0.2"
     downward-impulse-factor="5"
     roll-influence="0.2"
     smooth-flying-impulse="15"
     track-connection-accel="2"
     />



With the existing code, the new kart types need to go inside the kart-type tags, you have them outside. This way they will indeed not be recognised. But if you put dainty etc in the right place, you can use one of them as kart type in the kart.xml files (I am aware that this is not what you want long term, I am only talking of supporting other kart types than light, normal, heavy).
...

I would like to be able to do this:
{l Code}: {l Select All Code}
<kart name              = "Adiumy"
      version           = "2"
      model-file        = "adiumy.b3d"
      icon-file         = "adiumyicon.png"
      minimap-icon-file = "adiumyicon.png"
      shadow-file       = "adiumyshadow.png"
      random-wheel-rot  = "true"
      chassis      = "dainty"
      transmission   = "light"
      groups            = "standard"
      rgb               = "0.00 0.70 0.00" >

Then all I should need to do is separately copy-paste the predifined turn, skid, and nitro params for each kart. Still a bit of a hassle, but not nearly as bad.

Atm you can only define one kart type, but if doing it correctly you should be able to define your own ones. The rest needs implementation work from one of the devs, which will most likely only happen after the next release (which isn't far away).

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby hiker » 11 Mar 2015, 22:06

charlie {l Wrote}:Talking of top speeds, I liked how you had different engine sizes in MarioKart - 50cc, 150cc etc. I know STK is not trying to copy MK, but that was a paricularly cool feature.

Hmmm - we already have that: the difficulty also affects the speed :) Admittedly combining AI difficulty and speed in one might not give as much flexibility as possible, on the other hand we already have quite a few menu steps before reaching the game. And as far as I can tell that was always sufficient: experienced player race on highest difficulty (and want the faster game and stronger AI), beginner and children prefer slower speed and less competitive AI.

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby hiker » 11 Mar 2015, 22:09

...
Seebi {l Wrote}:
NowhereMan {l Wrote}:Actually, I'd like to be able to decouple some or all aspects of the kart config options from the difficulty settings. I'd rather have harder difficulties be the result of better AI, and then allow players to choose racing circuits or divisions (or whatever term you'd like to use) which would determine engine power, top speed, and the other kart factors that the current difficulty settings are applied to. Whether or not this is feasible, I don't know, but assuming the best, I guess that's another config file to include in my config dream/wish (unless someone has a better idea).

That's an interesting idea, but I think driving faster actually makes racing more difficult too. I get your point that it can be fun to mix these different settings and I don't object splitting them in the config file. Reflecting these changes in-game would be much more difficult as challenges are based on it (hiker mentioned that already) and it would also add more options in the gui which makes it more complex and may confuse people. Adding a simple section in the config file (to mix kart and ai properties) would allow experienced players to change it and still has no effect on the default game. :)


Note that the AI settings are already contained in the stk_config.xml file, so if you want to make the easy AI harder, just adjust the settings. In my experience AI strength and speed are very closely aligned, so I am not that keen on adding yet-another-menu-setting-to-do-before-you-can-finally-race ;)

Cheers,
Joerg
hiker
 
Posts: 1435
Joined: 07 Dec 2009, 12:15
Location: Melbourne, Australia

Re: Kart Config Modding Project

Postby samuncle » 13 Mar 2015, 08:49

Hi everyone

I'm one of the main artist and I wanted to make some precisions especially on the impact in the track making process.

1) I have read this topic and not tested the stuff proposed because we are in the process of releasing a new version. I'm already busy trying to do that so I won't start to test new stuff. All my time is currently dedicated to this. Yes it's frustrating when you put effort into something but people doesn't test it. However it happens all the time and especially during the process of releasing a new version.

2) While many tracks have design issues, Your values have to work at least for two tracks. Gran Paradiso Island and Cocoa Temple. Making tracks is very difficult and time consuming, It's not possible to just enlarge a portion. It requires a lot of work. Cocoa temple and Grand Paradiso Island are the newest and probably the most carefully designed tracks made for stk to be friendly with the physic.

3) STK is very, very very fast compared to for instance mario kart. I'm in general in favor of speed however the recents changes have made some karts very difficult to control, for instance sara the racer

4) Having to slowdown sometimes is a good thing. It add challenges and it's a bit similar to what happen in real life. You can't just always accelerate and hopping you will be able to turn without slowing down.

5) We will probably cherry pick some interesting stuff coming from this mod. I heard the bubble gum is now much more funny and I'm quite impatient to be back at my computer where I can test that.

6) what is fun and seems fun isn't what makes a game funny. Yes it's counter intuitive and similar to what I said in the powerup topic. You have to think outside your own comfort zone. A game where you are always at the firt place you don't have to break, just driving without any challenge is far from fun.

I recognize you had the motivation to try to find better value. I give you a kudos for that because it's far from easy :).
Image
User avatar
samuncle
STK Moderator
 
Posts: 752
Joined: 16 Mar 2010, 21:28

Who is online

Users browsing this forum: Bing [Bot] and 1 guest