• Civ7 is already available! Happy playing :).

Vokarya's Workshop: Units

I know about the Dragoon issue, but I'm not going to change it. "Mounted infantry" is just that. You get enough horses to mount up your troops but they don't actually fight while mounted. "Motorized infantry" is the same way; infantry + enough trucks to carry them around. But I don't want to fool around with "transport" units for ground troops; I don't think the AI knows how to handle ground transport and it's a lot of work for a very small realism increase. I'm trying to model the concept as simply as possible with the limits that Civ4 has. You just actually have to think about what you're doing and not upgrade blindly.

Units that upgrade to a mobile defense unit do keep their existing defense promotions, and Dragoons are stronger than Arquebusiers to begin with. If the AIs get to Flintlock, they can always build new Musketmen; they shouldn't get complacement and neither should the player. There are points where I think it should be plausible to replace old units with newer ones that start with more XP.
 
More field testing. Archers and Longbowmen need to be part of the conscription queue. This is governed by <iConscription> in the unit XML.

The current order goes like this:
  1. Warrior
  2. Javelineer
  3. Spearman
  4. Axeman
  5. Pikeman
  6. Heavy Pikeman
  7. Maceman
  8. Arquebusier
  9. Musketman
  10. Rifleman
  11. Infantry
  12. Modern Infantry
  13. Bolter Infantry
I think Archer should be in between Javelineer and Spearman, and Longbowman should be in between Pikeman and Heavy Pikeman.
 
A question before I start working with UU's conscription:
Should UUs have the same conscription value as their regular counterparts?

Or higher? :mischief: Or lower?

And what if two units have the same value? :confused:
 
I think it should be the same. That way it has the same place in the conscription hierarchy. UUs always act like the unit they replace except for the advantages that are specifically granted to that unit.

If you have two units with the same iConscript value, the game will take the first one it finds. The code is in CvCity.cpp, and it runs through all the units. For a given unit X, if you can train that unit and its conscription value is higher than any other unit you have available, that unit becomes the unit that gets conscripted. I'm not exactly sure how that would work with a modular unit. I think the game loads the modules last.
 
I'm not exactly sure how that would work with a modular unit. I think the game loads the modules last.
That's my experience too.

Okay, than I'll go with the easy way: Same value.
 
A couple more tweaks.

Missile Cruiser is currently more powerful than Fast Battleship (94 vs. 78). I did some calculations, and to keep the ratio of battleship to cruiser power at about 1.15 (look at Dreadnought vs. Battlecruiser at 48/42 = 1.14, Battleship vs. Cruiser at 64/55 = 1.16, and Fusion Battleship vs. Fusion Cruiser at 150/130 = 1.15) and to keep the unit strengths advancing smoothly without a big kink going up to the Missile Cruiser, I'm going to set Missile Cruiser to 85 and Fast Battleship to 98. Fast Battleship is pretty much a "what if" unit, but I feel it is important to keep it to fill in the Battleship chain.

Nuclear Missile and ICBM are out of order tech-wise. Tactical Nuke is the first modern nuclear weapon at Jet Propulsion. Then ICBM comes at Rocketry and Nuclear Missile at Satellites. I'm going to switch these last two. The ICBM is the most powerful weapon (since it has unlimited range) so it should come last.
 
Missile Cruiser is currently more powerful than Fast Battleship (94 vs. 78). I did some calculations, and to keep the ratio of battleship to cruiser power at about 1.15 (look at Dreadnought vs. Battlecruiser at 48/42 = 1.14, Battleship vs. Cruiser at 64/55 = 1.16, and Fusion Battleship vs. Fusion Cruiser at 150/130 = 1.15) and to keep the unit strengths advancing smoothly without a big kink going up to the Missile Cruiser, I'm going to set Missile Cruiser to 85 and Fast Battleship to 98. Fast Battleship is pretty much a "what if" unit, but I feel it is important to keep it to fill in the Battleship chain.

