Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
MOO growth formulae

MOO growth formulae
[EDIT] Edit to show Mid-turn production used for SHIP/DEF/IND, not for TECH.

Wanting to compare early strategies such as number of transports I tried to work out the game’s growth formulae. Partially built pop and factories in tenths plus sliders to actual percentages can only be seen in the save file so a hex editor was needed for analysis. The player can only modify sliders in clicks of 4% each but the computer can alter sliders in 1% increments. The formulae presented here should have general application but note I have only tested with homeworld plus one colony and in particular with a ‘normal 3-turn start’ which is normal race (not Sakkra, Silicoids or Klackons) on hard/impossible founding first colony in 3 turns only investing in CLEAN ECO and IND. In MOO, as always, a good strategy is more important than saving a couple of BC but there are some interesting and perhaps surprising conclusions so hopefully someone will find this interesting and maybe even helpful.

Population Growth
Population growth is made up of 3 elements - formula, fraction & forced. Arriving transports do not affect growth but simply add population afterwards. Note growth is guaranteed on non-full planets so if formula, fraction & forced growth are zero you will grow by one tenth anyway.
formula pop growth
As mentioned in the manual the ‘bell curve’ pop growth formula is -
formula pop growth = floor(floor((100 – floor(pop / max * 100)) * pgm) / 100 * pop + 0.05) / 10
where pop is current whole population (less leaving transports) and pgm is pop growth multiplier 2 for Sakkra, 0.5 for Silicoids and 1 for others. This growth is sometimes higher than expected because the current pop percentage is floored before subtracting from 100 for the growth percentage then actual growth is rounded to the nearest tenth (using +0.05) before flooring.
On max 100 planet:
normal races/Klackons – 2.5 growth for 48-52; 2.4 growth for 40-47 and 53-60
Sakkra – 5.0 growth for 49-51; 4.9 growth for 43-48 and 52-57; 4.8 growth for 40-42 and 58-60
Silicoids – 1.2 growth for 40,42-58,60; 1.1 growth for 34-39,41,59,61-66
fraction pop growth
Mentioned by Factoid, fraction growth is current pop fraction, so pop of 0.6, 1.6 ...etc. has fraction growth of 0.6 (irrespective of whole pop size or max)
forced pop growth
As mentioned in the manual, extra BC in ECO beyond waste cleanup can speed pop growth. Leaving transports are a factor:
forced pop growth = floor((floor(trans-actual-prod * ECO%) - floor(factories * RIW / ERL)) * pop-cost) * pcm / 10
where ECO% is 4% per click in ECO, RIW is Reduced Industrial Waste%, ERL is Ecological Restoration Level (ie. number of waste cleaned up for 1BC), pop-cost (per tenth) is 0.25 for Silicoids, 0.75 for Sakkra and 0.5 for others and pcm is pop cost multiplier is 2 for Sakkra otherwise 1 – so buying Sakkra pop is on average 3 times more cost effective than normal races, not twice.
trans-actual-prod is a re-calculated production based on reduced pop after transports leave (reduced by maintenance as normal - see production formulae below) – this will match in-game actual production if no transports are sent.

Production
Production formulae are as follows:
total-prod = factories + floor( pop * (0.50 + 0.03 * PL)) * ppm
where PL is Planetology tech Level and ppm is pop production multiplier is 2 for Klackons otherwise 1
ship maint = floor(ship-BC * 0.02) as displayed on Fleet screen and on Planets screen as %age of empire-prod
actual-prod = floor(floor(100 – maint / empire-prod * 100) / 100 * total-prod) – transports
where maint is total empire maint, empire-prod is empire wide production, total-prod is planet total production and transports is number of leaving transports
So a planet’s actual-prod is calculated from its total-prod using percentage maintenance, such as shown on the Planets screen, not actual values. Note the effect of flooring means maintenance often appears larger than it is. For example at game start for normal race on hard/impossible the 12BC maint from colony & 2 scouts is 23.5% of total-prod of 51 giving actual-prod of 76% of 51 floored to 38, 13 less than total. The effect of maint is minimized if the cost is an exact percentage of empire production (not just x.0% on Planets screen) so Silicoids after 2 turns have 60 total, 48 actual production. After colonising first planet, building up to 3 new 8BC scouts leaves maint cost zero therefore 0%, then the fourth scout will usually cost you 2BC per turn at homeworld plus 1BC per turn at new colony but scouts are essential to explore & blockade. Even if maint is only 0.1% of empire production then each planet’s actual-prod% will be floored to 99% costing a planet 1BC up to 100 total planet production, 2BC above 100, 3BC above 200 etc.
which production?
Each turn there are 3 sets of production values for each planet covering slider setting, forced ECO growth and industrial growth. All 3 are calculated using the planets original factories but different pop values. In each case maint% is re-calculated on the new empire production value and used as above to calculate actual-prod. The 3 sets of production values are:
In-game production based on planets original pop used to determine slider settings for clean ECO. Leaving transports reduce actual-prod by 1BC per transport.
Post transport production based on original pop minus transports leaving is used to determine ECO/TECH BC (same as in-game if no leaving transports).
Mid-turn production based on pop after pop growth is used for SHIP/DEF/IND production which is one reason why you frequently exceed predicted production.

