Examples of good user experience design for virtual joystick in mobile or touchscreen games?

Many games for touchscreen mobile devices use virtual joysticks for movement. This has many issues:

  1. You can't see/feel where the joystick is pointing when you are using it.
  2. You can't feel where the 'edge' of the joystick is - meaning, you can't know when you are reaching the maximum in any direction
  3. You don't always know when you're pressing the joystick. You can accidentally miss pressing it and not know, because you can't feel the joystick under your finger.

On the other hand, I've never been able to think of a reliable replacement for 2 directional movement that is as good as a joystick. Are there any?