Glad I could help,

A minor improvement:

camera.x += (target.x - camera.x) * (1 - pow(1 - reductionpertick , time_step))

This is essentially the same equation, but there is no need to divide every frame by 16, which speeds things up a bit. Note that you'll have to use much smaller values for reductionpertick than for reductionpersecond ( reductionpertick = 1 - (1 - reductionpersecond)^(1/16) )

Because this will be calculated every frame another slight improvement may be calculating (1 - reductionpertick) beforehand:

leftdistancepertick = (1 - reductionpertick)

and use that result in the equation:

camera.x += (target.x - camera.x) * (1 - pow(leftdistancepertick , time_step))