For instance a normal race on hard/impossible starts with 40 pop & 30 factories giving 51/38 prod, needing 10 clicks in ECO giving required 15BC for CLEAN leaving IND with 15 clicks or 22BC which is why game predicts 2.2 factories to be built. However pop grows to 42 (42.4 actually but only whole pop/fact used for production) so total-prod rises to 52, maint of 12BC is 23.077% (not exact %age) so actual prod is 76% of 52 floored to 39 meaning the 15 clicks in IND actually give 23BC or 2.3 factory growth.

Silicoids love fractions
Fraction growth is proportionately more helpful in low growth situations such as near-empty or near-full planets or for Silicoids (ref: Factoid). With some thought you can get a healthy growth rate of 2 pop per turn at Silicoids homeworld to well past 70 pop. smile The simplest way to do this after a 3-turn start giving 44 pop is to send 6 transports to the new colony then none for next 3 turns. You will then have 43 pop and will grow at 2 per turn even sending more pop provided you remain at 40,42-58 or 60 pop so from 43 if you want to send more pop use 1 or 3 only. To keep healthy growth past 60 then spend 4-7BC in ECO at 60 pop (or 57) and if then sending pop remain within 59,61-66.

Direct transport costs
Some discussion on transport costs suggest there is no direct cost (over lost production from pop & idle factories). It is true that the game’s 1BC per transport cost is ‘forgotten’ when production of SHIP/DEF/IND is executed but the sliders may have been increased in ECO to stay CLEAN due to transports reducing industry clicks. There will be no cost only when there is no ECO requirement (Silicoids or no factories) or when small numbers are sent which do not require ECO increase. The cost per transport rises noticeably when ECO is increased by 1 click then drops slowly until next increase – you will see some players reports mention only sending as many transports as a particular ECO setting can stand which seems sensible. After a normal 3-turn start with 47 pop, sweet points with ECO increases of 0,1,2,3 extra clicks are 4, 11, 16 & 20 trans costing 0, 2, 4 & 6BC direct industry costs. Cost is small with max here of 0.4BC per pop (for 5 trans) but it is certainly a factor to consider.
As for suggested transport numbers the various goals - fill colony quickly to 1/3, keep homeworld at least half (or 45), optimise empire production, early scouting, minimal direct transport costs, single large transport or slow trickle – are tricky to balance especially with an early settling. I trialed this with a normal 3-turn start (homeworld pop of 47) and a healthy colony of 85 max. For this size the Charis formula for optimum empire-wide production would suggest 20 transports which luckily also minimises direct costs but only allows 3 new scouts. I like 16 here because of direct costs, up to 4 scouts and good pop growth curve. Of course 4 transports initially avoiding direct costs with up to 5 scouts and strong homeworld growth is also a contender but colony growth is slower and it will need more support. These are just my observations, for a recommendation see a veteran. See later for further review.

Did you know?
1. You can see in game when computer gives you a partial click when removing clicks from a slider because removing last full click increases slider.
2. Fraction pop are still maintained over max pop eg. 100.4->100.8->100.6 etc. so after terraform or trans, fraction is part of growth again.
3. Sakkra ECO can be reduced after 2 turns and still be CLEAN.
4. Klackons on hard/impossible start with partial clicks in ECO of 6.5 rising to 6.75 for second & third turn. If the colony ship settles after 3 turns then ECO can be reduced from 6.75 to 6 but depending on how many transports you want to send you may want to keep the fraction which gives many more sweet points - 4, 7, 10, 13, 16, 18, 21 trans for 6.25, 6.5, 6.75, 7, 7.25, 7.5 & 7.75 ECO. Unfortunately you cannot create fraction of 0.5 but you have 0.75 partial in ECO already so leave ECO alone for 10 trans or add 1 for 21. If sending 4 or 16 trans you want 0.25 partial which you have in IND and you can swap it into ECO if careful but your speed of play may slow down to almost as bad as mine! lol

