Author Topic: Bugs & Crash Reports  (Read 1433995 times)

Offline Delian

  • Colonel
  • ****
  • Posts: 240
    • View Profile
Re: Bugs & Crash Reports
« Reply #3705 on: September 10, 2020, 11:43:16 am »
OK, so what would be your counter-proposal... assuming the authors want to keep the algorithm the way it is.
What description would you write?

Personally, I wouldn't want to keep this algorithm in this shape. If you want to have diminishing returns, then I would change it so that resistances are multiplied. eg. 3 items with 15% decrease damage would stack like 0.85 * 0.85 * 0.85 = 0.61 (I can change the script code if you want). And then rebalance the resistances values on the items (assuming rebalancing would be needed).

If you want to write a description, well, currently, if I have no Cutting resistance on armor, and put on Shepherd's Staff, the Cutting resist granted is 10% (1 - (0.15 * 0.7)), so changing the description and writing that the staff grants 10% Cutting resist would be closer to the truth (altho it would still function very inconsistantly due to how minimum resists on items vary - the order of items shouldn't matter, but it does).

xcomfan

  • Guest
Re: Bugs & Crash Reports
« Reply #3706 on: September 14, 2020, 05:10:35 pm »
In L3, "bring down the watchtower" mission, there si a tree missin its trunk

Offline Delian

  • Colonel
  • ****
  • Posts: 240
    • View Profile
Re: Bugs & Crash Reports
« Reply #3707 on: September 15, 2020, 09:00:27 pm »
There's a bug in the terrain in front of Red Lantern Villa (LT_HOUSE_02G), where movement costs zero or half the normal TU.
« Last Edit: September 15, 2020, 09:17:44 pm by Delian »

Offline Dioxine

  • Commander
  • *****
  • Posts: 5412
  • punk not dead
    • View Profile
    • Nocturnal Productions
Re: Bugs & Crash Reports
« Reply #3708 on: September 16, 2020, 05:45:36 pm »
Personally, I wouldn't want to keep this algorithm in this shape. If you want to have diminishing returns, then I would change it so that resistances are multiplied. eg. 3 items with 15% decrease damage would stack like 0.85 * 0.85 * 0.85 = 0.61 (I can change the script code if you want). And then rebalance the resistances values on the items (assuming rebalancing would be needed).

It works a bit more complex than that. 3x "15% with a minimum of 30" in that algorithm would be  x = 0.3 + (y-0.3) * 0.85 * 0.85 * 0.85, where y is your basic resistance, dependant on armor worn, and x is your final resistance to that type of damage. Also lmao, order should not matter? Order does always matter. It's physical items, not mathematical constructs.
The fact you don't understand the formula, doesn't mean it's wrong. If you're that smart, maybe you will however know how to put it down in natural language in a way that would be concise, yet more precise  than it is. Your proposed 7 or 8% would also be a lie, since it depends on what kind of armor you wear. The other proposal (10 if it's 100) is on the other hand very vague (what if it isn't?).
So in short, you spammed my bug report board fighting windmills, instead of simply asking on some thread dedicated for questions, or creating a new thread. Not very nice.
All you had to do was to read INGAME description:
« Last Edit: September 16, 2020, 05:53:56 pm by Dioxine »

Offline Zharkov

  • Colonel
  • ****
  • Posts: 427
    • View Profile
Re: Bugs & Crash Reports
« Reply #3709 on: September 19, 2020, 02:17:34 pm »
Is it intentional that the lobster picks up a bow to shoot the gals?

Offline Solarius Scorch

  • Global Moderator
  • Commander
  • *****
  • Posts: 11408
  • WE MUST DISSENT
    • View Profile
    • Nocturmal Productions modding studio website
Re: Bugs & Crash Reports
« Reply #3710 on: September 19, 2020, 06:53:04 pm »
Yeah, it's possible.

Offline Delian

  • Colonel
  • ****
  • Posts: 240
    • View Profile
