Time for some more funny facts about BotF ^^

Note: I'll use the abbreviation "sqrt" for the square root function, e.g.

sqrt(4) = 2

**1. Population Growth**

I'm not talking about the growth percentage (this has been covered before), but about the actual pop increase at the start of each turn. Although this seemed to be simple at first, it turned out to be one of the most complicated game mechanics, so I divide it into 5 sub-chapters.

Newly colonised systems will already grow during the turn they're colonised.

**1.1 Starvation**

If the system's food output is less than its population, then the population decreases. The formula does not look pretty, but neither nasty enough to scare a Klingon

[population loss] = 0.1 *

**sqrt (**[current population] * ( [current population] - [food output] )

**)**

The remaining population is always rounded UP.

This means that a system with a population of 9 or less cannot shrink any further by starvation.

**1.2 The Effect of Unemployment**

If a system has a food output equal to or greater than its current population, but does not have enough population-employing structures (farms, factories etc.) to employ more than 50% of its population, then it cannot grow by more than 1 population point per turn. This will overrule all calculations of sections 1.4 and 1.5.

**1.3 The Effective Food Output**

This is only needed for the formula in section 1.4.

"Normally", the effectice food output is just the system's food output.

The only exception is:

If the system's food output is greater than its maximum population capacity (not counting any planets that have yet to be terraformed), then the effective food output is equal to the maximum population capacity.

Note: The game will tell you something about "required food for maximum growth", displaying 2 times the system's current pop, but that's just plain nonsense.

**1.4 The Growth Formula**

The (exact) population increase of a system with a food output equal to or greater than its current population is given by

[population increase] = 0.5 * [growth rate] * ( [current population] + [effective food output] )

"Growth rate" is the system's "growth" value listed on the F1 screen. For example, if the screen displays "1.3%", then the growth rate is 0.013 (which is the same value, but without using the % sign).

However, if the growth rate is less than 0.01 (= 1%), then it is treated as 0.01 (= 1%).

But the result is most likely not an integer. If it's smaller than 1, then the system's population grows by one point. But if not, then the game has to decide whether it's "rounded" up or down. This leads to...

**1.5 The Random Generator**

The game creates a random value between 0 and 1. If the random value is greater than the internal decimal places of the (floating-point) pop increase, then the increase is rounded down. Else, it's rounded up.

This means, it you have an exact increase of, say, +3.375, then there's a 37.5% chance that the system grows by 4 pop points and a 62.5% chance that is grows by 3 pop points.

The random value is fully determined by the starting seed, i.e. saving and loading will lead to the same results, but starting a new game and doing exactly the same can lead to different results.

I've tested this by starting many identical games in a row and comparing the first-turn growth results:

*Test 1*

number of test games: 100

system: Ferenginar, starting population 20, growth rate 0.028, eff. food output 310

exact pop increase: +4.62

possible pop increases: +4 or +5

average observed pop increase: +4.68

Test 2

number of test games: 100

system: Cardassia, starting population 20, growth rate 0.027, eff. food output 345

exact pop increase: +4.9275

possible pop increases: +4 or +5

average observed pop increase: +4.93

number of test games: 100

system: Ferenginar, starting population 20, growth rate 0.028, eff. food output 310

exact pop increase: +4.62

possible pop increases: +4 or +5

average observed pop increase: +4.68

Test 2

number of test games: 100

system: Cardassia, starting population 20, growth rate 0.027, eff. food output 345

exact pop increase: +4.9275

possible pop increases: +4 or +5

average observed pop increase: +4.93

**2.1 Terraforming Costs (simple)**

The required amount of work to terraform a planet is given by

[terraforming cost] = [planet's population capacity] * ( [planet type coefficient] + [planet atmosphere coefficient] )

The coefficients are:

Code: Select all

```
+ 8 for class P
+10 for class J
+ 7 for class G
+ 6 for class L
+ 4 for class O
0 for class M
+12 for class Y
+ 1.5 for atmosphere "methane"
+ 1 for atmosphere "none"
- 1.5 for atmosphere "oxygen rich"
+ 1.25 for atmosphere "sulfuric"
- 1 for atmosphere "thin oxygen"
```

The result is cut at the decimal point.

A negative result or a 0 means that the planet does not need to be terraformed.

For more details, see the link in next section.

**2.2 Terraforming Costs (advanced)**

Click here:

viewtopic.php?f=159&t=60

**3. Trade Goods**

The benefit of "trade goods" is given by

[gained credits per turn] = sqrt ( [industry output] )

This value is then rounded UP and added to the system's cash output (which is also rounded up BEFORE the 2 values are added together).

The cash generated by trade goods is not influenced by any credits bonuses.

Trade goods are quite efficient if the system has no manned industry structures, giving sqrt(5) = +3 credits per turn (rounded up, of course, not exactly ^^). The more industry production, the greater the waste.

The output value for trade goods in edifice.bst (+1 by default) is meaningless. Changing it doesn't have any effect on the cash output.

**Adjusting trade good output**

**4. Pattern for X-Ray Pulsars**

Period length: 4 turns

Explanation:

0 means no effect on this square.

a means -2 scanning strength on this square.

b means -4 scanning strength on this square.

c means -8 scanning strength on this square.

d means -16 scanning strength on this square.

e means -32 scanning strength on this square.

f means -48 scanning strength on this square.

1st turn:

Code: Select all

```
00000
0ddd0
0ded0
0ddd0
00000
```

2nd turn:

Code: Select all

```
00000
00000
00d00
00000
00000
```

3rd turn:

Code: Select all

```
00000
0ddd0
0ded0
0ddd0
00000
```

4th turn:

Code: Select all

```
0ddd0
deeed
defed
deeed
0ddd0
```

**5. Pattern for Radio Pulsars**

Period length: 8 turns

Explanation:

0 means no effect on this square.

a means -2 scanning strength on this square.

b means -4 scanning strength on this square.

c means -8 scanning strength on this square.

d means -16 scanning strength on this square.

e means -32 scanning strength on this square.

f means -48 scanning strength on this square.

1st turn:

Code: Select all

```
000000000
000000000
000000000
000000000
abcde0000
abcd00000
0ab000000
0a0000000
```

Code: Select all

```
000000000
000000000
000000000
000000000
0000e0000
000dd0000
00bcc0000
0aabb0000
000aa0000
```

Code: Select all

```
000000000
000000000
000000000
000000000
0000e0000
0000dd000
0000ccb00
0000bbaa0
0000aa000
```

Code: Select all

```
000000000
000000000
000000000
000000000
0000edcba
00000dcba
000000ba0
0000000a0
000000000
```

5th turn:

Code: Select all

```
000000000
0000000a0
000000ba0
00000dcba
0000edcba
000000000
000000000
000000000
000000000
```

6th turn:

Code: Select all

```
0000aa000
0000bbaa0
0000ccb00
0000dd000
0000e0000
000000000
000000000
000000000
000000000
```

7th turn:

Code: Select all

```
000aa0000
0aabb0000
00bcc0000
000dd0000
0000e0000
000000000
000000000
000000000
000000000
```

8th turn:

Code: Select all

```
0a0000000
0ab000000
abcd00000
abcde0000
000000000
000000000
000000000
000000000
000000000
```