DESIGN: Economy Details for v.2

Past public reviews and discussions.
Message
Author
Pembroke
Space Floater
Posts: 25
Joined: Thu Aug 07, 2003 9:37 am

#31 Post by Pembroke »

drekmonger wrote:a 1:1 ratio of minerals to industry seems a bit boring to me...might as well just combine them into one resource if that's the case.
So you could if that was the entire story. :)

But the whole idea of separating the layers of the production chain is that you can give the _player_ more freedom in the form of being able to change the ratios from the standard "1 mineral equals 1 industry equals 1 production".

For example:

(This example only illustrates what you _could_ do in the game by having separate mineral, industry, and production points. The hard figures and functions are just used to illustrate the process.)

Your mineral output is 100 points. You have built industry that's currently worth 60 industry points. If you let it at default and you have enough people to work your industry your factories would work at 100% efficiency (i.e. fully staffed). The industry would consume 60 mineral points and produce 60 industry points (think of it as "capacity" or production potential that can be used to build something useful). The remaining 40 mineral points are your surplus (stockpiled, sold, wasted, whatever). If you had been short of people you wouldn't have been able to use all of your industrial capacity, e.g. with 50% of the required labor you would have processed only 30 mineral points to 30 industry points but still paid the maintenance cost for your full 60 point industry.

The minerals to industry part is the first "point of impact" where different ratios apply. An industrious race pick might give you a +10% bonus so you could get 66 industry points from your 60 minerals. Or perhaps your government type is prone to corruption so that 20% of your industry production gets wasted along the way leaving you only 48 industry points out of the 60 minerals.

The next step is converting your industry points i.e. production capacity to something useful. To continue the example suppose you are constructing a ship that requires 600 production points to build. If you leave everything as "normal" then your 60 point industry output means that each turn your ship gets built 60 production points and it will be ready in 10 turns. Converting industry points to production points at a ratio of 1:1 is the standard case: 100% factory load.

But what if you are in a hurry? Ok, no problem, now we add the money part to the system. To keep the example simple let's assume converting industry points to production points at 1:1 ratio costs 1 money unit (AU) per point, e.g. in the above case you pay 60 AU per turn for 10 turns (=600AU).

You were in a hurry so you drag the factory load slider to 150%. Now your workers are doing overtime and factory lines go at fast speed netting you 90 production points per turn meaning the ship will be built in little less than 7 turns. But nothing comes for free so you pay extra for the rush job. Let's say we use the square of the factory load so we get a nice smooth function instead of the "step-function" used in MOO3. The price is 1.5 x 1.5 x 60 AU = 135 AU per turn for a grand total of 900 AU.

As a curious after-thought: Setting the factory load slider to 1000% (i.e. 10x overdrive) you'd get the ship built in 1 turn paying for it 6000 AU. Of course, we might want to set a factory load cap somewhere or alternatively working your people to death could have some serious consequences.

Impaler
Creative Contributor
Posts: 1060
Joined: Sun Jun 29, 2003 12:40 am
Location: Tucson, Arizona USA

#32 Post by Impaler »

Hey I REALY like that sqare relationship between Capacity/speed/Cost

Now think about it in REVERSE

what if I slow the factory down to get the job done cheaper?? This would represent me operating the factories in a slow and methodical manor, the workers take their time and waste is greatly reduced. I am employed in Industry and I can tell you this is DEFINATLY how it works. Realisticaly though the max and minimum are probaly around 130% - 70% but for the purposes of Gaming Fun you might want to use 200% -50%.

So we end up with a Slider Bar from Slowest to Fastest with continuous Gradiation along that length at the Center is the "Standard" cost/build time. And at each end are the extreams of fast and slow building.

I think this function you layed out is the perfect way to rush production and should be THE way its done in the game rather then the more Traditional Civalization manor of coverting money into minerals (that always bothered me :x ). So we Eliminate the "rush" button entirly, if you want it done faster you got to UP the slide Bar to fishish the remaining production Points faster.

Another thing that would be nice, if we were using the SMAC consept of ENERGY as money, your idustries would thus consume energy and minerals. And your square function describes both of them (or maybe Energy Consumtion is the HyPotinus?)
Fear is the Mind Killer - Frank Herbert -Dune

User avatar
utilae
Cosmic Dragon
Posts: 2175
Joined: Fri Jun 27, 2003 12:37 am
Location: Auckland, New Zealand

#33 Post by utilae »

Yes, this idea sounds good.

Odi
Space Floater
Posts: 31
Joined: Wed Aug 27, 2003 1:52 am
Location: Germany

#34 Post by Odi »

Well, personally I like the steep-system of MoO3, since every project has a point where extra ressources can't be transfered optimally. A formular... well... lets see ... how about: costs * 1.5^(1 + speedup*2).
zaba zaba zud zud

User avatar
skdiw
Creative Contributor
Posts: 643
Joined: Mon Sep 01, 2003 2:17 am

