Complete.Org: Mailing Lists: Archives: freeciv-dev: July 2003:
[Freeciv-Dev] Re: (PR#1870) FreecivAC: borders patch
Home

[Freeciv-Dev] Re: (PR#1870) FreecivAC: borders patch

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients: ;
Subject: [Freeciv-Dev] Re: (PR#1870) FreecivAC: borders patch
From: "Ben Webb" <ben@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 4 Jul 2003 04:27:26 -0700
Reply-to: rt@xxxxxxxxxxxxxx

On Thu, Jul 03, 2003 at 05:29:16PM -0700, Rafa� Bursig wrote:
> Dnia 2003.07.03 16:25, Ben Webb napisaÅ?(a):
> > Fishing fleets and oil rigs frequently operate in international
> > waters, as I understand it.
> This is all about "deep" ocean action but city don't have acces to 
> neutral area only for own or enemy tiles (if enemy city is close).

If the Harbour and Offshore Platform improvements are not supposed to be
direct models for real-world fishing fleets and oil rigs in
international waters, what are they supposed to be?

> If you build coast city you get acces to 2 lines of ocean tiles and 
> currect code (in best case) give ownership only for one line of tiles.
> Normaly borders end on coast and those 2 lines of tiles will be outside 
> your territory and this is plain wrong becouse city can access to those 
> tiles.
> 
> you fix it by allowing work on neutral tiles but this is hack which 
> IMHO is wrong way.

I don't consider it a fix or a hack. This is exactly the same as what
SMAC does, and has a real-world analogue. I am not going to "fix" it
without any compelling gameplay argument (I'm assuming the SMAC guys did
some minimal testing of their approach!) and certainly not because I'm
told "it's just wrong".

> > In the case of an enemy city located close to your own, many tiles
> > within your city radius will also not be in your territory.
> And you wont be able work here.

Correct.

> You should work only on yours terrains.

SMAC allows you to work on any tile that is not owned by an enemy. So
does the borders patch. This is the same point again.

> > Yes, but this is a more general problem (e.g. the AI building naval
> > units on 1x1 lakes).
> This is not map problem only AI. Boders are map functionality.

Trireme loss is another example. Read Ross's post. It's a map generator
problem; it shouldn't be creating lakes and labelling them "ocean", and
putting whales in them.

> > I can't tell from the attachment whether that's a different 
> > continent. Borders do suffer from a "Gibraltar" effect as mentioned 
> > in the README, but that's because we use map distance rather than 
> > unit travel time to determine the border radii.
> I check it and this player is on other continet.

If I can't reproduce your problem, I can't fix it. Send me a savegame.

> > It's all about the level of simulation. Ideally, you wouldn't be able
> > to work ocean tiles until you knew how to build ships, and borders 
> > would be determined not only by the location of cities, but by the 
> > presence of military units, fortresses, etc. But that would add 
> > complexity, so we must compromise.
> Sorry but such level of simulation isn't implemented in game.

That is my point. That's why we compromise and do not allow claims of
land tiles on other continents.

> Tiles that you call "neutral" and belong to city aren't neutral.
> For me "Neutral" tiles are tiles placed outside your cities : work 
> area, border range. And don't belong to other player.

I don't call them neutral. You do, in
http://lists.complete.org/freeciv-dev@xxxxxxxxxxx/2003/07/msg00040.html.gz
The borders patch calls such tiles "unclaimed".

> > > What about ocean city that was build near land you made different
> > code for that or simple lands terrains wont be yours ?
> > If you mean - what happens if you join two continents by transforming
> > ocean to land? - then borders are recalculated in this case. I'm also
> > assuming that by "ocean city" you mean a coastal city. The borders
> > code also supports cities physically located in the sea, which are 
> > possible in SMAC and in FreecivAC.
> I think about cities physically located in the sea.

Such ocean cities claim all immediately adjacent tiles, plus all ocean
tiles up to the border range.

>    adjc_iterate(x, y, xp, yp) {
>      ptile = map_get_tile(xp, yp);
>      if(is_first_city_more_importand(ptile->city, closest)) {
>        closest = ptile->city;
>      }
>    } adjc_iterate_end;
> 
>    if(!closest) {
>      square_iterate(x, y, 2, xp, yp) {
>        if(xp == x - 2 || xp == x + 2
>           yp == y - 2 || yp == y + 2) {
>          ptile = map_get_tile(xp, yp);
>          if(is_first_city_more_importand(ptile->city, closest)) {
>            closest = ptile->city;
>          }
>        }
>      } square_iterate_end;
>    }
> 
>    return closest;
> }

This could be done far more simply and generally with
map_city_radius_iterate.

> This fix city area problems but not coast problems (ocean near your 
> land should be in your territory)

The problem with claiming ocean one tile deep around your coastline is
that it effectively makes all oceans less than three tiles wide
impassable.

        Ben
-- 
ben@xxxxxxxxxxxxxxxxxxxxxx         http://bellatrix.pcl.ox.ac.uk/~ben/
"So maybe you're a 4 horse engine with a power drive"



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