How to implement "air-strafing" in the BGE?
it's simple really, 

just use seperate logic to apply forces on axis independently, and have each key only apply a cap to it's own directions

if keypressW.positive:
    if own.localLinearVelocity.x&lt;10:
        own.applyForce((100,0,0),1)
if keypressE.positive:
    if own.localLinearVelocity.y&lt;10:
        own.applyForce((0,100,0),1)


this way X(10) + Y(10) is greater then X(10) could ever be.