Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2002:
[Freeciv-Dev] Re: RFC: new implementation of island numbering
Home

[Freeciv-Dev] Re: RFC: new implementation of island numbering

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Mike Kaufman <kaufman@xxxxxxxxxxxxxxxxxxxxxx>
Cc: Freeciv-Dev <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: RFC: new implementation of island numbering
From: "Anthony J. Stuckey" <astuckey@xxxxxxxx>
Date: Sat, 16 Nov 2002 16:14:23 -0600

On Sun, Nov 10, 2002 at 03:01:10PM -0600, Mike Kaufman wrote:
> Here is an idea I have for solving several problems related to general
> improvement effects as well as PR#2238.
> 
> here I use islands and continents interchangeably.
> 
> Currently, the server and the client have different ideas as to what is a
> continent. Since the server sees the whole map, the server can determine
> precisely which tile belongs to what continent and assigns that tile a
> number. (see mapgen.c:assign_continent_numbers())

        Yes.

> The client doesn't have the luxury of being omniscient, it can only see
> what is known. so if a nation sends out a ship exploring and runs into a
> new landmass which isn't visibly connected to the original land, it does
> not really know whether it's a different continent altogether or the same
> continent connected somewhere in the unknown part of the map. So it
> defaults to a new continent and if later it finds out they're the same,
> merges the the continent under the same number. 
> (see climisc.c:climap_renumber_continent())

        Yes.

> This disparity has some immediate consequences, namely for trade routes and
> some effects: for trade routes, cities on different continents get a better
> deal than ones on the same continent. So if the client calculates the
> trade, it might wind up with a different answer than the server which is
> the origin of 2238. Or for island-wide effects, this behavior leads to more
> information than a client needs to have: the presence of an effect could
> tell a client about unknown terrain.

        Yes.  Thought that this was all well-understood.

> My solution to these problems is to have the server calculate all
> continents numbers, but to do so from each client's point-of-view. So
> instead of saving these numbers in tile->continent, they will be in
> player_tile->continent. That way, for you, the server and you have the same
> idea of geography.

        Buh?!?!

> Davide has raised a concern that the new behavior is exploitable in the
> following way:

        Indeed.  The server should rule.

[...]
> if you found two cities as so and create a trade route between them, you
> will get the benefit of a trade route between separate continents, even if
> you're reasonably sure that the two cities are sitting on the same
> continent. That's true, but I contend that this is an unusual strategy, one
> that takes more work than gives benefit, since if you uncover any of the
> unknown your benefit goes away, and it's potentially dangerous to have that
> situation for trade benefit, and you _don't_really_know_ if these cities are 
> actually on the same continent. In short, I don't think that this is a good
> enough reason not to do this.

        The situation should never be allowed to arise.

[...]
> Interesting: should mere knowledge of geography or lack thereof be a
> deciding factor in whether an effect works?

        No.


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