ISSUES IN THE COMBAT CASUALTY ALGORITHMMany players have recently made us aware of a number of combat outcomes that are "unusual".
Let me say, first up, that the algorithms that generate these unusual outcomes haven't changed since the early days of Illyriad. There's nothing "new" here, except a much better understanding amongst the playerbase, through trial and error, of how the Combat Resolution and Casualty Assignment algorithms actually work.
There are 2 different issues going on at different edges of the combat bell-curve: the very small unit grouping, as well as at the very large "stacked army" end.
THE TWO ISSUES
ISSUE 1: Casualty Assignment Avoidance by "combat grouping"
Many players have realised that by grouping small numbers of units into multiple divisions and armies, they can avoid casualty assignment where the overall attacking army has insufficient force to produce a number of casualties greater than one casualty as a floor rounding (rounding down) issue on <1 casualty. Using a ceiling rounding (rounding up) function would have the same issue, just in reverse.
ISSUE 2: Large-scale Combat Critical Hit Probabilities
A second issue has been occurring with stacked defenders on a square, whereby substantial numbers of defensive forces defending against a large attacking force can cause the critical hit/miss random-number-generator to produce less than random outcomes. This isn't a failure of the random-number-generator itself, it's that the probability threshold of a critical hit increases too substantially depending on the number and level of the commanders occupying a square in defense.
PATCHING THE ISSUES
Both these issues are (generally, but not universally) applicable to defense rather than attack, and both have been in the game forever. It's simply now that players are taking them to the extremes that they're becoming clearly visible.
We have patched both issues, effective immediately.
Issue 1 Resolution:
After the first pass of combat casualties has been completed (with percentage casualties being assigned according to the force differential, as has always happened)... there is now a second pass which basically says "OK, so what casualties were actually taken here and how many casualties should there really have been?". This second pass then adds in further casualties to the army, to compensate for the rounding issue. These further casualties are taken from the troops who benefited from the rounding issue, and are assigned by XP value with the weakest defensive groups perishing first.
This assignment is also done based on attack/defence strength vs unit type of the inflicter. So if an attacker wins the battle but the defender had its defence strength highest against spearunits - the spearunits of the attacker would be the first to take the brunt of this second pass.
We have chosen XP value for the second pass, as this still permits future situations where a reasonably-sized army could attack a single very powerful entity (eg a single Dracolich) and not actually kill it - despite doing substantial damage to it.
Please be aware that you may well still see groupings within divisions that took zero troop casualties - and this is to be expected: we can't make every single divisional grouping take at "least one casualty", as that would be just as likely to reverse the rounding error to the benefit of the other party.
However, since this patch the total "casualties taken" level will go up and the total xp damage done will add up to the required casualty xp according to the force differential.
This will also slightly change the dynamic of the raid stratagem as previously if casualties inflicted to a unit group were 1 or 2 the casualties would not be divided by 3 (giving zero). However now they are and the extra damage is mopped up in the second pass.
Issue 2 Resolution:
We have smoothed the critical hit algorithm to disregard many of the "stacking divisions" factors. One-on-many combat (as is the case with any stacked defense) now applies consistent random probability curves to both sides.
As said before, these issues have always been in play and we've patched them as fast as we could since being made aware of them. We will not be considering reimbursements for any players affected by either of these issues.
OTHER PATCHES
RESEARCH POP-UPS
Should now remain on screen.
NEGATIVE BUILDING LEVELS
Occasionally for some players, the negative resources level down function would de-level buildings to negative levels - this has been resolved.
BUILDING UPGRADES
Occasionally for some players, after some circumstances
(see above) - upgrading a building would fail with the message "Arithmetic overflow error converting expression to data type int.". This has now been resolved.
Regards,
SC
Edited by GM Stormcrow - 07 Mar 2012 at 03:31