Trying to mod away my issues with civ2

LuKo

The Royal Guard
Joined
Aug 28, 2006
Messages
1,524
Location
Poland
Hello,

I love the Civilization series and I have to admit that it went a long way since it early days, but civ2 has a special place in my heart. However, it is not perfect. Although some its quirks are a part of its magic, some of them make the game unbalanced and I just cannot bring myself back to using old strategies when I know there are strictly superior ways of playing the game. I would like to make those strategies more viable and I think that usually it is the easiest to achieve through nerfing overpowered strategies which outshine everything else. While I have some experience in modding cIV, my knowledge of modding civ2 is rather non-existent - the only thing I am aware of is the rules.txt, which does not offer many possibilities. Therefore, I would be grateful if someone more experienced could guide me which my ideas are possible in civ2, and which require other versions (e.g. TOT(PP), freeciv or the NewCivII as described in the thread by Prof. Garfield).

Issue I: Overpowered diplomats

Diplomats through most of the game are easily the most broken unit - ability to purchase enemy unit 2x cheaper than they are produced is insanely strong. However purchasing the whole city with a stack of unit is simply broken. Any other action is a waste.

Solution 1.1: Inciting revolts should give the control over the city to barbarians
Solution 1.2: Unit bribing should be 4x more expensive
Solution 1.3: Planting nuclear device should be reasonably probable (e.g. 10%). Alternatively it may be likely (50-60%) but consume nearest nuclear missile

Issue II: Tall build is too weak

Benefits of having wide empire are too good to ignore. Building nothing but settlers through the whole game should not allow to build stronger empire than careful managing of a few tall cities. The only countermeasure with regards to the wide build (unhappiness) does not work as it is easy to circumnavigate it with either very small cities or luxuries/wonders.

Solution 2.1: Settlers should be unable to build cities if there are not enough other settlers (effectively acting as workers) in the civilization. E.g. the option to build the city should be greyed out if the player has 2x more cities than settlers/engineers (e.g. to build third city you need not only the settler to build it, but also control another one - the spare settler is not consumed in the process. To build city no. 20 you need nine "spare" settlers and one actually building the city). The ratio should be more severe if cities are settled close together (e.g. if BFC of the city overlaps BFC of existing city the ratio should be 1:1, and if the city is settled in BFC of a city 2:1).
Solution 2.2: Buildings and wonders should benefit tall play more - currently it is not worth to invest in wonders / more advanced buildings unless in OCC. e.g. colossus should give additional +100% gold, bonuses of tier 2 (Banks, Universities) and tier 3 buildings should be buffed (e.g. to +75% and +100% respectively).

Issue III: Some governments are not viable

Almost in no circumstances communism is worth considering. Democracy is overpowered in peaceful game and fundamentalism is overpowered in military game.

Solution 3.1: Fundamentalism should have higher corruption/waste and ignore third shield/trade/food (similar to despotism). However, max effective science rate should be removed (50% penalty is sufficient and not so confusing)

Issue IV: Siege weapons are unbalanced

I am under impression that catapults are good, howitzers are overpowered and every other siege weapon is strictly worse than mounted unit of the era.

Solution 4.1: Reduce attack of siege units by one (howitzer by two) but add them ability to ignore city walls. Solution easy enough (modification of rules.txt).

