On Mon, 05 May 2014 00:24:12 +0200
LoneVVolf <lonew...@xs4all.nl> wrote:
> I finished the table for Conifer Forest terrain, took about 6 hours of work.
> It's a tedious and boring task, and i am currently the only one working 
> on them.

No doubt about that.  Thanks for the effort.  
 
> Comparing hills / mountains and Conifer forest tables suggest that how 
> the x2 expert/master bonuses are applied depends on the product.

I have looked hard at the results so far and agree with you.  Here is my
full analysis:

Catenating and simplifying the coniferForest table by omitting the
plowed and convert columns we get:

Bonus Resrc Road  River FreeC Expert
-2    -     -     -     4     10
-2    -     -     Y     6     12
-2    -     Y     -     6     12
-2    -     Y     Y     8     14
-2    Y     -     -     8     18
-2    Y     -     Y     10    20
-2    Y     Y     -     10    20
-2    Y     Y     Y     12    22

-1    -     -     -     5     11
-1    -     -     Y     7     13
-1    -     Y     -     7     13
-1    -     Y     Y     9     15
-1    Y     -     -     9     19
-1    Y     -     Y     11    21
-1    Y     Y     -     11    21
-1    Y     Y     Y     13    23

0     -     -     -     6     12
0     -     -     Y     8     14
0     -     Y     -     8     14
0     -     Y     Y     10    16
0     Y     -     -     10    20
0     Y     -     Y     12    22
0     Y     Y     -     12    22
0     Y     Y     Y     14    24

+1    -     -     -     8     16
+1    -     -     Y     10    18
+1    -     Y     -     10    18
+1    -     Y     Y     12    20
+1    Y     -     -     12    24
+1    Y     -     Y     14    26
+1    Y     Y     -     14    26
+1    Y     Y     Y     16    28

+2    -     -     -     10    20
+2    -     -     Y     12    22
+2    -     Y     -     12    22
+2    -     Y     Y     14    24
+2    Y     -     -     14    28
+2    Y     -     Y     16    30
+2    Y     Y     -     16    30
+2    Y     Y     Y     18    32
Bonus Resrc Road  River FreeC Expert

Looking at these results, here are some observations, annotated with
[C] where Col1 is doing something we are not, [F] where the FreeCol
behaviour was already correct, and [f] where FreeCol is now correct in
trunk following git.3980654.

1. When the colony bonus is positive, it is worth 2 * bonus, and
   4 * bonus lumber with an expert[C].  In the non-positive cases,
   the bonus is just added unmodified[F].

2. The resource bonus is doubled when using the expert unit[f], but is
   otherwise always worth +4[F].

3. Roads and rivers are cumulative and both worth +2[F] in all cases.

4. Base productivity is 6[F], doubled with the expert unit[F].

5. We are omitting the Swedish national building advantage, but that
   is a FreeCol extension which we have always just added at the end.

6. A formula that works for coniferForest/lumber is:

   (BASE + RESOURCE) x EXPERT + RIVER + ROAD + COLONY

   BASE =     6 ; conifer forest/lumber
   RESOURCE = 0 ; no resource
              4 ; lumber resource present
   EXPERT =   1 ; non-expert
              2 ; expert unit
   RIVER =    0 ; no river
              2 ; river present
   ROAD =     0 ; no road
              2 ; road present
   COLONY =   <rebel-bonus> ; bonus <= 0
              2             ; bonus > 0
              4             ; bonus > 0, expert-unit


OK, so far so good, only one outstanding bug.  Now let us consider
confierForest/fur:

Bonus Resrc Road  River FreeC Expert
-2    -     -     -     0     2
-2    -     -     Y     2     6 
-2    -     Y     -     2     6
-2    -     Y     Y     4     10

-1    -     -     -     1     3
-1    -     -     Y     3     7
-1    -     Y     -     3     7
-1    -     Y     Y     5     11

0     -     -     -     2     4
0     -     -     Y     4     8
0     -     Y     -     4     8
0     -     Y     Y     6     12

+1    -     -     -     3     6
+1    -     -     Y     5     10
+1    -     Y     -     5     10
+1    -     Y     Y     7     14

+2    -     -     -     8     16
+2    -     -     Y     12    24
+2    -     Y     -     12    24
+2    -     Y     Y     16    32
Bonus Resrc Road  River FreeC Expert

1. Colony bonus is different here.  The +2 result is just weird.
   Otherwise the bonus is just added unmodified[F] except for the
   positive-expert case where it is +2[C].

2. Missing the resource data --- the game resource should be relevant.

3. Roads and rivers are cumulative and worth +2[F], except for the expert
   unit where they are worth +4[C].

4. Base productivity is 2[F], doubled with the expert unit[F].

5. The formula above only works with more special handling for the colony
   bonus and special cases for road-or-river-with-expert.  A formula of
   
   (BASE + RESOURCE? + ROAD + RIVER) x EXPERT + COLONY'

   would work better here.  But not for confierForest/lumber.


Looking at BR#2628, we can consider hills/ore:

Bonus Resrc Road  River FreeC Expert
0     -     -     -     4     8
0     -     Y     -     5     10
0     Y     -     -     6     12
0     Y     Y     -     7     14
+1    -     -     -     6     12
+1    Y     -     -     8     16
+2    -     -     -     7     14
+2    Y     -     -     9     18
Bonus Resrc Road  River FreeC Expert

1. Colony bonus follows the same pattern as for coniferForest/lumber[C],
   although negative cases are not present in the data.

2. The resource is worth +2[F], doubled for the expert unit[f].

3. A road is worth +1[F], but +2[C] with an expert unit.  This is more
   like coniferForest/fur.

4. River data is omitted.

5. Base productivity is 4[F], doubled with the expert unit[F].

6. The formula that might work here is:

   (BASE + RESOURCE + ROAD + RIVER?) x EXPERT + COLONY

   which is different again from the previous two.


I could add in the results from BR#2629, but silver is also just weird.

The question then is how to accomodate these variations.  The colony
bonus already has its own special routine, which will clearly have to
get a bit more complex.  The different handling of roads and rivers
means we have to pick one formula and vary the road and river bonuses
by context.  I propose arbitrarily to work from the
coniferForest/lumber formula (mainly because that is the closest to
the existing code and tests), and try varying the bonuses using
scopes-by-unitType.  We shall see if that can work.

No promises on whether this can be completely fixed in a backward
compatible way.  The (BASE + RESOURCE) bracketing is done (git.a565ae7),
but the rest looks like a nasty rathole.

> Since we are aiming for a release, i think we should focus on getting 
> the display to match what the production code does now.

Agreed, and the display should now match as of git.3980654. If that
worked, that is the last of the release blocking bugs folks.  Look hard for
things that have been forgotten.  If nothing serious surfaces, I will aim
to release on the "next free weekend", which is a rather unconstrained
quantity but might include the coming one.

Cheers,
Mike Pope


Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to