Idea: Language of donor and hero units should not change to the current civilisation

Here, donor units are:

  • All converted units
  • Team-bonus unique units such as Genitour, Kipchak, and Condottieri
  • Units taken over from other civilisations in campaigns and scenarios

Hero units are all heroes.

These units should not speaking your language, and keep theirs.

For example,

  • Condottieri should always speak Latin.
  • If an Aztec player converts a Turk villager, the villager should continue speaking Turkish.
  • Units given by other civilisations in campaigns, e.g. Huskarls and Champions in the Berber campaign, Shotel Warriors in the Portuguese campaign, all the different Magyar units in the Dracula campaign etc., should continue to speak their own languages rather than switch to the player’s.
  • Heroes should always speak their languages (e.g. El Cid always Spanish, Harald Hardraade should always speak Norse, etc.).

It’s obviously nothing major in terms of gameplay, but it adds a nice element to the game.


I really like the idea. But it raised me a question: Can the game support it?

This is what i believed that happens when you play a game and eventually select units; Check the end of post, below bold text: these items may not be true.

  • Game loads the “speech database” in memory only once, and only for your civ;
  • Game loads unit stats, including some sort of “ID”;
  • Game searches the unit ID in the “speech database”, saved in memory;
  • Game plays unit sound;

Maybe the game abstracts the “speech database”, and goes like “position 4 is sound of archer” and plays sound in position 4, no check if it is the correct sound or not.
Or maybe, it checks a “global variable” indicating your civ, and searches the files for your civ language, and then again for the unit sound. For an optimization point of view, i bet the first (less IT bs for you to understand). Maybe it goes the “one file for each unit”, loaded individually.

If it was for your idea to come true, the unit should also have an extra variable, as to storage what language selected unit is speaking. The game would be like that:

  • Game loads the “speech database” in memory only once, and only for your civ;
  • Game loads unit stats, including some sort of “ID”, and including the language it should be speaking;
  • Game loads the specific speech for that unit, keeps it for later
  • Game plays unit sound;

Adding one extra field to save the unit language, if it does not exist, could be a pain in the ■■■, i guess. But auto assigning this field to your civilization ID upon training, and playing sounds from different civs probably won’t affect game performance.
Since i don’t have the game downloaded here, i can’t say if the files are a single package loaded into memory and the sounds are played by accessing array positions, or if the files are single smalls mp3s, loaded individually. If the second is the case, then yes, your idea is possible, not hard to implement, and won’t affect performance in any way i can think.

sorry for the epic nerd moment. But now that i think of it:

opps i may have talked something which is not true
The game does had (at least in hd, it think it was) sounds in isolated mp3 files (loaded on demand, i guess? makes sense, considering how game could slow in bad pcs when you selected an unity for the first time in the game).

If it servers as an comfort to you, AoE3 has this feature — you can see this in mercenaries, native units, civ unique units rescued from treasures, etc.

What language should speak a group composed of standard units and converted ones?

To be honest, I find it way more funny that my Maya Conquistadors speak Maya and not Spanish.

Just my opinion though.

It’s always one of those units in the group that speaks. If you select the units in a different way you can often change who speaks or doesn’t (mix in a female villager and a horseman and try it out). So that doesn’t change.