Thank you for the reply, but I think you have have misinterpreted how I'm using the speed variable (which is perhaps more to do with me not furthering my example).

After the speed is calculated, it's applied to the current position:

1 2
| speed = (forwardSpeed * GameLoop.delta) / 1000f; position.x += speed; |

It's essentially the same as your example. I'm aware of the need to adjust the amount of distance you need to travel based on timing, rather than ticks, which is why I feel that my problem is with my calculation of the timing, rather than the method I'm using to apply it.

In a normal run loop, having a movement speed of, say, 10 would produce wildly fast speeds (for my needs, anyway). That's why I use the 1000f modifier - to bring the final value back down to around the 0.xxxx range.

if

**forwardSpeed** is 10, then the following applies:

*N.B. Delta in this example is '10'*(10 * GameLoop.delta) / 1000f = 0.1

If the delta was '2' then the following is true:

(10 * GameLoop.delta) / 1000f = 0.02

Therefore, a faster update of '2', rather than '10' should yield a much slower update distance, correct?