As outlined on the forum it is not possible to call use Move() to move a movable atom without knowing what turf is the destination of the movement. This doesn't make sense in games using non-atomic movement. If all that a developer want to do is move the object by an arbitrary number of pixels, it is not known whether or not this will result in the object crossing into a new tile.
I suggest that when step_x or step_y are supplied to Move(), that NewLoc should be treated as an optional argument:
Alternately, there should be a proc that can be used like Move(), but without specifying a new location.
Note: The step() and walk() procs are insufficient. They cannot be called without changing the mob's direction to that of the movement. This is only possible with Move().
Edit: Also, step cannot replicate all the behavior of Move(). In Move, it is possible to specify different values for step_x and step_y. Using step() or walk(), you can only move at 45 degree angles.