I am making a simple custom control script that allows movement via the wasd keys.
Initially I was using CFrames to move the character forward/backward like so:
torso.CFrame = torso.CFrame + torso.CFrame.lookVector
But I wanted to try using Velocity to move the character instead since using the lookVector of the CFrame to move the character was pretty buggy:
torso.Velocity = torso.CFrame.lookVector * 50;
However even this method of movement is buggy; although it does not allow a user to walk through a wall, users can still experience odd behavior such as blocky movement when moving up a ramp.
To summarize, what is the most effective method to move a character from a custom control script?
Thanks

2 comments
Humanoids have MoveTo: http://wiki.roblox.com/index.php?title=API:Class/Humanoid/MoveTo or Move: http://wiki.roblox.com/index.php?title=API:Class/Humanoid/Move
@luke thanks!