Re: Bugs & Crash Reports
« Reply #3711 on: September 24, 2020, 07:29:09 pm »
It works a bit more complex than that. 3x "15% with a minimum of 30" in that algorithm would be  x = 0.3 + (y-0.3) * 0.85 * 0.85 * 0.85, where y is your basic resistance, dependant on armor worn, and x is your final resistance to that type of damage. Also lmao, order should not matter? Order does always matter. It's physical items, not mathematical constructs.
The fact you don't understand the formula, doesn't mean it's wrong. If you're that smart, maybe you will however know how to put it down in natural language in a way that would be concise, yet more precise  than it is. Your proposed 7 or 8% would also be a lie, since it depends on what kind of armor you wear. The other proposal (10 if it's 100) is on the other hand very vague (what if it isn't?).
So in short, you spammed my bug report board fighting windmills, instead of simply asking on some thread dedicated for questions, or creating a new thread. Not very nice.
All you had to do was to read INGAME description:
Sorry, it looks like I was a bit too hasty with my judgements. And sorry for spamming this thread - this problem really bothers me.
I have studied the algorithm a bit more and I understand it well now. However, the problem remains. The resistances provided by items don't match their descriptions. With the formula as it is, it's impossible to create descriptions (short of including the whole formula in every description) that would match the observed reductions.

The only solution is to change the formula to be simpler and more intuitive.

