We-the-People-civ4col-mod / Mod

This is the repository where the mod resides.
86 stars 36 forks source link

Minimum city distance should be "round" , not "square". #145

Open abmpicoli opened 5 years ago

abmpicoli commented 5 years ago

city expansion follows a "round" pattern... that is , expansion is based on plot distance. (big distance + small distance / 2). So the distance between cities should also be based on a round pattern... This means that: if the minimum distance between cities is 4, by the current rule we can only found cities at these tiles around the city, or futher away: image

By the "round" rule, we could found cities around these lines, or further... image

This would allow for a more packed map, while giving the cities "room to expand", and avoiding the need of the "reduced colony distance" game option.

Nightinggale commented 5 years ago

avoiding the need of the "reduced colony distance" game option.

I disagree. The point is to be able to fill gaps better. Imagine this setup with 1 plot radius:

xxx..xxx
xOx..xOx
xxx..xxx

O is a Colony, x is catchment area and the periods are vacant land, which will never be reachable without reduced distance enabled.

I think I wrote about it elsewhere, though I can't find it. I'm thinking of splitting reduced colony distance into 3, one for humans, one for AI and one for natives. I have had some feedback about how it affects gameplay difficulty, particularly a new map will have more native settlements, which in turn reduce the amount of land you can use without upsetting natives.

abmpicoli commented 5 years ago

Ok, I agree that we could still add a reduced colony distance option... But the need for it will be minimized. Notice that if you look at a larger map you still could occupy those land plots, by founding two cities instead of one: image

abmpicoli commented 5 years ago

Also notice that it would take many turns until one of the cities expand to radius 3 and one to radius 2 to occupy those plots (or build and occupy a fort) to make that third city. With the round option you only have to build those two cities ... no need to wait for plot expansion...

Nightinggale commented 5 years ago

Notice that if you look at a larger map you still could occupy those land plots, by founding two cities instead of one Usually when you end up in a situation like that, it's due to terrain and they colonies can't be aligned as perfect as that. Besides your example still has unreachable plots.

Scrapping reduced colony distance is a poor choice because it's makes colony placement a lot easier when using 1 plot radius. In fact lacking it will be annoying, particularly now that people have played with it. I made it a game option in the first because precisely because it's a topic people can't agree on and a game option makes it optional.

abmpicoli commented 5 years ago

Well... I think that scrapping the "reduced colony distance" is not necessarily a part of the request. What I intend to say is that it will become less of a "mandatory option" as it is today... One interesting crazy thing is that we can make the map even more packed by using the reduced colony distance option in a circular pattern as well... this will allow you to even use one single plot gap: image Notice that if the "reduced colony distance" is a "round" 3, a distance of (2,2) is 3, allowing the occupation of even a single plot gap...

Nightinggale commented 5 years ago

I think you need to draw maps of all the different scenarios, like you draw the colony and then color all the plots, which it will prevent other colonies from being built in. Use a different color for those plots, which can only be used if reduced colony distance is on and all the plots are owned. Do that for both 1 and 2 plot radius.

We will all know what we are talking about if there are such drawings. Right now I fear there is a risk that we might not read 100% the same into the text, hence disagree on if certain placement is allowed or not. It's a fairly big change to the gameplay and one, which we should agree on before doing anything.

abmpicoli commented 5 years ago