I think it's a good modification because Fast Battleship becomes almost useless compared to other naval units in late modern era.
 
I was playing around with ship prerequisites and I noticed a couple weird corner-cases where I am going to add a <ForceObsoleteTech> to stop a nearly-obsolete unit from showing up on the build list. I want to avoid clutter whenever possible, so having an old weak unit on a build list is just one more thing to scroll through.

Galleass: Force-obsoletes at Mercantilism. This is the point where Galleon is available, but if you don't have Iron, then Galleass is also still buildable. The next ship up is Brigantine which does require Iron. With only 10 Strength, Galleass is not going to be powerful enough to do anything to Galleons or any later Renaissance-Era ship.

Trireme, War Galley: Force-obsoletes at Rudder. If Galleass cannot be built because it has been tech-obsoleted, and Brigantine cannot be built due to lack of Iron, then Trireme shows up on the build list. A unit with multiple upgrade paths doesn't disappear from the build list until all its upgrades are available. War Galley would also show up if Trireme was obsoleted. Trireme is functionally obsolete once Cog is available as Cog has the same strength.
 
Nuclear Missile and ICBM are out of order tech-wise. Tactical Nuke is the first modern nuclear weapon at Jet Propulsion. Then ICBM comes at Rocketry and Nuclear Missile at Satellites. I'm going to switch these last two. The ICBM is the most powerful weapon (since it has unlimited range) so it should come last.

I remember there was a reason for that, although I'm not sure anymore why I decided it that way. I think it was because Nuclear Missiles can be loaded onto submarines and they have a higher evasion chance, which makes them somewhat more useful than ICBMs.
 
I am rounding up some things I want to include to make what may be close to a final update for me. I can still try to update game text and fix Python bugs, but I don't think there are very many things I still want to add.

There is one unit I want to add and that is the Ironclad Cruiser. The purpose of this unit is specifically to fill in a gap. Currently, we have the Man'O'War upgrading to the Ship of the Line. I think these units are now too close together. I would like for the Man'O'War to be the first medium warship, eventually upgrading to Cruisers, and the Ship of the Line the first heavy warship, eventually upgrading to Battleships. The only problem is that there currently isn't a unit between the Man'O'War and the Battlecruiser. The Ironclad Cruiser is meant to fill that gap.

This is the Ironclad Cruiser on the map, next to all its contemporaries.
Civ4ScreenShot0019.JPG
 
One area that I have not yet put under my microscope is unit special abilities. To get an idea of how complex units are, I counted bullet points. The most complex non-UU units in base Civ4 have 6 points. This includes the Gunship, the Attack Submarine, and several siege units. We have the Fusion Destroyer going up to 22 bullet points, and well over 60 other units into the double digits. This tells me that we are trying way too hard to model every possible modifier to a unit, and I would like to prune some of these points. I will admit that some of these additional points are necessary, and others are unfixable by me. The ability to trade a unit and the ability to ignore building defense actually should be bullet-pointed (BTS does not bullet-point this, but since we are actually less liberal with this ability, I think it needs to be covered). Ranged Attacks currently occupy 3 bullet points, and if I could fix CvGameTextMgr to reduce that to 1 point, or even 0 points and put the numbers on the strength line, I would. But I think several other points can be simplified.

These are the first three parts of this project.
  • Clean up the number of SPECIALUNIT types applied to Missile units.
  • Reassess modern units to see if all their special abilities are truly necessary.
  • Recalibrate ALL naval units to create a straightforward power curve and remove the class bonuses against previous types of ships.
This third one may be controversial, but I think it is justified in terms of gameplay. Raw unit combat strength covers advances in technology in a single number, rather than having to apply bullet points in addition to that strength. I looked at BTS, and bonuses against other units are not used to accomplish tech advances. They are used either to create counter-unit relationships (Anti-Tank destroys Tanks but loses to Infantry and Artillery) or to fit new units into an existing power curve without changing the old units (this is why Trireme, Ship of the Line, and Attack Submarine have the bonuses they do -- all were added in expansions and needed to defeat certain units while losing to others).