#35 Post by skdiw »

Here my economic policy mechanics, stealing some ideas:

First of all, mineral and industry should be in two different layers. There could be technology that incorporate energy and food in making industry or making the coversion more efficient. The two kinda of bonus is additive and mutliply; I say we use multiply then add model (Ax+B), with the result fitted onto the S-curve (written as programming function). I think S-curve is awesome and can be used to apply other parts of the game like in space combat. We can set the norm at the center of the curve so players can move slider either way with diminishing returns at extremities using the curve.

industry=gov inefficiency*[industry bonus/penalty A*S-curve{industry slider} + industry bonus additive/penalty B} - races that eat industry/maintaining ships/pollution/tribute

industry slider = a scalar factor S determine by the player that is mulitply with (staffed and fed industry building + S-curve{excess pop devoted to industry*buildings) with the industry building depeding on [C*min+C*energy+C*food+C*reasearch+C*population/droids] where C are different constants so early in the game C for min maybe 3 while others are 0. Of course min, energy, food can also have multiplier and additive bonus that depend on specials, techs. I don't know what industry uses reasearch points directly but I can see food used in Organic Enahance Factories. We can move this second S-curve into the original equation for simplicity.

Any excess industry gets transfer on to the next que or be converted into money with another gov ineffiency payment. Excess min and food remain as themself. For simplicity sake, I vote that they get coverted into money, but keep as is is good too for galatic market exchange and MP diplomacy deals for race that are weak in area or just good trader that makes profits.

I think there should be at least 2 layers, one planetary and one empire. Maybe another for system. Any excess resource describe above gets dump into galatic treasury or the layer above it for a small invisible fee, again Ax+B. No caps and no freighters, too complicated. Goods in empire treasury can earn interest or be loaned/give to players for planet to rush job using the slider.

Thoughts on research: 1. Galatic endeaver that uses energy with donations to UN research that provide bonus to all speices (bad idea but we can use parts of it) 2. Planetary RP that gets added to treasury

Research Points production from planets/ships/orbitals also follow similar formula:

research = gov inefficiecy*[A*S-cruve{research slider} + B +/- planetary specials] +/- tribute

The research can then been redistribute depending what tech you want

Mineral and Food production uses the same formula, or borrow some ideas off industry.

I like the focus idea on planetary development. Just allow player define classification for pre-saved personal custom development formula and have a tertiary focus just in case for the larger powerful worlds and for modder to play around with.
Last edited by skdiw on Sat Sep 06, 2003 5:16 am, edited 2 times in total.

PowerCrazy
Creative Contributor
Posts: 383
Joined: Fri Jun 27, 2003 2:35 am
Location: Texas

#36 Post by PowerCrazy »

Whats the "s-curve" you are talking about? Does it have a simple formula like a cos(x) curve? or something similiar?
Aquitaine is my Hero.... ;)

User avatar
skdiw
Creative Contributor
Posts: 643
Joined: Mon Sep 01, 2003 2:17 am

#37 Post by skdiw »

You never heard of S-curve? It is one of best mathematical model that models just about every in life.

let be describe what it looks like then I'll go on to the details. S-curve looks like a normal with the right half of normal flipped, something like this

___________
/
/
/
_______/

with rounded edges. Major characteristic include a linear region near center, bend at as you approach extremities. It is never 0 or 1 except at infinite.

There are a number of ways to build this curve with slopes or how round edges are. For simplicity, build one off normal curve, though t-distribution gives more flexible results. Basically you go to excel, type in a normal curve of a statistic book or find it off web, tell the excel to add the previous value to get cumulative, this gives you the x-axis. While the x-axis is scalar, you read off the cumulation then you go up the curve and read off y and there is your value.

S-curve can be used all over in the game. For example, you have a tech that adds accuracy of a weapon by 50%, but your weapon accuracy base is at 80%. 80 * 1.50 = 120%, which doesn't make sense. the highest is one. Instead of being naive about it and use if and compare statement to cap it at 1, use the S-curve and it comes off naturally. In this example, my excel reads 99%. The curve can be apply to population growth (which you look at right half of the graph) and any other aspect where you want diminshing return effects. It isn't klanky like if you pass this certain number you get this, and if number pass this it is this.

I have a normal based S-curve in excel if anyone wants it; it's in a table and you can graph it. You can also find journals that have approximation like McClarin series if you like simple functions.
Last edited by skdiw on Thu Sep 04, 2003 8:41 am, edited 1 time in total.

User avatar
skdiw
Creative Contributor
Posts: 643
Joined: Mon Sep 01, 2003 2:17 am

#38 Post by skdiw »

uhhh, the picture turn out right, but I hope you know what I mean. I'll try redrawing it. ignore the dots

........................................................ _______________________
. ...................................................../
................................................../
................................................/
............................................. /
......................................... /
.__________________/
Last edited by skdiw on Thu Sep 04, 2003 8:40 am, edited 2 times in total.

