Navy balance suggestions

For those interested in doing this themselves, there are 2 ways to do it. One is to make your own mod. I haven't done that yet but plan on doing it once I get a stable, balanced mod that I'm happy with. The other is to edit the files in the CEP mod. For this particular naval change (and actually all naval changes that I play with), here's what you need to do.

In the file CEG/Text/EN_US/Armies.sql find the code related to the Naval Recon 1 & Naval Recon 2 promotions. Replace it with this:
Code:
INSERT INTO Cep_Language_EN_US (DateModified, Tag, Text, Gender, Plurality) VALUES (date('2013-01-18'), 'TXT_KEY_PROMOTION_NAVAL_RECON_1', 'Modern Navy Supply', '', '');
INSERT INTO Cep_Language_EN_US (DateModified, Tag, Text, Gender, Plurality) VALUES (date('2013-01-18'), 'TXT_KEY_PROMOTION_NAVAL_RECON_1_HELP', '[ICON_HEAL] Can [COLOR_POSITIVE_TEXT]heal[ENDCOLOR] outside friendly territory', '', '');
INSERT INTO Cep_Language_EN_US (DateModified, Tag, Text, Gender, Plurality) VALUES (date('2013-01-18'), 'TXT_KEY_PROMOTION_NAVAL_RECON_2', 'Naval Recon', '', '');
INSERT INTO Cep_Language_EN_US (DateModified, Tag, Text, Gender, Plurality) VALUES (date('2013-01-18'), 'TXT_KEY_PROMOTION_NAVAL_RECON_2_HELP', '[ICON_DETECT] +1 Sight[NEWLINE][ICON_MOVES] +1 Movement', '', '');
/* NEW */
INSERT INTO Cep_Language_EN_US (DateModified, Tag, Text, Gender, Plurality) VALUES (date('2013-01-18'), 'TXT_KEY_PROMOTION_NAVAL_SUPPLY', 'Naval Supply', '', '');
INSERT INTO Cep_Language_EN_US (DateModified, Tag, Text, Gender, Plurality) VALUES (date('2013-01-18'), 'TXT_KEY_PROMOTION_NAVAL_SUPPLY_HELP', '[ICON_HEAL] +10 Healing in Friendly, Neutral, or Enemy Territory.[NEWLINE]', '', '');
/* END NEW */

In the file CEG/Armies/CEA_Start.sql find the code dealing with the cost of frigates. In my file it's line 91. Change the Cost to Cost= Cost * 0.779. That numerical value will set it to be the same as it is for Galleons. I ran the math to discover the right value for that. Also, if you want to lower the cost of Submarines, I set the Cost of Submarines to Cost=Cost*0.648. This is just a number I guessed at. It lowers it to be below Destroyers and felt about right.

Also, in the same CEA_Start.sql file insert this code somewhere:
Code:
/* NEW */
INSERT INTO Unit_FreePromotions (UnitType, PromotionType)
SELECT DISTINCT Type, 'PROMOTION_NAVAL_RECON_1'
FROM Units WHERE Class IN (
	'UNITCLASS_IRONCLAD'			,
	'UNITCLASS_DESTROYER'			,
	'UNITCLASS_SUBMARINE'			,
	'UNITCLASS_BATTLESHIP'			,
	'UNITCLASS_CARRIER'				,
	'UNITCLASS_NUCLEAR_SUBMARINE'	,
	'UNITCLASS_MISSLE_CRUISER'		,
	'UNITCLASS_MISSLE_DESTROYER'
);
/* END NEW */

That will give the Naval Recon 1 promotion to advanced ships. I simply renamed this promotion to that modern ship promotion in the text files. It's sloppy, but easier to do that creating a brand new promotion from scratch. The text file edit above makes sure that you don't see what's going on behind the scenes when you play.