I am a big fan of original graphics/feel so I would prefer not to be forced to use freeciv (I've read that TOT allows the use of original graphics) - especially considering that there are changes to rules in this project (in particular I am aware of worker unit, which makes republic/democracy even more overpowered).

If there are any other issues that seems broken which I forgot about, I will appreciate comments / discussion.
 
Issue I: Overpowered diplomats

Diplomats through most of the game are easily the most broken unit - ability to purchase enemy unit 2x cheaper than they are produced is insanely strong. However purchasing the whole city with a stack of unit is simply broken. Any other action is a waste.

Solution 1.1: Inciting revolts should give the control over the city to barbarians
Solution 1.2: Unit bribing should be 4x more expensive
Solution 1.3: Planting nuclear device should be reasonably probable (e.g. 10%). Alternatively it may be likely (50-60%) but consume nearest nuclear missile

In base game, you can edit game.txt (I think, I know you can edit this somewhere) so that certain diplomatic actions are impossible, including preventing city bribes. (I think the AI can still do all actions, but the AI needs all the help it can get anyway.)

In Test of Time Patch Project with Lua Events, you can have an event that transfers a newly captured city to barbarian ownership. It might be a little tricky to determine if the city was captured by a revolution or not, but you could probably do that somehow. (One way might be to check how many units are in the city at time of capture.)

In TOT, you can set a minimum bribe amount for each unit type, and also make unit types immune to bribery. TOTPP Lua events have an onBribeUnit event that could be of some use, though I can't think of something good to do off the top of my head.

I don't know of a way to change the probability of successfully planting a nuclear device, but you could remove the option from the spy menu.

Issue II: Tall build is too weak

Benefits of having wide empire are too good to ignore. Building nothing but settlers through the whole game should not allow to build stronger empire than careful managing of a few tall cities. The only countermeasure with regards to the wide build (unhappiness) does not work as it is easy to circumnavigate it with either very small cities or luxuries/wonders.

Solution 2.1: Settlers should be unable to build cities if there are not enough other settlers (effectively acting as workers) in the civilization. E.g. the option to build the city should be greyed out if the player has 2x more cities than settlers/engineers (e.g. to build third city you need not only the settler to build it, but also control another one - the spare settler is not consumed in the process. To build city no. 20 you need nine "spare" settlers and one actually building the city). The ratio should be more severe if cities are settled close together (e.g. if BFC of the city overlaps BFC of existing city the ratio should be 1:1, and if the city is settled in BFC of a city 2:1).

Solution 2.2: Buildings and wonders should benefit tall play more - currently it is not worth to invest in wonders / more advanced buildings unless in OCC. e.g. colossus should give additional +100% gold, bonuses of tier 2 (Banks, Universities) and tier 3 buildings should be buffed (e.g. to +75% and +100% respectively).

With Lua events, in my update of A Soaring Spirit, I was able to warn the human player against building a city if certain conditions weren't met, and delete the city if they (or the AI, though I was able to use Fertility to make the AI only build cities where desired) persisted in building the city.

With the recent TOTPP v16, you can now turn off the ability to build cities for settler units. So, you could have a relatively cheap worker unit, and an expensive unit (in terms of shields) to actually build cities. Using Lua events, you could make the city building unit decrease city population by 2 instead of 1 when built, and restrict the conditions under which it can be built at all (e.g. require city to be size 5 or 6 before allowing construction of the builder unit.) For that matter, you could use events to take city building out of the control of the player entirely. New cities could simply be created once existing cities run out of good land.

TOTPP v16 also gives the onCityYield event, which allows you to add and remove shields, food, and trade from city production. You can't change the effects of city improvements themselves, but you could, for example, give the city +5 trade production if the city builds a marketplace, in addition to the existing benefits of the marketplace. A simple change could simply be to subtract off the production of the city square itself, so you don't get the 'free' worker by making a new city.

Issue III: Some governments are not viable

Almost in no circumstances communism is worth considering. Democracy is overpowered in peaceful game and fundamentalism is overpowered in military game.

Solution 3.1: Fundamentalism should have higher corruption/waste and ignore third shield/trade/food (similar to despotism). However, max effective science rate should be removed (50% penalty is sufficient and not so confusing)

The fundamentalism max science rate can be changed in the rules.txt. You can't make fundamentalism have corruption, though I suppose you could simulate it using Lua events with onCityYield by subtracting off some trade. Lua events can be used to stop cities from celebrating, so you could weaken Democracy in that way, also.
 
In base game, you can edit game.txt (I think, I know you can edit this somewhere) so that certain diplomatic actions are impossible, including preventing city bribes. (I think the AI can still do all actions, but the AI needs all the help it can get anyway.)

The idea to bribe cities seems fun but good to know that it is possible to remove such actions.

In Test of Time Patch Project with Lua Events, you can have an event that transfers a newly captured city to barbarian ownership. It might be a little tricky to determine if the city was captured by a revolution or not, but you could probably do that somehow. (One way might be to check how many units are in the city at time of capture.)

The only problem would come up if there was a single unit inside the city before the bribing. Is it possible to check if it is at full health and from which city it is supported?

In TOT, you can set a minimum bribe amount for each unit type, and also make unit types immune to bribery. TOTPP Lua events have an onBribeUnit event that could be of some use, though I can't think of something good to do off the top of my head.

I guess it is possible to reduce the gold of bribing player.

I don't know of a way to change the probability of successfully planting a nuclear device, but you could remove the option from the spy menu.

Is it possible to trigger an event if specific spy action fails?

With Lua events, in my update of A Soaring Spirit, I was able to warn the human player against building a city if certain conditions weren't met, and delete the city if they (or the AI, though I was able to use Fertility to make the AI only build cities where desired) persisted in building the city.

With the recent TOTPP v16, you can now turn off the ability to build cities for settler units. So, you could have a relatively cheap worker unit, and an expensive unit (in terms of shields) to actually build cities. Using Lua events, you could make the city building unit decrease city population by 2 instead of 1 when built, and restrict the conditions under which it can be built at all (e.g. require city to be size 5 or 6 before allowing construction of the builder unit.) For that matter, you could use events to take city building out of the control of the player entirely. New cities could simply be created once existing cities run out of good land.

Warning and deleting seems awesome. Is it possible to determine whether the newly settled city will be in BFC (i.e. workable tiles) of other city / whether BFC will overlap? In such case there is no need to use more invasive solutions.

TOTPP v16 also gives the onCityYield event, which allows you to add and remove shields, food, and trade from city production. You can't change the effects of city improvements themselves, but you could, for example, give the city +5 trade production if the city builds a marketplace, in addition to the existing benefits of the marketplace.

It is something - set value of benefit proved to be interesting in ciV and ciVI. There is no possibility to give the city additional % bonus?

A simple change could simply be to subtract off the production of the city square itself, so you don't get the 'free' worker by making a new city.

Sorry, I don't follow you - can you please elaborate?

The fundamentalism max science rate can be changed in the rules.txt. You can't make fundamentalism have corruption, though I suppose you could simulate it using Lua events with onCityYield by subtracting off some trade.

I understand that making the government "wasteful" (so "Any terrain square that ordinarily produces three or more of any resource produces one less") is also off the table. Lua solutions seems unnatural to civ2 feel but it is better than nothing. E.g. is it possible to give the city -1 food, trade and production for every two citizens (rounded down)?

Lua events can be used to stop cities from celebrating, so you could weaken Democracy in that way, also.

Good to know, but I have to admit that I love the celebration mechanics in civ2.
 
Is it possible to check if it is at full health and from which city it is supported?

Yes.

Is it possible to trigger an event if specific spy action fails?

Not directly. You might be able to indirectly use onActivateUnit to figure out if a diplomat/spy 'disappeared', but you wouldn't be able to tell what action they tried to do.

Is it possible to determine whether the newly settled city will be in BFC (i.e. workable tiles) of other city / whether BFC will overlap?

Yes, you could check whether the city's tiles will overlap with the tiles of other cities, and, if so, how much.

It is something - set value of benefit proved to be interesting in ciV and ciVI. There is no possibility to give the city additional % bonus?

I'm not sure exactly what you're asking. You could give the city an increase (or decrease) of shields, food, or trade based on whatever criteria you like, including what the 'basic' production would be. So, if you like, you could just do a percentage change.

Sorry, I don't follow you - can you please elaborate?

A city on plains produces 2 food, 1 shield, 1 trade for 'free'. You could reduce the city's production by that amount to 'compensate'.

I understand that making the government "wasteful" (so "Any terrain square that ordinarily produces three or more of any resource produces one less") is also off the table. Lua solutions seems unnatural to civ2 feel but it is better than nothing. E.g. is it possible to give the city -1 food, trade and production for every two citizens (rounded down)?

You could change tile production based on the city's owner's government, I suppose. That isn't completely straightforward, however, for reasons I won't get into here. I hope to have the extra code to make it a straightforward process in the near future.
 
Two more issues I remembered about:
3.2 Cities can be undefended and it is no problem, while it seems that the balance was tested on assumption that players garrison their cities.
Can we add discontent (red) citizens for (i) having no military in the city and (ii) having no military supported by the city?
3.3 Some buildings are designed for specific governments and useless in others
Can we add additional benefits depending on the government for some buildings? E.g. communism does not benefit from courthouses (while democracy does!) and highways (if not under democracy/republic there is no point of the building).
 
I try to test a modification where:
  • citizens eat 3 food (was 2),
  • there are 12 rows in food box (was 10),
  • terrains generally produce +2 food (if they produced any originally),
  • aqueduct is required for growing over pop 10 (instead of 8) and sewers for over 14 (instead of 12),
  • city size for unhappiness is 8 (instead of 7),
  • happiness penalty starts with 4 cities (instead of 14),
  • ocean tiles generate 1 commerce (instead of 2),
  • mine on mountains give +3 shields (instead of +1),
  • there is no option to incite revolts,
  • fundamentalism pay maintenance for each unit over 1 (was 10),
  • fundamentalism may set science slider as the player wants (was max 50%),
  • tech paradigm is 20 (was 10 - I don't know whether this works),
  • cannon, artillery and howitzer ignore city walls but their attack is reduced to 6/7/8 (was 8/10/12),
  • knights and dragoons attack is increased to 5/6 (was 4/5),
  • caravan/freight costs are increased to 60 (was 50)
I will test the above and let you know if it helps with my problems. [EDIT]: I still have no idea whether anything above was a good idea, but the game seems MUCH harder - AI loves the new additions and techs like crazy. But again, it may be a result of tech paradigm. [/EDIT]

On the side note, I try to change colours of civs so Greeks can play against Carthaginians and Germans can fight against French. I managed to do so but changing the order of civs would mismatch civs and portraits of leaders so the order of civilizations in the list now does not reflect the colours (e.g. Celts are still in the first row but now they are violet and not white as previously). Does anybody know whether it is possible to change the portraits of leaders?
 
Last edited:
Can we add discontent (red) citizens for (i) having no military in the city and (ii) having no military supported by the city?
As far as I know, happy and unhappy citizens are always calculated by the game, and events can't manually override this. You could certainly detect those two situations, but you'd have to come up with some other type of penalty to apply.

Can we add additional benefits depending on the government for some buildings? E.g. communism does not benefit from courthouses (while democracy does!) and highways (if not under democracy/republic there is no point of the building).
First, note that corruption under Democracy is always 0, but corruption can be added to Communism by changing a value in the @ COSMIC section of Rules.txt: "Communism is equivalent of this palace distance". If you do that, then a Courthouse offers a benefit under that government too.

Second, Superhighways certainly offer a much greater benefit under Republic and Democracy. But since they grant a bonus to any tile with a road (or railroad) that produces at least 2 trade, they can provide a benefit under any government for tiles that have a river or a terrain special (one that offers a trade bonus, that is).

To answer your question, though, Yes! A Lua event could detect the presence of any type of city improvement, cross-reference it with the current government type, and then add some benefit. But since you can't add happy citizens, you couldn't have Courthouse offer the same benefit under Communism that it does under Democracy. You'd have to come up with a different benefit.

I try to change colours of civs so Greeks can play against Carthaginians and Germans can fight against French. I managed to do so but changing the order of civs would mismatch civs and portraits of leaders so the order of civilizations in the list now does not reflect the colours (e.g. Celts are still in the first row but now they are violet and not white as previously). Does anybody know whether it is possible to change the portraits of leaders?
Leader images are stored as .gif files embedded within mk.dll. You can certainly edit that DLL file to reassign the current images to numbers that match the tribe name and order within Rules.txt. For MGE and TOT, you'll want a program named Resource Hacker, which you can download here:
http://www.civfanatics.net/downloads/civ2/utility/reshack.zip
There are multiple threads in the forum that discuss the steps to use this program in a little more detail (try searching for "leader pictures" or "leader pics" or "leaderheads").

You can also create completely different leader images in the correct format and upload them into this DLL file, but there are a lot of tricky palette rules and getting good results can take some effort. Simply rearranging existing images ought to be more straightforward -- you'll just need to extract each one of the affected .gif images and then re-insert them into the proper slots. (Be sure to back up the entire DLL file first, of course!)
 
Last edited:
Top Bottom