Also, using bullet bonuses on top of strength curves hides information from both the player and the AI. The player has to assess the actual combat strength of their unit on the fly instead of just being able to look at the strength number. The AI makes decisions based on unit power, which is an independently coded variable but we have made proportionate to the unit's power. Understating this power number may lead the AI to make worse decisions.
 
So here is what I want to with Missiles. We currently have 11 separate missile units. We also have 3 separate SPECIALUNIT categories that can be applied to missiles. This governs which units can carry these units as special cargo. This is actually all SPECIALUNIT is used for, other than counting Fighters for the Overwhelm Doctrine event. The ability for a civic to override a building requirement is keyed to the special type of the building, not the unit.
  • SPECIALUNIT_MISSILE is applied to the conventional Missile line and the biological Missile line. These can be carried by the Missile Destroyer/Stealth Destroyer/Fusion Destroyer, the Missile Cruiser/Littoral Combat Ship/Fusion Cruiser, and the Stealth Submarine.
  • SPECIALUNIT_SLBM [Sea-Launched Ballistic Missile] is applied only to the Nuclear Missile. It can be carried by the Missile Submarine and the Fusion Submarine.
  • SPECIALUNIT_TACTICALNUKE is applied only to the Tactical Nuke. It can be carried by the Missile Cruiser line and the Fusion Submarine.
I don't think cutting these distinctions this finely actually helps. The Tactical Nuke especially is a low-powered version of the Nuclear Missile. So I think that any ship that could carry the Nuclear Missile could also carry the Tactical Nuke.

I would leave SPECIALUNIT_MISSILE as the special unit designation for the conventional missiles, the Tactical Nuke/Nuclear Missile, and the Biological Warfare Missile/BBM. The Hydrogen Bomb, the ICBM, the Plague Bringer, and the Peace Maker are "big nukes" that I do not want a ship to carry.

This does allow Missile Cruisers and Missile Destroyers to carry nuclear weapons. This doesn't strike me as too much of a problem, as Missile Submarines have the benefits of stealth.
 
Here are some general things I noticed when I was looking at naval units.

There is a small gap in the "infiltrator" ship line. The way to get a Spy or other such unit into the territory of an overseas rival without Open Borders is to use either a Caravel/Sloop or any Submarine. All of these ships have Can Explore Rival Territory and the ability to carry a SPECIALUNIT_PEOPLE. There is a gap between these two lines, starting at Steel when the Sloop upgrades to the Iron Frigate and ending at Radio when the first Submarine is available. This is probably too narrow a gap to fill with a unit but I am just pointing it out.

I looked at Ignores Building Defense on ships and I don't think it does anything for a unit that does NOT have a Ranged Attack ability.
  • A naval unit cannot attack a city or Fort, even if the only occupying unit is also naval.
  • Bombardment from ships with Ignores Building Defense reduces cultural and non-cultural defense at the same rate. I set up a city with +200% building defense and +25% cultural defense. One bombardment from a Ship of the Line reduced the cultural defense to 23% and the total defense as viewed by a nearby Axeman to 209%. Some rounding might be in effect but both of those are reduced to 92% of their previous number.
  • Ignores Building Defense does not help at all against Aquatic Forcefield improvements.
  • Ignores Building Defense does help when using Ranged Bombardment against units. I noticed a difference when switching that ability off on a unit.
So the conclusion from this is that Ignores Building Defense is not necessary on ships that can't use a ranged attack.

Finally, Defends First abilities do not mix with invisible units. I set up a stack of a Cruiser, Stealth Destroyer, and Transport, and then attacked it with an Attack Submarine. The Stealth Destroyer is supposed to defend first against the Attack Sub, but since the Attack Sub can't see the Stealth Destroyer, the destroyer is ignored. The Attack Sub gets to take out the Transport and get away (because Attack Subs attack Transports first). So that is another ability that can be excised. It will stay on the visible Cruisers so that you have a unit that can serve as a proper convoy escort.
 
