The best kittens, technology, and video games blog in the world.

Sunday, August 05, 2012

Medieval 2 Total War Concentrated Vanilla 0.50

Dagje bij Sandra. by Marianne de Wit from flickr (CC-NC-SA)

I haven't played any of the new Total War games in ages, but I keep coming back to Medieval 2 Total War. Since it's so amazingly simple to mod, I tweak a few things before each campaign - either things I didn't feel quite balanced the previous time I played, or just to try something different.

I thought I'd release the current state of my tweaking - Concentrated Vanilla 0.50. It's meant as mild modification to vanilla campaign, fixing bugs, balancing things out, and making the entire game more dynamic. It introduces no particularly drastic changes.

Here's extensive notes on what I changed, why I change it, and which things I tried that I eventually abandoned.

Church matters

Engine used by Medieval 2 Total War assumes characters age by half a year every turns - the way Rome Total War worked. However, since now 1 turn is 2 years not 0.5 year, this means characters live something like 300 years. So very often the initial Pope will last the entire campaign - and you never get to experience papal elections. And since by the time cardinals start dying there's ton of replacements, it's really hard to stuff College of Cardinals. This part of the game gets much underutilized.

One tweak that helps surprisingly much is simply making initial cardinals and pope older. Giving cardinals extra 15 years and the pope extra 25 feels like about the right balance. 20 years older cardinals I tried at first were definitely too disruptive.

Since priests need 5 piety to become cardinals, it still takes some effort to stuff the College of Cardinals, but it's doable.