In the file CEG/Armies/CEA_Upgrades.sql find the code dealing with upgrading destroyers to carriers and carriers to missile destroyers. Change it to this:
Code:
INSERT INTO Unit_ClassUpgrades (UnitClassType, UnitType) SELECT DISTINCT 'UNITCLASS_MISSILE_DESTROYER',    Type FROM Units WHERE Class = 'UNITCLASS_DESTROYER'; /* NEW changed from CARRIER */
/* INSERT INTO Unit_ClassUpgrades (UnitClassType, UnitType) SELECT DISTINCT 'UNITCLASS_MISSILE_DESTROYER',    Type FROM Units WHERE Class = 'UNITCLASS_CARRIER'; NEW commented line out */

That fixes that little error you were asking about.

In the file CEG/Armies/Promotions/CEA_Ships.xml find the Naval Siege promotion and update it to say this:
Code:
<Row>
			<Type>PROMOTION_NAVAL_SIEGE</Type>
			<Description>TXT_KEY_PROMOTION_NAVAL_SIEGE</Description>
			<Help>TXT_KEY_PROMOTION_NAVAL_SIEGE_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<PromotionPrereqOr1>PROMOTION_BOMBARDMENT_3</PromotionPrereqOr1> <!-- NEW removed Targeting promotion -->
			<OrderPriority>1</OrderPriority>
			<CityAttack>30</CityAttack>
			<CityDefense>30</CityDefense>
			<AttackFortifiedMod>30</AttackFortifiedMod>
			<PortraitIndex>40</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_NAVAL</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_NAVAL_SIEGE</PediaEntry>
		</Row>

All that does is change the prerequisites for it making it dependent on Bombardment 3 instead of being so easily available. I like having such a powerful promotion come much later and not be such a gimme, but that's personal taste.

Find the Naval Recon 1 promotion in the same file. Change it to this to transform it to a Modern Ship promotion that is unearnable:

Code:
<Row>
			<Type>PROMOTION_NAVAL_RECON_1</Type>
			<Description>TXT_KEY_PROMOTION_NAVAL_RECON_1</Description>
			<Help>TXT_KEY_PROMOTION_NAVAL_RECON_1_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>0</OrderPriority>
			<!-- NEW
			<VisibilityChange>1</VisibilityChange>
				END NEW -->
			<HealOutsideFriendly>true</HealOutsideFriendly>
			<EnemyHealChange>0</EnemyHealChange>	<!-- NEW changed from 10 to 0 -->
			<NeutralHealChange>0</NeutralHealChange> <!-- NEW changed from 15 to 0 -->
			<CannotBeChosen>true</CannotBeChosen> <!-- NEW added this line -->
			<PortraitIndex>38</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_ATTRIBUTES</PediaType> <!-- NEW changed from PEDIA_NAVAL -->
			<PediaEntry>TXT_KEY_PROMOTION_NAVAL_RECON_1</PediaEntry>
		</Row>

Next, it's the Naval Recon 2 promotion. It needs to be transformed into just a Naval Recon promotion. This code removes it requiring Naval Recon 1. It also removes the ability for those ships to withdraw from combat. You can leave that if you like, but I was never a fan of it:

Code:
<Row>
			<Type>PROMOTION_NAVAL_RECON_2</Type>
			<Description>TXT_KEY_PROMOTION_NAVAL_RECON_2</Description>
			<Help>TXT_KEY_PROMOTION_NAVAL_RECON_2_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<!-- NEW
			<PromotionPrereqOr1>PROMOTION_NAVAL_RECON_1</PromotionPrereqOr1>
				END NEW -->
			<OrderPriority>0</OrderPriority>
			<MovesChange>1</MovesChange>
			<!-- NEW -->
			<VisibilityChange>1</VisibilityChange>
			<!--
			<ExtraWithdrawal>80</ExtraWithdrawal>
				END NEW -->
			<!--<CanMoveImpassable>true</CanMoveImpassable>-->
			<PortraitIndex>37</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_NAVAL</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_NAVAL_RECON_2</PediaEntry>
		</Row>

