Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Im developing a 2D RPG for Android where the character can move up, down, left, and right like in top-down RPGs like Pokemon.

What is the best input mechanism to use to control the character? A virtual joystick seems a bit to complicated for just straight movement.

share|improve this question

closed as primarily opinion-based by Josh Petrie Oct 17 '14 at 20:19

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

This question isn't constructive in its current form, since the "best" way to control an RPG character on an Android device is entirely subjective. You should specify conditions for what would qualify as the best method. – Keeblebrox Jul 14 '11 at 19:06
And what's wrong with a D-Pad? – Noctrine Jul 14 '11 at 19:07
"A digital stick seems a bit to complicated for just straight movement." elaborate please. – iamcreasy Jul 14 '11 at 19:22
Best is very subjective. – The Communist Duck Jul 15 '11 at 9:39
Also do not forget to account for the multi-touch capabilities of phones. It can add additional complexities if you are also adding A B buttons for input – f20k Jul 15 '11 at 14:45
up vote 3 down vote accepted

The most responsive and familiar mechanism is the physical D-Pad on the Xperia Play device; you could follow Mojang's example and target your game at that device. This would additionally provide support to any devices with a physical D-Pad, since the Play's D-Pad uses the standard D-Pad key codes. This includes trackballs like the one found on the Nexus One; for those devices you may want to provide an option to keep walking in the last direction they pressed until told otherwise.

If your goal is broad device compatibility, the equivalent would be a virtual joystick, since all Android devices are required to have a touch screen before they can install apps from the Android Market. If you're relying on a touch screen, however, I recommend you move the character to whichever point the user touches on the screen.

As Zoot mentioned in the comments, there is another option you may wish to support: bluetooth gamepads such as the iControlPad. That gamepad in particular maps the D-Pad controls to WASD key inputs, though others may vary.

share|improve this answer
+1 For D-pad suggestion. I don't agree with the moving the character to wherever they touch though, mainly because it means they have to add in some sort of path-finding. – Noctrine Jul 14 '11 at 19:35
@Noctrine I agree that it'd be extra work, but pathfinding is pretty common and I mentioned it in case their game already uses it somewhere else. I admit it's a selfish recommendation because I prefer it in games I play. – Keeblebrox Jul 14 '11 at 19:53
Another option for D-Pad support would be supporting bluetooth game controllers like the iControlPad in addition to the native control method. – Zoot Jul 14 '11 at 20:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.