Wooden Ship Changes

The main thing I want do with Wooden Ships is to start the strength curve lower with Galley having only 2 Strength instead of 3, and bringing down all wooden ships to 2/3rds of their original strength. The reason for this is, in order to maintain the proper ship strength ratios, the strength curve is going to be exponential. If I leave wooden ships untouched, then the later units will get out of hand.

[TABLE=head]Ship|Old Strength|New Strength
Galley|3|2
War Galley|4|3
Trireme|6|4
Cog|6|4
Galleass|10|7
Caravel|9|6
Carrack|9|6
Fluyt|10|7
Brigantine|15|10
Sloop|14|9
Galleon|16|10
East Indiaman|18|12
Privateer|17|11
Frigate|18|12
Man'O'War|24|15
Ship of the Line|32|20
[/TABLE]
In most cases, I just did a straight 2/3rds multiplier. I rounded down for the Galleon to make it a little more vulnerable. I also brought Man'O'War down from a calculated 16 to 15 and Ship of the Line from calculated 21 to 20 in order to keep the curve a little lower.

Other changes:
  • War Galley can upgrade to Cog as well as Trireme. Going from War Galley to Cog is still an upgrade, as it gets +1 Strength and +1 Cargo Space. It also means that War Galley will be available to build until you get Rudder. As it currently stands, the War Galley disappears as soon as you get Triremes.
  • Sloop, Man'O'War, and Ship of the Line all lose their bonus vs. Galleon. Sloop is an explorer, not a warship. Man'O'War has a 1.5:1 strength advantage over the Galleon and Ship of the Line has a 2:1. The +50% bonus is overkill.
  • All Wooden Ships lose their withdrawal chance. I'm not a fan of putting withdraw chances on units that don't have above-average mobility compared to other units of their time. I'm also not a fan of mechanics that make it more likely for both units to walk away from a battle. If you want a withdrawal-capable ship, I think you should have to work for it.
 
So here are Steam Ships. The goal here is to keep the ships' performance the same while eliminating the +% vs. Wooden Ships modifier. The way I found to do this is to benchmark the ships against the Ship of the Line which is the strongest wooden ship. The effectiveness of a steam ship against a weaker wooden ship will be higher.

Code:
(new ship strength):(new Ship of the Line strength) ratio  =  (old adjusted ship strength):(old Ship of the Line strength)

Or, rearranging a little and plugging in the Ship of the Line values:

new ship strength = old ship strength * (1+% bonus vs. Wooden Ships) * (20/32)

And this is the final table.
[TABLE=head]Ship|Old Strength|Wooden Bonus|Calculated Strength|Final Strength
Steamer|24|0|15|15
Ironclad|24|100%|30|30
Iron Frigate|30|25%|23.4375|24
Ironclad Cruiser|34|25%|26.5625|32
Ironclad Battleship|39|100%|48.75|44
Destroyer|36|100%|45|45
Battlecruiser|42|100%|52.5|52
Dreadnought|48|100%|60|60
[/TABLE]

I increased the strength of Ironclad Cruiser to open up a clear gap between the Cruiser and the Iron Frigate. I also lowered the strength of Ironclad Battleship to produce a bigger gap between it and the Dreadnought.

These values look perfectly reasonable to me. Man'O'War and Ship of the Line can take out an unescorted Steamer. Ship of the Line might also get lucky against Iron Frigate but definitely loses to any other Steam Ship.

There are a few other tweaks I want to make.
  • Iron Frigate: Delete the withdrawal chance and cargo space. Also raise base speed to 5. This makes it equal to Frigate and Ironclad Cruiser. Basically I do not want steam warships to have cargo space. Their hull space is devoted to guns, armor, and engines.
  • Ironclad: Delete the cargo space. I don't think it is very useful to have cargo on a coastal-only ship.
 