Next, it's creating a brand new promotion from scratch. I put this code just below the Naval Recon 2 code. It creates that Naval Supply promotion (also the edit to the text file creates it too, which was the 1st edit here). Insert this code somewhere in the CEA_Ships.xml file:

Code:
<!-- NEW SECTION -->
		<Row>
			<Type>PROMOTION_NAVAL_SUPPLY</Type>
			<Description>TXT_KEY_PROMOTION_NAVAL_SUPPLY</Description>
			<Help>TXT_KEY_PROMOTION_NAVAL_SUPPLY_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<PromotionPrereqOr1>PROMOTION_TARGETING_3</PromotionPrereqOr1>
			<OrderPriority>90</OrderPriority>
			<FriendlyHealChange>10</FriendlyHealChange>
			<NeutralHealChange>10</NeutralHealChange>
			<EnemyHealChange>10</EnemyHealChange>
			<PortraitIndex>32</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_NAVAL</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_NAVAL_SUPPLY</PediaEntry>
		</Row>
		<!-- END NEW -->

Next, near the bottom of the file there's a section editing the UnitPromotions_UnitCombats table. This table affects which types of units receive which promotions. Add this code just below the code dealing with the Targeting 3 promotion:

Code:
<!-- NEW -->
		<Row><PromotionType>PROMOTION_NAVAL_SUPPLY</PromotionType>	<UnitCombatType>UNITCOMBAT_NAVALMELEE</UnitCombatType></Row>
		<Row><PromotionType>PROMOTION_NAVAL_SUPPLY</PromotionType>	<UnitCombatType>UNITCOMBAT_NAVALRANGED</UnitCombatType></Row>
		<!-- END NEW -->

That piece of code makes sure that the Naval Supply promotion goes to both Naval Melee units and Naval Ranged units.

Those are all of the changes that I've been playing with with navies. There's a ton of other ones, but that's it for navies.
 
There was one thing I forgot. If you want to get rid of Naval Ranged units being city busters, find the file CEG/Armies/Promotions/CEA_Promotions_End.sql.

Find the code dealing with the City Attack 2 promotion and put comments around it like so:
Code:
/* NEW
INSERT INTO Unit_FreePromotions (UnitType, PromotionType)
SELECT DISTINCT Type, 'PROMOTION_CITY_ATTACK_II'
FROM Units WHERE Class IN (
	'UNITCLASS_BIREME'				,
	'UNITCLASS_GALLEASS'			,
	'UNITCLASS_PRIVATEER'			,
	'UNITCLASS_IRONCLAD'			,
	'UNITCLASS_BATTLESHIP'			,
	'UNITCLASS_MISSILE_CRUISER'		
);
  END NEW */

That will remove that automatic promotion that ships like the Bireme get and make them less powerful. They are still good units, but not superior to everything else on the battlefield anymore.
 
Because naval warfare is a totally different animal to land warfare!
So? But why should it be inherently different in a way that makes it less meaningful or effective? Naval warfare has been a weak cousin for most of the entire Civ series. Why would we want to throw that away again?

Saying "it's different" is not an answer: why should it be different in this particular way? What is the gameplay reason for it?
 
Is that your only retort? Come on, I'm used to much more than that from you.:D

different in a way that makes it less meaningful or effective?
Your words not mine. I happen to think this modified naval warfare will be MORE meaningful and effective!

Ships are costly and important to your military making their safety more of an object to decision making is definitely meaningful. If you think your upcoming war with X is going to be tough, either don't do it or provide more resources for the battle. Preparation is paramount.
“Victorious warriors win first and then go to war, while defeated warriors go to war first and then seek to win” -- Sun Tzu

Efficacy? Why is having a ship remain damaged in enemy territory an assault on efficacy?
Make sure you will take that first city and there is no problem.

