Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2004:
[Freeciv-Dev] Re: (PR#8624) New clima function to best handle terrain pl
Home

[Freeciv-Dev] Re: (PR#8624) New clima function to best handle terrain pl

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: mburda@xxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#8624) New clima function to best handle terrain place, used to place poles.
From: "Jason Short" <jdorje@xxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 23 May 2004 01:01:38 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=8624 >

Marcelo Burda wrote:

>>2.  Clima isn't an english word.  I guess it's French or Flemish?  What 
>>can we call this function in english?  Or maybe we can invent a new term 
>>(at least that way it's unique), but in that case we have to make sure 
>>it's well defined.
> 
> french-spanish clima is translated to climates/climes, you think
> temperature is best?

Temperature is okay.  Or we can keep clima and define it in the docs 
somewhere.

>> Also x_2 is not a good 
>>name.  And, don't you want x_2 = (NATURAL_WIDTH + 1) / 2 so that when 
>>you divide by x_2 later you never get a value over 1?
> 
>  never.

ok

>>5.
>>
>>+  return 150 * (x * x * y + x * y * y) - 50 * (x * x * x + y * y * y) +
>>+      150 * (x * x + y * y);
>>
>>This needs some explanation.  Does this come from the Pierce projection?
>>
> 
> This is symplt a mathematical equation to make poles as 2 separate
> cercles and equator whit a shape of squere, this whit a area
> proportionality.
> i am create it to be exatly i want.

Well, I understand that it does what you want it to :-).  But I need 
some explanation of the math.  A picture would be especially nice.

>>9.  In this code:
>>
>>-    if (adjacent_river_tiles4(x, y) != 0||
>>-       adjacent_ocean_tiles4(x, y) != 0) {
>>+    if (adjacent_river_tiles4(x, y) != 0 ||
>>+       adjacent_ocean_tiles4(x, y) != 0 ||
>>+        (map_get_terrain(x, y) == T_ARCTIC
>>+         && map_clima(x, y) < 8)) { /*rivers end at poles */
>>
>>why?  And can you avoid the reference to T_ARCTIC here?
> 
> simply there is not posible to make big rivers on poles, i can define a
> class of tiles ice and chek for it to make rivers end at poles, ice is
> water.
> if i avoid this very long rivers are create on circle poles, and the
> number of rivers on land is reduced, very bad!

This should be fixed in the ruleset by removing rivers from arctic 
entirely.  See the CanHavePoles terrain flag.

Maybe this should be done for civ1 and civ2 also, I dunno.

>>13.  The poles are very large.  Particularly in the standard case it's 
>>just wasteful to put lots of arctic tiles up there.  I'm really not sure 
>>what to do about this.
> 
> mmmm poles are 20%, we can reduce it to 10%(or less) if separate poles
> option is actived for clasical topologies, the poles are less
> interesting in clasical topos spetialy when separated.
> for circle poles i think we can make somethig interesting, spetial
> wonders as "Scott voayage" to reduce lost danger, create spetialist
> civilizations than can expand on these climes. probably we can whait a
> litle befor reduce poles less than a 20% exept for the separatepoles
> classic topos

For cylinder maps the poles should generally be 1-2 tiles in size (like 
they are now).  This is hard to measure as a percentage.  Several 
choices come to mind:

- Calculate the polar percentage based on the map size.  So if 
ysize==100 then you have 2% to 4% poles.

- Clip off some of the poles, based on the map size.

The second choice may be hard to understand, but think of it like this: 
in the hagworld scenario (included in CVS) Antarctica is huge.  Although 
realistic this isn't helpful for gameplay.  You could cut off the bottom 
3 rows of tiles and nobody would notice.

In a torus this isn't a problem because the poles are actually done to 
scale.

---

There's another minor problem because your temperature value only has 
100 possible choices.  But on a large map you can have xsize==200.  So 
there's not as much resolution to the temperature measurement as there 
is to the map.

So maybe the temperature value should either be a double, or should be 
on a 0-1000 scale.

I doubt anyone would ever notice this problem but if mapgen starts using 
finer gradients they wouldn't work right.

jason




[Prev in Thread] Current Thread [Next in Thread]