I've attached the script (Edit: Updated to L4) with the formula changed from:
Code: [Select]
CurrentResist = CurrentResist - (1 - ItemResist) * (CurrentResist - ItemMinimumResist) to
Code: [Select]
CurrentResist = Max(CurrentResist - (1 - ItemResist) * (CurrentResist), ItemMinimumResist), or more simply put,
Code: [Select]
CurrentResist = Max(CurrentResist * ItemResist, ItemMinimumResist)
With this, the descriptions now precisely match the damage reductions, since the ItemMinimumResist is no longer acting as a multiplier, but as a floor.
If my armor has 200 Cold Resist, and I put on a Fancy Shawl (says 25% reduction), it gets reduced to 150 Cold Resist.
If I already have 50 Cold Resist, then the item has no effect, because the reduction under ItemMinimumResist (50% for Shawl) isn't applied.
If I had two (stackable) shawls, then the reduction would be 200% * 0.75 * 0.75 = 112. So the diminishing returns are still there.
If I have 100 Plasma Resist (which is normally the case), and I put on Floating Sandbags (where it states that Plasma damage is "cut in half", the damage is now actually cut in half, whereas before it was actually only cut by a quarter.

I'm not sure why ItemMinimumResist served as a multiplier in the first place. It seemed like a really bad design choice, because it creates a lot of confusion, while providing no benefits compared to using it as a floor.
« Last Edit: September 25, 2020, 12:25:37 am by Delian »

Offline ohartenstein23

  • Commander
  • *****
  • Posts: 1931
  • Flamethrowers fry cyberdisk circuits
    • View Profile
Re: Bugs & Crash Reports
« Reply #3712 on: September 25, 2020, 05:12:27 am »
The formula was designed to reduce the effectiveness of multiple items stacking together, as requested by Dioxine. That is, one good item should be better than multiple smaller ones trying to add up to the same effect. Resistances are the strongest form of defense, and this script isn't just a "fix", it's a straight buff in the player's favor on top of a system that a lot of work was put into to balance and already works as intended.

Offline Delian

  • Colonel
  • ****
  • Posts: 240
    • View Profile
Re: Bugs & Crash Reports
« Reply #3713 on: September 25, 2020, 11:06:23 am »
The formula was designed to reduce the effectiveness of multiple items stacking together, as requested by Dioxine.
You say so, but I don't see how the formula was achieving that. All it did was reduce the effectiveness of all the items.

For example:
With the original formula:
If I have 250% resist and one item with 50% reduction, and 50% minimum, then the reduction is by 100. If I used two items with 25% reduction and 50% minimum, then the reduction would be 50 for the first item, and 37.5 for the second item. So, reduction by 100 from one item, compared to reduction by 87.5 for two items, this means that the actual diminishing effect is 12.5%.

With the altered formula:
If I have 250% resist and one item with 50% reduction, and 50% minimum, then the reduction is by 125. If I used two items with 25% reduction and 50% minimum, then the reduction would be 62.5 for the first item, and ~47 for the second item. So, reduction by 125 from one item, compared to reduction by 109.4 for two items, this means that the actual diminishing effect is 12.5%.

In other words, even thought I altered the formula, the diminishing effect of stacking multiple items remains absolutely the same. So if "the formula was designed to reduce the effectiveness of multiple items stacking together", I have demonstrated that the altered formula does it by exactly the same amount. Now, if you want to increase the diminishing effect, there are several ways to achieve that.

Offline ohartenstein23

  • Commander
  • *****
  • Posts: 1931
  • Flamethrowers fry cyberdisk circuits
    • View Profile
Re: Bugs & Crash Reports
« Reply #3714 on: September 25, 2020, 02:47:20 pm »
Okay, granted. But again you demonstrate that your new formula is making each item more effective than they are now, meaning the numbers would have to be rebalanced. As noted before, the issue was in how the numbers were communicated, not how effective these items are. You're essentially asking for all these numbers to be reconsidered to solve your personal problem with the feature.

Offline Zharkov

  • Colonel
  • ****
  • Posts: 427
    • View Profile
Re: Bugs & Crash Reports
« Reply #3715 on: September 25, 2020, 07:32:08 pm »
Still with version v.L3l  - there seems to be a problem with taking these blue turrets "alive".

Offline Dioxine

  • Commander
  • *****
  • Posts: 5412
  • punk not dead
    • View Profile
    • Nocturnal Productions
Re: Bugs & Crash Reports
« Reply #3716 on: September 26, 2020, 02:14:25 am »
Still with version v.L3l  - there seems to be a problem with taking these blue turrets "alive".

It should not be possible to take these turrets "alive" by any means, they have capturable: false flag.


The only solution is to change the formula to be simpler and more intuitive.

You really think I'm gonna throw away my finely crafted formula in favor of yours, crude? It is like it is to avoid absurd situation where armor with shitty resistance, if equipped with enough items, will be better than armor custom-built to withstand a certain kind of damage; how much mileage do you really expect from fitting plate mail with barbed stockings? Or putting a crude gas mask on top of a decent 50% gas mask provided by armor? The answer, the difference should be negligible at best, and this is what this script allows. This hard floor is needed to keep things sane. The only solution, actually, is for you to deal with it.
« Last Edit: September 26, 2020, 02:22:57 am by Dioxine »

Offline Delian

  • Colonel
  • ****
  • Posts: 240
    • View Profile
Re: Bugs & Crash Reports
« Reply #3717 on: September 26, 2020, 01:18:45 pm »
You really think I'm gonna throw away my finely crafted formula in favor of yours, crude? It is like it is to avoid absurd situation where armor with shitty resistance, if equipped with enough items, will be better than armor custom-built to withstand a certain kind of damage; how much mileage do you really expect from fitting plate mail with barbed stockings? Or putting a crude gas mask on top of a decent 50% gas mask provided by armor? The answer, the difference should be negligible at best, and this is what this script allows. This hard floor is needed to keep things sane. The only solution, actually, is for you to deal with it.

Can you provide an example, where an armor with shitty resistance becomes better than a specialized armor, due to items? Also, I don't know about you but, the kind of air I breathe, it doesn't matter which gas mask the air came through, the filtration should be the same. If the mask is a part of the outfit, or if I'm holding one onto my face, the filtration should be the same, no?

Anyway, the problem remains. Currently, the items are lying to players since the resists that they provide don't match their descriptions (Floating Sandbags say they cut the damage in half, but they only reduce it by a quarter).

Here's some alternative solutions:
- Write different descriptions: Instead of saying "The shawl reduces the effects of Cold damage by 1/4, up to 50% final Resistance", say "At 250 Cold resist, the shawl will reduce it to 200". "At 100 Cutting resist, Shepherd's Staff will reduce it to 90". "At 100 Plasma Resist, Floating Sandbags will reduce it to 75", so you provide an example where the formula is applied on the most common armor resist value.
- Add a stacking penalty. Change the script so that when stacking occurs, a larger penalty is added. The first item has normal effect, the second item has only half effect, the third item has only a third, and so on.
- Make the resist application customizable. Change the script by adding a new per-item variable, for instance, RESIST_MODE, which allows you to specify the way in which the resists for this item is applied. Basically, this would allow you to use a different formula for each item. For instance, you could write a formula where an item has only half the effect if the resist is below a certain value, or you could write a formula that makes your current resist worse, or a formula where resists change by a static value instead of multiplication (a lighter in a blizzard won't have any effect, but it would warm you up on a cold day), etc.

Offline Zharkov

  • Colonel
  • ****
  • Posts: 427
    • View Profile
typo
« Reply #3718 on: September 26, 2020, 04:57:28 pm »
Still with version v.L3l

xcomfan

  • Guest
Re: Bugs & Crash Reports
« Reply #3719 on: September 26, 2020, 05:07:24 pm »
L4, minor glitch in main hideout