1001 troops walking in the desert are walking at 8.545 for the moment instead of 25 with 0 troops
Let's do some calculation :
$troop_influence = (pow($troops, $terrain['troops_influence']/200)/100); #capped at 0.99
$speed = $speed * (1-$troop_influence);
$troop_influence = ( 1001^(100/200) ) /100 = 1001^0.5 /100 = 0.3163
$speed = 0.25 * (1-3163)= 0.25*06836 = 0.17 = 17 meter per minute. Did this formula have been divided per two?