User avatar
skdiw
Creative Contributor
Posts: 643
Joined: Mon Sep 01, 2003 2:17 am

#39 Post by skdiw »

Ok, it looks like two parallel lines with a line running through it

Bastian-Bux
Creative Contributor
Posts: 215
Joined: Fri Jun 27, 2003 6:32 am
Location: Kassel / Germany

#40 Post by Bastian-Bux »

Do you talk about a sinus function? Actually your graphic doesn't make any sense to me :)

But if you are talking about a sinus function, then you are quit correct.

The four usual biological functions are

logarithmic slope (for a safe growth) f(x) = ln(x)
exponentiell slope (for dangerous growth, and also following die-outs) f(x) = e^x
sinus cyclus (for cyclical developments) f(x) = sin(x)
gauss bell (for the distribution of possibilities) f(x) = a*e^(-b*x*x)

As you can see, this functions are directly linked to specific areas.

If you wanna show cyclical things like ice-ages or sun movements, use the sinus function.

If you search for the number of genius' in an alien (or human) population, use a gauss bell.

If you have an explosive growth rate (like bacteria or humans), use an exponentiell growth algorithm (but add the necessary exponentiell die-outs as well).

If you have a slow and sure development (the micro research of a certain tech, finetuning it to the max, or the mining of a certain planet to its last gramm of ore), use a logarithmic slope.

Thats all mathematical functions we need, each can be applied to its according system.

User avatar
skdiw
Creative Contributor
Posts: 643
Joined: Mon Sep 01, 2003 2:17 am

#41 Post by skdiw »

You get all what you are talking about except for Gauss curve in the S-curve. I really should say that it looks a lot like sin instead of that dumb picture. You bring up a good idea with sin curve though, since we can use it as a approximation to S-curve. But no, S-curve is not the same as sinosoid. Sin goes to 1 and 0, S-curve approaches but doesn't untill infinite. As for the contour, S-curve is more akin to natural phenomnon while sin is, well, just sin. You get exponential growth in the beginning of the curve, linear region in the middle, and dying out in the end when the population is saturated by environmental capacity, no need for extra terms. If you want log slope, use the right half of the curve as it ramps up and curves to saturation. If you really want to get Gauss, you can change it back to standard normal and use a different distribution. I don't know where are we going to use cyclic function in the game except drawing pretty patterns for combat.
Last edited by skdiw on Thu Sep 04, 2003 8:38 am, edited 1 time in total.

PowerCrazy
Creative Contributor
Posts: 383
Joined: Fri Jun 27, 2003 2:35 am
Location: Texas

#42 Post by PowerCrazy »

Ok i know the curve you are reffering to now. A formula for such a thing would be more useful, as "s-curve" seems fairly ambiguous. Though basically its a curve that asymptotes at zero from -inf to +inf with a peak on one side of the y-axis and a valley on the other, and the whole curve passes through the origin. I can't recall the formula for this right now though. I'll add it later.
Aquitaine is my Hero.... ;)

User avatar
skdiw
Creative Contributor
Posts: 643
Joined: Mon Sep 01, 2003 2:17 am

#43 Post by skdiw »

Sort of. My professor calls it S-cruve so that's what I call it. Sorry for the crappy description. As for the formula, I think it will be useful for FO, but the s-curvve for I'm talking about in main post don't have a formula, but who cares, FO is fictional so approximation works for me. I just don't want klanky stuff like in Moo 3 and that retarded capping system that people use. Plus you have to make one for each aspect of them game, which is annoying especially for the programmers.
Last edited by skdiw on Sat Sep 06, 2003 5:17 am, edited 1 time in total.

Pembroke
Space Floater
Posts: 25
Joined: Thu Aug 07, 2003 9:37 am

#44 Post by Pembroke »

Plenty of functions to choose from, but if we just want to keep things simple:

Code: Select all

         arctan(x)
f(x) = -------------
          pi / 2
Goes from -1 (at negative infinity) to +1 (at positive infinity) with a nice symmetrical S-like curve around zero.

If you add a factor to multiply x with you can scale the curve to fit the "real game" number ranges. Also, arctan should be available in most decent programming languages.

PowerCrazy
Creative Contributor
Posts: 383
Joined: Fri Jun 27, 2003 2:35 am
Location: Texas

#45 Post by PowerCrazy »

Well i pretty sure the ufnciton hes talking about goes from 0 at + and - Infinite. And right before the y-axis it hits -1, and right after the y-axis it hits 1 (going from negative to positive).

------/\
___/---\ -----____
----------\---/
------------\/

Something like that.

Where the solid line is y=0 and the peaks and valleys are asymptotically approaching y=0. Of course the peak can be switched with the valley by adding (or taking away) a negative sign.
Aquitaine is my Hero.... ;)

Locked