I ran Unix strings program to extract strings from Empire.exe binary.

Some things I've found look like debug printf patterns.
Here are a few possibly interesting examples:

- (Defender Armour(%d) / Projectile Damage Armour Divisor(%d) ) = %d
- (Defender Defense(%d) / Projectile Damage Defense Divisor(%d) ) = %d
- (Defender Shield(%d) / Projectile Damage Shield Divisor(%d) ) = %d
- (Projectile Damage Distance Multiplier(%.02f) X Projectile Horizontal Distance Travelled(%.02f) ) / Projectile Effective Range(%d) = %d

Result = roll(%d)<kc(%d) = HIT
Result = roll(%d)<kc(%d)+xholds[%d][0](%d) = KNOCKDOWN
Result = roll(%d)<kc(%d)+xholds[%d][1](%d) = KNOCKBACK
Result = roll(%d)<kc(%d)+xholds[%d][2](%d) = STEPBACK
Result = roll(%d)>kc(%d)+xholds[%d][2](%d) = MISS

Marksmanship = (Attacker Core Marksmanship(%.02f) + Projectile Marksmanship Bonus(%.02f) ) X Accuracy Modifier Factor(%.02f) = %.02f

Kill Chance = (100XProjectile Damager=)%d
Kill Chance = (60XProjectile Damager=)%d + (Attacker Accuracy(%d) / 1.5)
Kill Chance = hn(%d)<-12 = 76+(hn*3) = %d
Kill Chance = hn(%d)>=-12 = 112+(hn*6) = %d
Kill Chance = hn(%d)>=-6 = 154+(hn*13) = %d
Kill Chance clamped in range 14..95 = %d
Kill Chance modified due to excessive number of Attackers in encounter (%d) = +50percent(%d) X Number of Supporters = Revised KC %d

NCM TACTIC ENABLED:iversion Tactic ACTIVE:: Target=%u Attacker=
NCM TACTIC ENABLED::Focus-Fire Tactic ACTIVE:: Target=%u

PATHFINDING: we have 2 lines very close (%.1f,%.1f)(%.1f,%.1f)-(%.1f,%.1f)(%.1f,%.1f), is it our intention to join them up

Using Land Artillery special-case value for Missile Distance for half-chance hit (%.02f)
Using Naval Artillery special-case value for Missile Distance for half-chance hit (%.02f)
Using xhold index = hn(%d)<melee_hn_to_xholds_N_max(%d,%d,%d,%d) = %d

By the way, what interests me in particular is "timeout_winning_alliance_index".
This seems related to AI thinking it needs to attack to win, and if it turned out to be hackable
somehow, it would be possible to make BAI more aggressive and more interesting. FTW.

I guess it should be possible to hack a lot of very difficult things in ETW
by looking inside its binary. Not that I can be bothered, but yeah ;-)