Ship Reconfiguration Part III: Diesel Ships.

Diesel ships get the same reconfiguration as Steam Ships, except here the benchmark ship is the Dreadnought. So most Diesel ships only had +20% vs. Steam Ships, but the new multiplier is 60/48 (new Dreadnought/old Dreadnought). This means Diesel ships are going to be quite a bit more powerful.

[TABLE=head]Ship|Old Strength|Steam Bonus|Calculated Strength|Final Strength
Transport|40|0|50|50
Cruiser|55|20%|82.5|80
Battleship|64|20%|96|96
Carrier|40|20%|60|60
Missile Destroyer|62|20%|93|92
Stiletto Boat|55|40%|96.25|96
[/TABLE]

The only thing I am concerned about here is that Transport gets a big power jump over Steamer. It still loses to any other Diesel ship and to the most powerful steam ships. In original BTS, Transport was strength 16 to Destroyer's 30. Here Transport is looking to be 50 and Destroyer is 45, but Missile Destroyer is much more powerful.
 
Here is something I just discovered. Units that have Can Only Defend do not also need Cannot Capture Enemy Cities or Units. For example, a BTS Scout has Can Only Defend and does not have Cannot Capture, but it cannot capture an enemy Worker or a rival city even when at war. I should have seen this looking at original BTS. The only unit that has the Cannot Capture flag set is the Gunship.

All this means is there is one less bullet point on certain units without actually changing game play at all.
 
I have decided to make a few more tweaks to the Missile Destroyer. I was thinking about the interactions between surface warships and submarines to figure out what kind of niche the smaller warships should have.

There is and should be a distinct hierarchy among the surface warships, starting in the late Renaissance when there exists more than one line of warship:
Battleship > Cruiser > Destroyer > Transport/Carrier. Transport and Carrier have their niche as extensions of land/air unit range rather than warships, so I'm OK with that.
So that leaves Battleship superior to every other ship except Subs, and we need Subs to disrupt that hierarchy.

Now there are two separate niches when dealing subs: sub-defense and sub-hunter. At first, the Destroyer can take on both niches, and the Missile Destroyer can continue. It is only when the Stealth Destroyer goes invisible to submarines that the two have to break off. This means the Cruisers have to pick up the "defend first" against subs role, while the destroyers become sub hunters.

These are the adjustments to the Missile Destroyer itself.
  • Lower the base power of the Missile Destroyer to 90.
  • Add +50% vs. Submarines. When we get to Submarines, I will demonstrate how the numbers interact.
  • Allow upgrade of Missile Destroyer to Littoral Combat Ship. This is so that if you have Missile Destroyers promoted as escorts, they can continue in that role instead of having to upgrade to Stealth Destroyer.
In terms of Submarines vs. Battleships, the battleship cannot detect the submarine at all and so can't attack it, and if the submarine tries to attack a battleship of equal technology level, the submarine dies. Submarines can pick off transports in a convoy escorted only by battleships, but a battleship can serve as an escort to a carrier.
 
the battleship cannot detect the submarine at all and so can't attack it
Just I minor comment, I am sure you know, if you have both a battleship and a destroyer the destroyer can see the sub and the battleship can attack. It is worth considering that when doing the maths.
 
Just I minor comment, I am sure you know, if you have both a battleship and a destroyer the destroyer can see the sub and the battleship can attack. It is worth considering that when doing the maths.

Yes, you can do that, but that's still what I intended and that is to force players to diversify their fleets. You can't just exclusively build one ship type.

If a destroyer guides a battleship to a submarine, then the battleship is going to have to win. The submarine needs to be an even match for the cruisers/destroyers that will be used as the escorts of their time. In BTS, I noticed that the Destroyer and the Attack Submarine are equal at strength 30. The battleship needs to be able to crush the same escort ships. But if you use battleships to hammer subs, then that is tying up more hammers than you need. I'm fine with that.
 
Top Bottom