Transport bug cry
You may have noticed from above a glaring anomaly in the way the game counts ECO production when sending transports. If the CLEAN ECO slider setting is based on production from original pop & factories less a fixed 1BC per transport but the ECO BC calculation uses production from original pop minus transports (a loss of 0.53 per pop for normal races at start, subject to rounding) & factories then the actual ECO generated may not match clean requirement. In fact, except for the Klackons early on whose initial pop production of 0.53 * 2 is close to transport costs of 1BC, the game setting of CLEAN ECO when sending transports is frequently incorrect (Silicoids are not affected of course). So on a normal 3-turn start with 47 pop after settling first colony you need 8 clicks in ECO and this is sufficient to send up to 9 transports (not 4 in game) and 1 extra ECO is enough to send up to 22 transports (not 11 in-game). The prediction of WASTE is disturbing but none will be generated. If you work with game setting adding an extra ECO click to send 9 transports CLEAN you are effectively force buying pop with extra ECO spending (you will grow pop by one tenth extra). For Sakkra 3-turn start with 56 pop you need 8 clicks in ECO which is sufficient to send up to 14 transports (not 7 in game) and 1 extra ECO is enough to send up to 27 transports (not 14 in game). For Klackons in quarter clicks from 6.25 to 7.75 allows 5,7,11,13,16,18,20 trans – much closer than others but instead of unintended ECO buying you can fall short of clean here. After Klackon 3-turn start sending 23 transports with 8 clicks ECO (or 21 with 7.75) will show CLEAN but generate WASTE and reduce pop by 2 tenths. cry
Reply

As an addendum to above:

Hostile/Fertile/Gaia Affects formula pop growth only except Silicoids who grow at hostile rate in any environment. Multiplier of 0.5, 1.5 or 2 is combined with racial multiplier, pgm, in formula without any additional rounding eg. Sakkra on Fertile use multiplier of 3.

Ultrapoor/Poor/Rich/Ultrarich/Artifacts/Orion These do not change production but affect BC generated by slider with rounding before and after so for industry –
IND BC = floor( floor(actual-prod * IND%) * mpm)
where IND% is 4% per click in IND and mpm is mineral production multiplier 1/3, ½, 2, 3 for UP, poor, rich, UR planets

Ship BC Ship production gets a 1 BC boost beyond any BC invested when at least 1 BC is invested in SHIP. Note that trickle feeding SHIP early to take advantage of this is rarely successful because apart from producing ships too slowly the bonus SHIP BC is often lost elsewhere due to rounding from using an extra slider or from delayed factory production.
Reply

Necroing this thread as it's the only one with an explicit formula for population growth. Sadly, the formula is a bit mangled, as seen below:

(June 22nd, 2007, 17:09)sargon0 Wrote: MOO growth formulae
formula pop growth = floor(floor((100 – floor(pop / max * 100)) * pgm) / 100 * pop + 0.05) / 10

Looks like in 2007, this used to be a different forum, which may explain the mangled code. What was the "â"? kyrub, do you know what the population growth formula is from your reverse engineering?
Dominus Galaxia, a Master of Orion inspired game I'm working on.
Reply

(March 2nd, 2015, 18:26)Zeraan Wrote: Necroing this thread as it's the only one with an explicit formula for population growth. Sadly, the formula is a bit mangled, as seen below:

(June 22nd, 2007, 17:09)sargon0 Wrote: MOO growth formulae
formula pop growth = floor(floor((100 – floor(pop / max * 100)) * pgm) / 100 * pop + 0.05) / 10

Looks like in 2007, this used to be a different forum, which may explain the mangled code. What was the "â"? kyrub, do you know what the population growth formula is from your reverse engineering?

After doing math and stuff trying to decipher it, I think I figured out what â is. It's minus.

So the formula looks like this:
Pop growth = floor(floor((100 - floor(pop / max * 100)) * pgm) / 100 * pop + 0.05) / 10

With pop = 98 or 2, it yields 0.2 growth rate, so 5 turns to get 1 new pop unit.
With pop = 99 or 1, it yields 0.1 growth rate, so 10 turns to get 1 new pop unit.
Dominus Galaxia, a Master of Orion inspired game I'm working on.
Reply

Hey, speaking of formulae, does anyone know if there is a MoO1 ship design calculator anywhere on the internet that anyone has made? It would be very helpful to be able to, for example, input hypothetical tech levels in weapons, construction, etc., and see what you could fit on a small hull, medium hull, etc., and what the cost would be. I found it frustrating to, for example, research the mass driver weapon, only to find out that I cannot fit even one on a small hull at first. It would help one decide which techs to research if one could see when some of these thresholds will be crossed.
Reply



Forum Jump: