1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

How to break ICS in a mod?

Discussion in 'Civ5 - Creation & Customization' started by es4, Oct 30, 2010.

  1. es4

    es4 Chieftain

    Joined:
    Aug 11, 2009
    Messages:
    73
    I've been trying to find a way to break ICS in my (currently personal) mod, but I'm just not seeing the type of things that would incentivize this.

    Some of the ideas that I can't seem to get to work:
    1) Increase per-city unhappiness, but give +1 happiness to some early buildings (the granary sounds obvious, and maybe barracks or walls as well). However, I don't see how to increase the per-city unhappiness from 2 to 4. I'm also not sure what the AI would do with this; at high difficulties it's pretty much unconstrained by happiness anyhow so it doesn't matter that much.
    2) Era-based happiness bonuses along with (1); with an extra +30 in the modern era you can get bigger/more cities, and it avoids weird happiness effects. This doesn't seem possible; the only things I can see the era can affect are policies and the cost of research agreements.
    3) Have per-city unhappiness be non-linear (aka the real fix). I just assume this requires the DLL.

    Some ideas I haven't tried, but am considering:
    4) Give cities a free building that has a per-city negative effect (i.e. -1 gold per city) as well as some bonus (population produces science points). You could sell the building, but then you lose ICS benefits.
    5) There's a table Improvement_AdjacentCityYields - perhaps certain improvements won't work as well next to a city? It would encourage cities to be placed far apart, at least.
    6) Limit settlers. There is InstanceCostMultiplier which might work, or maybe a limit of 1 active settler at a time?
     
  2. dfn

    dfn Chieftain

    Joined:
    Mar 26, 2008
    Messages:
    59
    Location:
    Calgary, Canada
    Enforce 6+ spaces between cities. Wouldn't that directly stomp all over ICS?
     
  3. jaldaen

    jaldaen Prince

    Joined:
    Feb 19, 2006
    Messages:
    467
    That would help keep the number of cities down, but it does has other effects such as rampant barbarians (b/c huge areas of land are constantly unseen/unclaimed) and the inability to easily connect your cities/borders making your civilization feel like a group of city-states rather than a whole empire. Also on smaller maps... it can result in only a few spots where cities can be built due to the presence of City-States in addition to regular Civs. It's also annoying when you send a settler toward an prime city spot... and discover that the seventh hex away from your city is too close to another civ's city. 4 spaces provides more wiggle room (and cuts the number of cities down). I haven't yet tried 5 spaces, but I think that would be pushing into the same problems as 6 spaces produce.
     
  4. dfn

    dfn Chieftain

    Joined:
    Mar 26, 2008
    Messages:
    59
    Location:
    Calgary, Canada
    This irritated me as well. In the end though, I didn't mind it, got used it. It actually made sense to me. If there is unclaimed land between 2 civs, it makes sense to fight over it, rather than be able to simply drop a city next to the opposing civ's border and rushbuy an army.

    At any rate, adjusting the distance between cities would be a sure-fire way of preventing ICS (imo). Of course, 6 may not be optimal, but some number higher than 3 at least.
     
  5. jaldaen

    jaldaen Prince

    Joined:
    Feb 19, 2006
    Messages:
    467
    I agree... 4 or 5 should work pretty well to slow down the ICS strategy... it'd still be beneficial to build as many cities as possible as quickly as possible (b/c you'll lock off entire areas of the map with further distances), but at least cities wouldn't be as tightly packed.
     
  6. Pazyryk

    Pazyryk Deity

    Joined:
    Jun 13, 2008
    Messages:
    3,584
    I like the idea of killing ICS through some cost mechanism. I don't like hard distance limits because I like the more organic spacing of cities in civ5 (some close, some far, as in the real world).

    Rather than your #4, however, you could just adjust the gold "yield" of the palace through Lua, potentially to very large negative yields. (I did this all the time in civ4 modding -- not sure if there is a function for this in civ5.) Just make a non-linear cost function for number of cities, then apply it to the palace yield.

    I don't think you need to worry about the AI. It does pack cities densely (or not, depending on your point of view), but I've never seen it even approach an ICS strategy.
     
  7. Nunya

    Nunya Warlord

    Joined:
    Sep 30, 2010
    Messages:
    270
    I set upkeep for all buildings to 0, but then I created a new building called "City" that has 10 upkeep, provides no benefits, and is automatically placed in evey city (free start era is ancient). So effectively each city costs you 10 gold. I also had to add an extra +10 gold to the Palace so it covers the upkeep costs of your capital.

    In standard ICS each standard filler city is size 4 and only has a Library, a Coliseum, and whatever gold boosting buildings you have researched. Some might also have Circuses or Theatres, but for the most part you just stick to those I mentioned. Upkeep for a standard city is then 4 gold + 2 gold for the road (this can be lower with clever road placement). But the trade route alone brings in 5 gold so if all 4 citizens are working TP tiles that's 7 gold per city profit before counting in the effects of Markets and Banks. Alternatively you can stick two citizens into the Library which reduces profit to 3 gold per city, but gives you 6 extra science.

    With the change I made however, such a city would only provide 1 gold profit and that only if all 4 citizens were working Trading Posts. As soon as you asign one of them to anything esle, the city starts costing you money.

    A second change I made was messing with GlobalDefines.xml and tweaking the food required for cities to grow. Small cities now grow slower, but large cities grow much faster than normal.

    A third change that I want to make is change Maritime city states so that they only give the food bonus in the capital. However, I can't find the file where city state bonuses are specified.
     
  8. deanej

    deanej Deity

    Joined:
    Apr 8, 2006
    Messages:
    4,859
    Location:
    New York State
    Once the SDK is out, I think you should go with civ4's solution: no building maintenance, and bring back city maintenance. ICS is the reason civ4 made these changes. For now you can use the city building as a workaround though.
     
  9. Nunya

    Nunya Warlord

    Joined:
    Sep 30, 2010
    Messages:
    270
    If you want a city to have a fixed maintenance that can already be done with the method I used.
     
  10. Pazyryk

    Pazyryk Deity

    Joined:
    Jun 13, 2008
    Messages:
    3,584
    Nunya, sounds like a good workaround. But how do you prevent a player (human or AI) from selling the building? (Or is that not possible for free buildings?) Also, your method is only a linear increase. Civ4's cost mechanism was a non-linear increase. The problem (I think) is that if you make it economical to build a second city, then it will be also economical to build 100.
     
  11. Jennar

    Jennar Chieftain

    Joined:
    Nov 25, 2008
    Messages:
    55
    Little lost here. What is ICS?
     
  12. Nunya

    Nunya Warlord

    Joined:
    Sep 30, 2010
    Messages:
    270
    I didn't think about the selling. Maybe it's possible to make buildings unsellable? I imagine wonders probably are and if that's true it should be possible to make other buildings unsellable as well.

    An alternative is to give the building no description. That way it doesn't show up in the list of existing buildings (as I found out by accident), but that has the side effect that you can only get out of the city screen by clicking "return" in the upper right corner.
     
  13. Nunya

    Nunya Warlord

    Joined:
    Sep 30, 2010
    Messages:
    270
    ICS = infinite city sprawl/spam

    Basically it goes like this. A size 4 city generates 2 base unhapiness and 4 unhapiness from population. With the Meritocracy social policy (Liberty tree) you get +1 happiness per city so that's only 5 unhapiness per city left. The Forbidden Palace wonder reduces unhapiness per city by 1 so that leaves you with just the unhapiness from population.

    But for that all you need is a single Coliseum. So the size 4 city is neutral in regard to hapiness. A Coliseum and a Library together have 4 maintenance but the city produces 5 gold from trade. You'll also need to pay for roads, but if you place your cities 2 hexes apart you can keep those to a minimum and it will take at most 2 roads to connect your city. Then a single citizen working a tile with a Trading Post is enough to make the city produce 1 gold more than it requires in maintenance.

    So now you've got yourself a city that doesn't reduce your hapiness and which pays for it's own costs and produces 6 science (or 12 if you asign two people to be scientist specialists). If the other three citizen are also working Trading Posts you're even making 7 gold profit per city. So what you do is try to cram as many such cities as you can into the map.

    And if you have 2 Maritime city state allies they will provide your cities with all the food they need to grow to size 4. So you can literally place these cities anywhere you want. Put it in tundra or desert and it'll be just as good as if you had it on grassland.
     
  14. Biz_

    Biz_ Prince

    Joined:
    Aug 28, 2010
    Messages:
    482
    food growth requirement is exponential...

    just lower the exponent so that you can actually get a size 12 city before you get 4 size 6's
     
  15. eviltypeguy

    eviltypeguy Warlord

    Joined:
    Sep 24, 2010
    Messages:
    234
    The problem with doing distance-based adjustment to avoid ICS is that it fails to account for map size. Six tiles may sound reasonable on a "huge" map, but not so much on a "duel" size map.

    That's why, ultimately, you need to use game mechanics to discourage ICS. ICS ultimately isn't about how close you place cities together so much as how many cities you build.

    Another problem I see with trying to discourage ICS is how to discourage ICS without penalising players that enjoy domination-style victories where you don't build a lot of cities, you "acquire them" :mischief:

    So that means any rules here to discourage ICS need to apply to "non-occupied" cities only, or only to non-occupied cities, no puppets, and annexed cities that don't have a courthouse.
     
  16. Slowpoke

    Slowpoke The Mad Modder

    Joined:
    Sep 30, 2010
    Messages:
    1,321
    increase base city unhappiness, nerf colosseums, buff theatres, make AIs expansionists. By the time you hit theatres most of the map will be full.
     
  17. es4

    es4 Chieftain

    Joined:
    Aug 11, 2009
    Messages:
    73
    This might help, but is it possible in LUA (I'm fairly sure it isn't in XML/SQL)? Beyond that, there's still the happiness issues here.
     
  18. Nunya

    Nunya Warlord

    Joined:
    Sep 30, 2010
    Messages:
    270
    The food required for growth is in GlobalDefines.xml. The variables that effect it are BASE_CITY_GROWTH_THRESHOLD (default value is 15), CITY_GROWTH_MULTIPLIER (default value is 6), and CITY_GROWTH_EXPONENT (default value is 1.8).

    food required to grow a size n city to size n+1 = BASE_CITY_GROWTH_THRESHOLD + CITY_GROWTH_MULTIPLIER * (n-1) + (n-1)^CITY_GROWTH_EXPONENT

    I changed the base to 25, the multiplier 5, and the exponent to 1.5. With these changes cities require an about equal amount of food to grow from size 1 to size 10. Smaller cities grow slower than normal and bigger cities grow faster than normal.
     
  19. logarithm64

    logarithm64 Omnipotent Space Lizard

    Joined:
    Dec 10, 2009
    Messages:
    162
    I'm not sure if this is possible yet, but to get non-linear happiness from number of cities you could try and make it so that each city starts with a free building that increases unhappiness from number of cities. Basically, the palace will grant a free "anti-Forbidden Palace" (which could increase unhappiness from number of cities by, say, 50%) in each city. Therefore unhappiness per city will scale with number of cities.
     
  20. Biz_

    Biz_ Prince

    Joined:
    Aug 28, 2010
    Messages:
    482
    you can get 18 population in a big city and be as happy as just 4 pop in 3 cities.

    with bigger cities the benefits of multiplier buildings will give some benefit to the growth penalty, but you won't have to limit yourself to that approach because the city tile itself can be boosted with city states and social policies
     

Share This Page