So, if the 'no easy healing for wooden ships' is too much (it isn't), what about the idea of a supply ship or the modified Admiral? And remember none of these ideas are, at the moment, anything more than that - ideas.
 
One of the questions on efficacy isn't just a consideration for us, as the player, but for the AI handling an amphibious assault of sorts effectively, understanding it needs a point to heal from...etc.

I'm fine with a change to healing myself, but we need to have a good understanding of what it does to the AI's navies and the need for our own to defend our coastlines.
 
@mystikx21

That is a valid point, but if we wanted the AI to handle every aspect of the military properly we wouldn't have any units! To be blunt the AI is abysmal and it is just far too simple to handle anything well.

How many times have there been reports of poor AI trying to fight battles.
One notable account I experienced was with the Shoshone trying to take a city from their enemy with only archers. Why doesn't the AI know you need a melee unit to deal the final blow.

Maybe down the track we can tackle improving the AI? Sadly I fear this will need some DLL magic.
 
Your words not mine. I happen to think this modified naval warfare will be MORE meaningful and effective!
How can making it impossible for navies to heal outside your territory possibly make that unit more meaningful and effective? It's a straight nerf. This ability was added to fix a key problem that made naval units undesirable, especially in the early game. It worked! Naval units are quite useful now. Let's not go back.

If there is a way to reduce the rate of healing, so that it's only ~10 health per turn outside friendly territory, that would be fine. But both the human and AI players would be badly hindered should healing be pushed back to requiring a level 4 unit.

Efficacy? Why is having a ship remain damaged in enemy territory an assault on efficacy?
Because it means that I can't use the ship in any kind of combat away from my coastal cities, even against barbarians, without losing potentially 10+ turns of movement to get back home and then back to where I was again.

Why should early navies be so limited? Note that the mod deliberately increased healing for land units outside of friendly territory precisely to make exploration and wide-ranging units in the early game (for barb hunting) more feasible.

You seem to think that the only use for ships in the early game should be if you are willing to commit to building up a large armada sufficient to take a city by itself. But this seems like too narrow a role to me: I want to be able to use ships for raiding, for harassment, for protecting my naval trade routes, etc. and I shouldn't have to waste many many turns in movement just to accomplish this.

Basically, removing the access to healing would be fixing a problem that isn't really a problem (I *don't* automatically get the healing promotion for ships that are going to be on primarily close coastal defensive duty) by reintroducing several problems that we had already fixed.
 
I want to be able to use ships for raiding, for harassment, for protecting my naval trade routes, etc.

If there is a way to reduce the rate of healing, so that it's only ~10 health per turn outside friendly territory, that would be fine.

Now you're cooking!
This is very sound reasoning and yes, I did not consider this when presenting this change.

If ships are only used in naval warfare against enemy cities then perhaps my idea would work, but, these roles are equally as important and will be severely hindered if healing is set back too far.

Back to drawing board.:mischief:
Truly an example of good forum discussion at work.
 
I should add that I heavily use navies in every game I play, and always start on the coast.

Yet I've never picked the heal-outside-of-territory promotion. I'd rather have the speed/combat strength promotions.

I've found it easy - even trivial - to arrange for far-off repair and rally stations by allying with a City-state or negotiating open borders another civ near my target. I really don't see what the big deal is.

The Carthaginians, Spanish, British Empires, and today the U.S. Navy all needed and frequently used overseas refitting stations for their fleets. If it's good enough for them, it's good enough for us. I've never heard of ships and whole fleets magically repairing, refitting, and resupplying in high seas without some pre-arranged supply ship support or allied intervention. Often the best a damaged ship could hope for is a tow to a friendly port. I like that ships don't heal outside of friendly territory. It makes me think, and thinking through legitimate challenges is something I generally regard as desirable.
 
@Delekhan

Likewise some very valid and logical reasonings.

I am now conflicted. I truly like the idea of no 'at sea repair' without some significant experience gained first, if at all.

On the other hand it does make it very difficult to explore safely when your ships are vulnerable to every maggoty barbarian pirate that sails by.

Let's keep this going, there must be a solid middle ground we can find.
 