For a long time I wanted to make Papal missions of "do not attack for or you'll be excommunicated" less annoying. And making Pope and Cardinals older does just that - whenever the Pope changes, most excommunications expire (I think you only remain excommunicated if you're at was with Papal States, but I could be wrong here). Unless of course Pope called a Crusade against you and you're now at war with the entire Europe...

You're free to ignore all of this, but now you have more options for getting involved into Church politics.

Another minor change I did was doubling conversion rate from all religious buildings. I don't particularly care for spamming Priests or other agents as a gameplay element.


Crusades and Jihads are tweaked a bit. Most important of all, there's no penalty for not going in the direction of the Crusade target. I disabled it since it was extremely buggy feature - it often triggered even when you were taking the most direct route towards Crusade target - and AI cheated since it never applied to it no matter what. It's up to you - either have a house rule that you're going to be honest with it, or have a house rule that you won't.

A few minor changes - Crusading can start right away (the same way as Jihads), and minimum piety to call Jihads lowered to 2 (otherwise if you played a Muslim faction and your initial Imam died unexpectedly, this part of the game would be turned of for a very long time).

I sometimes play with allowing every settlement to be Crusade/Jihad target, but that's a bit too easy to abuse, so it's currently not enabled.

Reduced agent spam

I seriously dislike spamming agents, and agent gameplay in general, so I removed as much of it as I could.

I removed merchants and assassins completely - merchant gameplay was unfun (and really asked for save&load abuse), and assassins matter very little with their tiny success chance, and new family members coming via adoption pretty much all the time. Merchant buildings and guild still provide trade bonuses to your settlements, so they're still useful.

Priests are impossible to disable without breaking papal elections and Jihads, but with religious buildings providing double the conversion bonus they're less necessary to spam.

Diplomats and princesses travel at 5x baseline speed (on top of general 1.5x campaign movement speed increase, so 7.5x faster than in vanilla), so you need fewer diplomats, and have more options to arrange marriages for your princesses before they get too old by the time they reach the other side of the map.

It's possible to remove spies, and I often play without spies, but then nobody forces the player to recruit them, so it's fine to leave them be. They travel at 3x baseline speed (on top of general 1.5x speed increase, so total of 4.5x), so they can actually do some spying where they're needed.

Heretics, witches, and inquisitors are all optional gameplay elements, but since the player doesn't control them, I let them all stay. 

Settlement economics

I did a lot of experimenting here, but it's not included in the mod, since it strays pretty far from vanilla.

Some thing I tried that are not included - and they work pretty well if you're looking for variety - single settlement type like in Rome Total War; core building (city wall or castle) doing features of all buildings it enables (except churches and ports which cannot work for technical reasons); removing all generic units so that all factions get to fight with their special units from the start etc.

I tried to increase either resource value or trade bonus value, and this always resulted in everybody being flooded in money, so I stopped doing that. Another thing was rearranging resource values so something else (like amber) was extremely valuable for a change. It turns out it doesn't make that much of a difference - remote places like Baltic Sea have too few tiny settlements to ever match economies of the Mediterranean even with this boost.

Things that are included (as in previous versions)  - mine bonus is 2x, all buildings build in one turn and cost 50% extra. I stopped making mines cost 3x since AI then was too stupid to actually build them. AI is still pretty stupid with building things.

I increased population of all villages to 800 (minimum needed to upgrade them to small town), as otherwise you'd always change them to castles so you can start building something there.

An extra thing I've done was making guilds much easier to get - you still need to do a bit of effort if you want a particular guild, but it's not as unreasonable as it was in vanilla. It's not balanced between guilds so it might turn out to be too easy perhaps. IIRC if you have a few of your generals join crusades, it will make all crusader knight orders ecstatic and offer their buildings all over the place - offering you an extra incentive to join crusades.
Maine Coon - Creative Commons by gnuckx by gnuckx from flickr (CC-BY)

Unit recruitment

Now cities can have bigger free garrisons (up to 12 units for huge cities). I sometimes play with castles also having free garrisons of mid-level infantry, but this is currently disabled - partially because it helps some factions much more than others, and partially because AI is really dumb and has no idea how to take advantage of it.

I tried to make unit retraining use no recruitment slots like in Rome Total War, but this doesn't work, even though there are entries for in it XML files.

One thing that works really well is making mercenary pools much bigger. Currently they're at probably somewhat excessive 2x initial size, 4x maximum size, 8x replenishment rate - whenever I try something new I go for very high multiplier, I then tone it down if I don't like the result - and here I really don't mind much no matter how high it is, so I never bothered tuning it down.

Extra mercenaries help AI a lot - if you face crusades prepare for 10 stacks of crusading knights and sergeants before it ends. Now it's entirely possible to abuse it and play with just mercenaries ignoring your faction's units, but I never actually do that (just a little when I'm crusading myself).

Primarily to help AI not destroy its economies, I lowered all units maintenance cost to just 60% of vanilla values (in addition to larger garrisons being free). This means you'll be facing much bigger stacks. Agents' wages are the same.

I didn't tweak costs or upkeep of different unit classes since I balanced them differently (read on).

Settlement defenses

I probably overdid settlement defenses in my early Concentrated Vanilla so it's milder now.

Tower fire rate is 3x for normal missiles and 1x for fire missiles - but power of arrows is down from 12 to 2 - so while it massacres unarmored Town Militias happily, well armored Knights can fight quite long while being shot at with only moderate losses. This is a pretty decent balance overall.

Ballista and cannon towers are as powerful as before and they still get 3x fire rate. In vanilla they were often weaker than arrows, since you just need to get close to the walls fast, and you were out of their range instantly.

More important than this - distance units need to be to enable towers is 4x. This is about the best balance I could get for interesting battles - pushing defenders far enough from walls to disable the towers is hard but not too hard.

Taking over decently defended stone Castle or Fortress without some serious artillery is now going to cost you massive casualties, especially if you just plan to throw masses of low level units at it. 2 units of Ballistas to storm a castle and 2:1 ratio in infantry are pretty much a minimum, and I'd recommend at least 2 Catapults unless you're going for Pyrrhic victory.

Battering rams are now much weaker to make gates more meaningful.

There's also one thing I did that makes settlement defenses a lot weaker - in vanilla defenders will only sally out if their (AI-judged) strength ratio against attackers is 2:1 or better. I lowered it to 2:3, so they'll sally out even when they're slightly weaker, instead of waiting inside. This sometimes benefits AI, more often it doesn't, but it sure as hell makes things a lot more interesting.

The worst battles are when AI stands there doing nothing - as it sadly usually does when you sally out with some shooters and it just stands there not even bothering to shoot back. This seems to be a bug, but I have no fix. I much prefer stupidly active AI to stupidly passive AI (since it's rarely actually smart), so I like more frequent sallying out. (only in battle, campaign sallying out is hardcoded, and I cannot influence it)

Plaza capture timeout is reduced from 3 minutes to 1 minute. 3 minutes was far too long to be of any use - now you can win battles with some smart maneuvering, but it's pretty hard to do so.

Bug fixes and small tweaks

And speaking of bug fixes, there's a ton. "Everyone hates you bug" is fixed. Turn number is displayed as year, not as turn (which is not technically a bug, but it annoyed me as hell).

I removed rubber swords from pikemen, which makes them a lot more powerful as well, but units are rebalanced anyway. I removed "fire by rank" from gunpowder units since it was mostly just bugged.

In Rome Total War settlement center was considered defended as long as at least 1 soldier stayed there. Medieval changed it to 4:1 attackers to defender ratio, but nobody told AI so AI often stands there thinking it's playing Rome, while attackers take over settlement without a fight. So I changed it to 20:1 ratio, which doesn't occur in practice and is less annoying than "infinity:1" and  stray fleeing defender won't reset your timer when he gets to the square. (and timeout is 1 minute not 3 minutes now).

I tried to reduce Captain Obvious telling you "we're under attack, we must do something" all the fucking time, but I failed. If there's a fix I'd like to see it.

Naval autoresolve is tweaked so naval battles can actually sometimes be decisive, but if it does something, the effect is pretty small.

I'm somewhat annoyed by adoptions in Medieval 2, since they are very inappropriate for the period. There's no way to disable them, and I tried just about everything. The best I could do was making everyone super-fertile since there's a limit of 4 children (adopted or natural) per couple, but that was ridiculous as well.

Then I checked some history books, and it turns out that while Roman-style adoptions weren't that common (but still happened occasionally!), other forms of arranged succession by marrying king's widow, or some niece, or some other relative was actually happening all the time, especially in the Middle East (Byzantium, Islamic states, Crusader kingdoms etc.).  So just think about it as "do you want this guy to marry your second cousin", not as "do you want to adopt this guy", and it might bother you less.

Campaign timing

I often play with big events like gunpowder, discovery of the New World, Mongol/Timurid invasions happening earlier, but currently it's all back to defaults, except crusading can start nearly right away.

One big change on campaign map in the mod is that all rebel settlements now have a lot more defenders, and often pretty decent level defenders, so you cannot just blindly blitz 10 settlements before turn 10. I think I screwed up unit lists and gave rebels a few units for which they have no proper textures (textures in Medieval 2 are per-faction, so giving a faction another faction's units is not as easy as it sounds) so you'll be fighting very shiny enemies in a few settlements, but it's not big deal. I'll get it fixed eventually. Incidentally giving rebels massive stacks of units is precisely what they've done in Empire Total War, except they're called "minor factions" there, not rebels.

A few times I played with all settlements upgraded one or two levels, and all factions getting two stacks of high level units for fun, or pre-configured wars, but currently it's very close to vanilla except with that blitz slowdown.

It slows you down more than it slows AI since AI can cheat with autoresolve and you're presumably fighting well defended settlements honestly.
Anton by Marianne de Wit from flickr (CC-NC-SA)

Unit rebalancing

And now for the biggest change in the mod - rebalanced unit system. Unfortunately vanilla is so ridiculously out of balance that it's necessary to do some pretty drastic things here.

A single change that gets really close to restoring balance is cutting melee and missile attack by half. The results are so amazing that I disabled most of my other balancing hack.

It's not entirely clear how "cutting some number by half" translates into actual fighting, since Medieval 2 has very complicated system with huge number of modifiers for everything and it even includes attack animations in its calculations somehow.

But now a single cavalry charge doesn't end the battle, flanking makes a huge amount of difference, and stamina and managing reserves is surprisingly important (since in infantry-vs-infantry battles everyone tends to last a lot longer).

Missile infantry ammo is still doubled, quite appropriately now since their missiles do less damage now. As I said before gunpowder units do not have to use formations (if you ever get far enough to play them). One thing I did what giving all archers (even Peasant Archers) stakes, to differentiate them from crossbowmen and introduce more tactical diversity. You won't get to use stakes all that much, since usually you're the attacker, and sadly AI doesn't seem to use them ever, but it's more fun this way.

The only other change was massively improving artillery. They have 2.5x ammo, partially to balance lower attack strength. They have 50% more units - so artillery units which used to have 2 now have 3. I tried giving them 4 but maneuvering with that completely broke pathfinding - it's still really hard for them to maneuver in inner circles of Fortresses and Citadels where you need them most. And most important of all - their accuracy factor is 2.5x higher.

What does 2.5x higher accuracy mean? Well, they're ridiculously better than they were before on the battlefield. In optimal situation where your opponent stands idle doing nothing, which sadly happens sometimes, your artillery can be really murderous. If there's a proper battle, usually you'd still would rather have Pavise Crossbowmen instead, and whatever is their attack power, artillery is really bad at defending itself so it works better as part of a balanced army than in any kind of spam (the way you can spam heavy cavalry or crossbowmen).

Another issue is that AI really overbuilds artillery - and instead of fixing AI, why not actually make what it's doing smart instead of dumb?


This time I'm uploading sources for the mod as well - the mod consists of a big library of functions performing various changes and a short control block calling these functions to assemble the mod, currently this (removing comments): do
  ### Settlement
  building_cost!(1.5, 1.0)

  ### Unit recruitment and upkeep
  unit_cost!(1.0, 0.6)

  ### Basic settings
  plaza_capture!(1.0, 0.95)
  ### Captain obvious

  ### Crusades

  ### CAI

  ### BAI

  ### Agents
  agent_speed!('diplomat', 5.0)
  agent_speed!('princess', 5.0)
  agent_speed!('spy', 3.0)

  ### Guilds

  ### Units
  artillery_range_ammo!(1.0, 2.5)
  artillery_size!(1.0, 1.5)

  ### Units - bug workarounds

  ### Sieges
  tower_fire_rate!(3.0, 1.0)

I'm not putting it on github, since the mod also includes some third party files - some from vanilla Medieval 2 Total War, some from other mods - Sinuhet's AI tweaks and Cities/Castle Strat v1.0, and I didn't get proper permissions or anything since it was really meant for my personal use only. Hopefully nobody will be angry enough with me for it.

Personal use only, no warranty, don't sue me etc. etc. Install Ruby (I think JRuby should work just as well, and it's probably easier to install), tweak make_vanilla_dynamic.rb to your liking, then run it, then the mod will be produced in output directory (and don't actually delete that directory, some files there are not recreated, they're just static stuff needed to make the mod work, copy it out instead)


Concentrated Vanilla 0.50 uses some files from the following minimods:

  • Sinuhet's Battle Mechanics
  • Lusted's Better BAI/CAI
  • Agart's Cities/Castles Strat
They are all optional, and if you want you can rebuild Concentrated Vanilla without them by just removing their files from data directory.


You can download mod here.

You can download sources here.

If you're interested in how this mod evolved, posts about previous versions (with links inside):

No comments: