Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2002:
[Freeciv-Dev] Re: mapgenerator6 - single continent [cvs diff -u]
Home

[Freeciv-Dev] Re: mapgenerator6 - single continent [cvs diff -u]

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: <kayeats@xxxxxxxxxxxxxxxxxxxxxxxxx>
Cc: <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: mapgenerator6 - single continent [cvs diff -u]
From: "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>
Date: Sat, 26 Oct 2002 16:08:05 -0400

At 04:38 PM 02/10/25 -0400, Karen Yeats wrote:
>> would manipulate the generator. Each generator could use the values
>> differently. This hypothethical example might direct the generator to
>> have 6 major landmasses, 40 minor ones, 8 major deserts and inland
>> seas. Obviously an option for the more anal of us. Karen, Ross, what
>> do you think about this?
>
>I think that what we need is to have server variables which are
>subordinate on others.  Each map generator has different parameters which
>can be naturally played with, trying to force a generator to do something
>which isn't natural for it will either not work or make the map ugly or
>unnatural.  So once you pick, say mapgen 5, then you can pick the values
>of the parameters which determine the granularity of the continents (ydiv
>and xdiv in the code I think), but forcing it to have exactly 6 major
>landmasses isn't going to be practical while still keeping in nice.
>
>I suppose a generic map.parameters which is parsed differently for each
>generator would do the trick however I think that the different meanings
>for the different generators would be sufficiently different that this
>would be quite confusing.  Mapgen 5 for instance is particularly rigid, it
>does one thing (very well I think) but its not easy to fiddle with it to
>do other things.  Other generators are much more flexible at the expense
>of being less pretty overall.  Consequently very different parameters will
>be relevant.

Karen has the basic idea right to my way of thinking. Ideally there would
be a (small) set of "user-friendly" parameters exposed in the main mapgen 
interface. Generators would attempt to map these values to their own input
before generating maps. There would also be a "low-level" interface for
each generator that allowed you to twiddle all its magic bits if you were
so inclined as an "Advanced Settings".

But there are (at least) two fundamentally different approaches or design
goals to generation and not every generator will have suitable mappings to
any specific set of inputs. The two basic flavours I am thinking of are:
1) generate a basically random map, but use modifying code/rules to try and
smooth or clump random elements in a locally more sensible manner.
2) generate a completely specified map (i.e. numbers of terrain types or 
features) but with some sort of randomizing of placement or shape.

Mapgenerator1&5 are more or less of type 1, mapgenerato2-4 of type 2. It
is virtually impossible to make 1&5 do the specified kind of allocation
listed above. 1&5 are my perferrred techniques for standalone play, while
2-4 are strongly mandated by those desiring "fair" competitive play. Even
mapgenerator1&5 have key differences in that 1 has a much more varied
range of land distribution, while 5 is typically more of a pangea world.
It is difficult to get 5 to build an archipelago world with some major
sized elements, for instance. Conversely it is difficult to predict just
what you might get with 1 in any given case.

>I think it would make sense to have two different parameter sets, one for
>stuff which relates to making the heightmap, and one for stuff related to
>placing the different terrains, (the current terrain ratio stuff could go
>in with the lattter).  Ultimately if mapgen is more modularized as Ross
>and I would like then you could pick from a choice of heightmap generators
>and seperately pick a terrain placing algorithm (I think Ross would
>actually like to break this up even further, but I'm aiming for this level
>of broken-up-ness) so this would make sense.

Flavour 2 proponents want some control over both heightmap/land distribution,
terrain distribution, and resource distribution. An all forest island vs
an all grassland island are not considered "fair" starting locations. Just
as one heavily populated with concentrated specials, vs one that has the
same rough food/shield/trade count but more evenly balanced per tile.

>> > instead of some hard coded values. Else we will need a lookup
>> > table soon if we keep adding "new" generators. See also
>
>I can't seem to find the source of this comment.  I'm only reading the
>mailing lists on the web so probably it is someone not subscribed
>(like me) and hence whose posts don't seem to appear in the archive.
>I'm curious what was said given my interest in ultimately having a system
>where generators can be chosen like tilesets are (then bizarre generators
>can be used by those interested without bloating mapgen.c)

mapgen.c is largely a replacable plugin. Ideally, one would just exec a
standalone program that generated a map in the starting civgame.sav.gz
location and returned control to the server for play. Thus anyone could
setup their own mapgenerator including trivial things like random selection 
from a directory of pregenerated samples. 

Civworld is the appropriate location for any lookup index, or the set of
complex sub-element generators with their mix 'n match controls. The 
server should have a small set of default basic generators that are always
available plus the ability to exec a standalone program, then a contributed 
download section could have a varied selection of additional standalone 
flavours with their appropriate ruleset updates or *.rc file used for 
parameterization/controls.

Cheers,
RossW
=====




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