The Carthaginians, Spanish, British Empires, and today the U.S. Navy all needed and frequently used overseas refitting stations for their fleets.
That's fine, but civ can't really model coaling stations/refueling points/outposts very well. Especially in the early game, even a powerful empire might only have ~3-4 cities, one of which is coastal. Being inside the small cultural radius of a city in the civ engine is a much stronger requirement than having a small supply station. But the civ engine has no easy way to model small supply stations. So it's much easier to bundle that into the ship itself with a healing promotion than to force you to only be able to heal within cultural borders.
 
I'm fine with the heal promotion staying as it is, I was just protesting making ships be able to heal themselves by default.

Putting a small heal effect (10hp/turn) on the Great Admiral could make some sense though. It'd be super-simple to implement - just copy the Khan's ability over and change 15HP/turn to 10HP/turn.
 
EricB, I fully agree to your first post. All of those proposals are solid. Even though I consider myself a very dedicated supporter of strong navies and a lot of coastal gameplay, ranged ships are too strong as of now.

But I also strongly agree to Ahriman regarding healing (the discussion after the initial post). It would cripple navies. I can't imagine how we are even supposed to get level 4 units if they are so vulnerable? Remember that ships can and will be attacked on their way home (by barbarian ships & ranged units, and of course by enemies). That's even worse for ancient ships who have to stay close to coast, where they can't avoid barb ships or archers at all! Short: It would take A LOT of babysitting to bring your ships home. No way this turns out fun! Even for slightly damaged ships, you would have to fear if they make it home alive.

Ahriman is also right that no healing would reduce navies to the role attacking (nearby!) coastal cities in large numbers - a very narrow role. Exploration or harassing would be almost impossible, or at least very tiresome. Just imagine exploring the barbarian-infested new world on terra maps without healing!


Countersuggestion:

I really like the suggestion by EricB that healing should be taken away from exploration. He's totally right this is the obvious first pick in most situations. So no healing through promotions, or only on late promotions (But then available through all three promotion paths at the same time. Maybe it should come on all tier 3 or 4 promotions equally, to help keep high-XP units alive, but to avoid choosing promotion trees just for healing).

There should be a base healing rate (without promotion) in neutral territory, but it should be very slow. I'd suggest trying 5, maybe 10 per turn. The less the better! Maybe like this:
0 in enemy territory
5 in neutral territory
15 in friendly territory
40 inside a city (to help defending navies)

I liked the comment by Delekhan that nearby allies (CS or major civ) should be important. That's why the healing there should be much higher than the base rate for neutral territory.

And the suggestion to provide healing through great admirals is perfect as well. I'd really like to see this! Maybe 15/turn would be a good value to make great admirals important?



Summary: A minimal base healing rate is crucial for fluent and worthwhile naval gameplay, but it should be kept as low as possible to make other, more interesting means of healing important. Promotions should NOT give healing, as it is so powerful that it would be an obvious first choice.
 
I've been kicking around the idea of giving ships some sort of base healing ability that is really low but increasing for more advanced ships.

Something like Biremes and Triremes can heal 5 points in neutral territory, 10 for Galleasses and Carracks, 15 for Galleons and Frigates, etc. Something like that. I still feel like anything over 25 is too much for any ship without having some kind of advanced promotion. Currently, the mod gives Ironclads and later ships a promotion giving them 15 healing automatically (in neutral territory, it's 10 in enemy territory). It wouldn't be that hard to re-vamp this slightly.

Maybe something like:
Biremes and Triremes heal 5 in neutral territory for free
Galleasses and Carrack heal 10
Galleons, Frigates, and Ironclads heal 15
Destroyers, Submarines, Battleships, and Carriers heal 20
Missile Destroyers, Missile Cruisers, and Nuclear Submarines heal 25

Then they all could get that advanced promotion to add even more to that base ability. Might move it down from a 4th tier promotion to a 3rd tier one too. It wouldn't be that hard to implement. It would involve creating a series of unearnable promotions/abilities, and then assigning them to the correct unitclasses (use unitclasses so that unique units like the Liburna get them too).
 
Top Bottom