Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: Allow Market Share to be a non-integer number.  (Read 2162 times)

Nawyria

  • Ensign
  • *
  • Posts: 16
    • View Profile
Allow Market Share to be a non-integer number.
« on: December 29, 2018, 01:29:15 PM »

Currently in the Starsector Economy, a colony's Market Share in a commodity is rounded to a whole number before being used to calculate the Exports Income for this commodity. This means that the effect of accessibility on income is rather coarse-grained, which can lead to some pretty strange behaviour close to the tipping point of rounding up or down. I would suggest allowing a colony's Market Share to be a decimal number to smoothen this out. This would have a couple of consequences.

Firstly, it means that Accessibility - as a player-facing stat - is a lot more intuitive. If I have a colony at 120% accessibility and I build a Waystation to get it up to 130%, my colony's exports will go up proportionally. As it is right now, some commodities may skyrocket (due to being rounded up rather than down), while others remain the same (4.9 and 5.3 are probably still rounded to 5). This makes it very difficult to tell how much of an impact increasing Accessibility will truly have. Allowing Market Share to be a decimal number is en easy fix for this and I think very desirable for a player's experience managing colonies.

(As a sidenote, I've come across an example of this kind of behaviour while writing my Economy guide. Cibola and Culann should both have a 5.42% market share in Metals, but one of them is rounded up to 6% and the other down to 5%.)

Secondly, it would make the game a lot more satisfying to try to optimize. As an avid Theorycrafter myself, I enjoy thinking about and trying to optimize my way around a game's economy - and Starsector is one of the most interesting games I've tried to tackle yet. However, the discrete nature of a colony's Market Share makes exports income wildly unpredictable. It's quite possible to predict the income of the first colony a player will settle, but every subsequent colony will have a knock-on effect on the previous ones that is hard to predict. The added supply of commodities from the second colony may or may not push an earlier colony to a lower Market Share precentage, depending on how the minutiae of rounding up or down work out, which makes it really frustrating to try to get a handle on. Making Market Share a lot more fine-grained would help smooth this issue and let me tickle that optimization itch.

Thirdly, floating-point Market Share would also impact the scalability of the game. As more factions and worlds are added by yourself, the developer, or through community mods, colonies at bottom of the production lists go into limbo. Losing or gaining 1% Market Share is not that big of a deal if you're Sindria and control the lion's share of the Fuel market. However, if you're one of the Size 3 colonies outputting 1.46% of the global Food supply, being rounded up or down can be a big deal. Allowing this colony to take 1.46% of the Global Market rather than 1% or 2% means that more worlds can be added without upheaving the economy.

Of course, this comes at the cost of storing a Floating-Point number rather than an Integer. But I think Starsector's memory footprint is small enough to allow this.
« Last Edit: December 29, 2018, 01:31:05 PM by Nawyria »
Logged

RawCode

  • Admiral
  • *****
  • Posts: 511
    • View Profile
Re: Allow Market Share to be a non-integer number.
« Reply #1 on: December 29, 2018, 06:22:51 PM »

big no, this will be same issue as floating burn level
Logged

Wyvern

  • Admiral
  • *****
  • Posts: 3803
    • View Profile
Re: Allow Market Share to be a non-integer number.
« Reply #2 on: December 29, 2018, 08:14:00 PM »

big no, this will be same issue as floating burn level
So, your market share will make it so you don't have a clear cutoff between 'fleets you can chase' and 'fleets you cannot chase' and might spend ages chasing after enemy fleets that have 0.1 less market share?  Um...  Sorry, what issue do you think integer burn levels addresses?

In general, I'd say this sounds like a good idea; I haven't looked too closely under the hood at how markets work, but what Nawyria is describing as the way it works now is exceptionally counter-intuitive and non-useful.
Logged
Wyvern is 100% correct about the math.

intrinsic_parity

  • Admiral
  • *****
  • Posts: 3071
    • View Profile
Re: Allow Market Share to be a non-integer number.
« Reply #3 on: December 29, 2018, 08:40:10 PM »

I've noticed how difficult it is to predict what the effects of changes the player makes will be. It's quite easy to make a change that seems like an improvement but ends up hurting you for a variety of reasons. I think the player should be able to see an estimated income change before they make any change. Maybe like a planning system where you can make a series of changes, see what would happen, and then click apply.
Logged

RawCode

  • Admiral
  • *****
  • Posts: 511
    • View Profile
Re: Allow Market Share to be a non-integer number.
« Reply #4 on: December 30, 2018, 12:32:52 AM »

giving player estimated income that never equal to actual income because world is "living" and various events happening is worse then not giving any estimate at all.

especially painful if current income is ultra high because random market is disturbed and moment later industry is not profitable at all.
Logged

Unreal_One

  • Ensign
  • *
  • Posts: 44
    • View Profile
Re: Allow Market Share to be a non-integer number.
« Reply #5 on: December 30, 2018, 03:07:07 AM »

I've noticed how difficult it is to predict what the effects of changes the player makes will be. It's quite easy to make a change that seems like an improvement but ends up hurting you for a variety of reasons. I think the player should be able to see an estimated income change before they make any change. Maybe like a planning system where you can make a series of changes, see what would happen, and then click apply.

I agree, a what if mode would definitely help with learning the intricacies of the system without having to have costly failed experiments.
Logged