Ok, let me explain better... A square distance between two plots is Max( delta x, delta y). If the minimum distance between city is "square 4", then it will be forbidden to build a new city at the following plots (the city is the star, x are "forbidden plots". image If the distance between city is "square 3", then it will be forbidden to build a new city at the following plots... image A round distance is defined as (big delta + (small delta) / 2)... so if tile1 is x=0,y=0 and tile2 is x=3, y=2, the distance will be bigger delta (3-0) + smaller delta (2-0) /2 : total 4. So tile 3,2 , 2,3 are tiles with distance 4, valid plots to build a city. A "minimum distance of 4, circular", would look like this. image A 3 plot, circular, minimum distance will look like this: image In short: the corners are colonizable, making possible to make a "honeycomb pattern" for cities. This show 3 cities very tightly coupled, following the "circular 4 distance" between them, and also showing the city radius... (the "circles" are city plots) image Now imagine that you have created 4 cities like this, in a square pattern (the big X are plots that are forbidden by circular 3 distance, small X are plots forbidden by circular 4 distance. image Notice that there is one plot that is not covered by any city, in the center. If we make the "reduced colony distance" rule be circular as well, we can create a new city exactly at the city center ... Allowing a player to utilize every tiny crank in the game, and making a better map utilization...
EDIT: I agree, this last example doesn't make sense if we use a 5 x 5 radius. Although it does make sense for colony utilization. Check my next post.

orlanth commented 5 years ago

I agree in vanilla civ4 it can get frustrating trying to plot out jigsaw shapes of future "fat cross" land structures while having fiddly gaps in between.

One feature of Civ 6 I actually really like (I know, blasphemy 😛 ) is that city borders don't suddenly expand in a huge "jump" from 1 to 2 radius, but instead the city can gradually claim another tile into your culture borders every time you accumulate enough Culture. This can be somewhat flexible and you can spend gold to purchase another desired tile early.

I don't know if something like this would be a big coding hassle, but could be an option to think about in terms of enabling more gradual/realistic spread of borders.

Nightinggale commented 5 years ago

It looks like the whole talk about round colony distance is based on the fat cross catchment area. We actually don't have that. It just seems that way because that's how borders expand. If you own all the plots, a colony is able to use all plots in a 5x5 area, including the corners. With this in mind, using the square rather than round distance makes sense. With 1 plot radius, the catchment area is 3x3, which is also square.

I too like the gradually expanding the borders rather than big jumps. I know we can code it because it's 100% in the DLL, but I can't say anything about coding difficulty.

abmpicoli commented 5 years ago

I agree my last example didn't make sense with a 5x5 catch area... But the issue with square borders affect colony placement... Even with the reduced colony distance rule, the use of the square distance as a limit to where to colonize makes proper plot utilization very difficult... Consider this map: under the square rule both the portuguese and the russians can only build a new colony far north, forming a big "no man zone " in between both powers: image With the round rule, a city can be built in between them, effectively allowing the terrain to be used. image

Nightinggale commented 5 years ago

I get your point, but I'm still a bit worried. How will the AI respond to being able to place more colonies? Will the natives build more settlements and become stronger from the start? Will the natives have used all available land at the start, effectively removed all decent starting areas?

Another issue is that colonies should never be able to get another colony within the catchment area. This means colonies should always reserve 3x3 or 5x5 plots to prevent this and we need to make sure no settings like reduced colony distance can allow founding a new colony within that area.

abmpicoli commented 5 years ago

I get your point, but I'm still a bit worried. How will the AI respond to being able to place more colonies? Will the natives build more settlements and become stronger from the start? Will the natives have used all available land at the start, effectively removed all decent starting areas?

All these issues are easy to solve... 1) Make natives found villages with a minimum distance of, say, 6 round: this will give enough gaps to fit the player colonies within... And make a minimum distance of, say, 8 circular between two indian players... Specify a number of starting settlements for each indian player based on the number of land tiles...

Another issue is that colonies should never be able to get another colony within the catchment area. This means colonies should always reserve 3x3 or 5x5 plots to prevent this and we need to make sure no settings like reduced colony distance can allow founding a new colony within that area.

I don't see why. We have that for the indians , for example... What I think we need to complement this request is the hability to claim tiles from another city we own, for example... Like what we have (at least) at civ5... (don't remember civ4, but I think there is the same feature...). EDIT: I've just found that civ4col have the same feature, no need to implement...

devolution79 commented 5 years ago

I always set the minimum distance to 2 rather than 3 since I think the default is just silly. @Nightinggale added an option to allow additional filler cities to be founded so that you could fill in the gap. However, it requires you to own all the plots surrounding the filler city. I propose that we rework this option to only require that you own the city plot itself. The result of this should be that cities are initially founded with a distance of 3. When your culture expands enough, you can add filler cities at a distance of 2. I think this is an acceptable compromise.

abmpicoli commented 5 years ago

With what is being proposed (round distance) filler cities could be found at any time, not after 100 turns of cultural growth, or by spending 500 gold on a fort to claim terrain... And at the same time, cities would still have a significant space reserve...