Previously in my game i had the player as a platformer character with everything set to 0 and everything he collided with was a platform, this made the player shake when going diagonally into an object. A better ad much easier solution (which i am using now) is to just have an event like this
In which "Platforms" is a group of all the objects you want your player to collide with
For the controls use the mouse pointer lock extension and have some events like this
In which the variable sensitivity is set to the sensitivity of the mouse
Then you are going to move the player according to it's angle like this
Let me know if you want help with anything else or didn't understand something