Complete.Org: Mailing Lists: Archives: freeciv-dev: January 2003:
[Freeciv-Dev] Re: (PR#2749) place_land_type in mapgen
Home

[Freeciv-Dev] Re: (PR#2749) place_land_type in mapgen

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: kayeats@xxxxxxxxxxxx
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#2749) place_land_type in mapgen
From: "rwetmore@xxxxxxxxxxxx via RT" <rt@xxxxxxxxxxxxxx>
Date: Mon, 13 Jan 2003 19:29:43 -0800
Reply-to: rt@xxxxxxxxxxxxxx

At 06:30 AM 03/01/08 -0800, kayeats@xxxxxxxxxxxxxxxxxxxxxxxxx via RT wrote:
>
>> I'm not sure I like your distribution functions yet. In any algortihm
>> in which you calculate probabilities in advance, then distribute
>> purely according to probabilities, you lose a lot of local effect
>> ability. Once you place a forest tile, there needs to be heightened
>> probablity of a neighbouring tile being forest. The same for swamps
>> and deserts. Mountains/hills are different in that you *do* want to
>> break up clumps of these with at least running valleys.
>
>This is a very valid point but I think that if you actually play with it
>you'll find it isn't a problem.  To get something that I think the average
>joe would find fair I had to weight the algorithms so that clumping was
>quite strongly reduced.  This particularly applies to the plains and to
>the three layer forests (which admittedly is rather a hack).  Play with
>the parameters in those two placing functions (for instance I like 10 in
>the forest function, I think such forests make very realistic clumps).

I think this actually says the opposite ... your initial distribution
function is like the fractal generator, either all clumpy with a strong
preference in where the clumps appear, or purely random. You don't 
really get a random type distribution with local clump effects. There
is not a lot of control over realism, although it may be sufficient if
tuned carefully and the tuning conditions are not violated in a given
generator by other choices.

That you get things as good as you do is still pretty impressive.

>For swamps if you turn them up enough to get a non-negligiable number
>you'll see that in some places they clump into large swamps and there are
>other scattered swamps too.  I think if you look at wetlands in the world
>you will find this quite realistic.

The proof is always in the cases where it fails rather than succeeds. :-)

But I'll wait for sufficient evidence to accumulate before coming to a
final conclusion. You should try to provide tools or explanations on
how to setup different types of global and local distributions. Others
will want something different that what you have tuned things to, or
will want to customize some elements. So you do need to provide an
understanding on how this should work.

I know this was very difficult if not impossible with the fractal 
generator.

>I admit that I lose some flexibility in calculating the distribution in
>advance. 

There is probably a lot of flexibility in choosing the distribution. 
the trick is in how the distribution gets randomly selected, and this
means that you need multiple criteria and not just a linear magnitude.
The criteria might need to change as you proceed with the selection
which is easiest if you have two (or more) disjoint techniques, i.e.
one for each type of effect.

The current CVS algorithm may not have a large probability for a 
forest in a given location, but once there it has a tendency to 
spread out over the local area in realistic and controllable ways
that are significantly at odds with just the purely random per tile
distribution. The local and global controls here are separate.

> However I think it is worth it.  In practice the disadvantages
>can be minimized, and the advantages are in having only to loop through
>the whole world twice while still guaranteeing up to a random factor
>getting the amount of each terrain that you ask for.

The double loop is a good fix. CVS is broken this way, but the 
technique to do this is already used extensively in the corecleanup 
version with essentially the CVS two stage distribution functions.
So you don't need to go to your single stage distribution to get it.

The thing I like a lot about your method is, it does have a generic 
placement framework or methodology that is reused by all as opposed
to duplicated code. That it is fairly simple to begin with is ok, but 
over time hopefully it can grow more sophisticated extensions. 

I'd like to see it capable of reproducing a range of behaviour that 
includes CVS, rather than falling short. Absolutely so if it replaces 
rather than provides an option to CVS, and the option extensions are 
going to be very limited until the standalone framework allows one to 
break out of the single server/mapgen.c paradigm.

Cheers,
RossW
=====






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