Touchscreen Games: Use Analog Stick Instead of D-Pad

Directional pads work well on consoles with physical buttons. We can feel the direction we're pushing down, and we can feel how we have to shift our thumb in order to change the direction.


The same type of user interface does not work well on touchscreens. Since we can't feel the D-pad, it takes a lot of practice to figure out how we have to move our thumbs. And since every game places the D-pad slightly differently, it's something we have to relearn for each new game.

What's worse, it's usually impossible to see the D-pad while playing the game. So even glancing at the D-pad from time to time to see whether we've shifted our thumb away from its proper place won't help.

Virtual D-Pad

Virtual analog sticks solve this problem. We can judge the analog stick's state based on how the game behaves. The behaviour of our character tells us the exact position of our thumb.

Virtual Analog Stick

The direction our guy is running in tells us the degree of the thumb's position, and the speed tells us the distance from the center: if our guy is running faster, the thumb is further away from the stick's center. We don't have to see or feel the analog stick to know its state.

Since the game gives us a lot of feedback about how we're holding our thumb, a virtual analog stick is much easier to learn than a virtual D-pad.

The same kind of rules applies to all touchscreen interfaces where the user's hands or fingers obscure the screen: try to find a user interface which allows users to know the position of their fingers without having to see the part of the screen that is hidden by their hands.

If you require a short url to link to this article, please use

designed for use cover

But wait, there's more!

Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.