I'm porting a VR app to non-VR. In VR you can move your head to look around, which you can't in a Windows app of course. This means that I also have to change the controller layout. Users might use both versions of the app or maybe only one of them.

Old layout:

Old layout

  • Left analog stick: Move
  • Press left analog stick: Toggle run
  • Right analog stick: Fly up/down
  • Left/right buttons: Switch between 3D models (previous one, next one)
  • Left/right triggers: Switch between extra 3D models (displayed additional to the other ones)
  • The D-pad and A, B, X and Y are all used for special functions (like: "Y" resets your position)

New layout:

  • Left analog stick: Move
  • Press left analog stick: Toggle run
  • Right analog stick: Look around

Version 1 (Blue: Differs from original):

New layout version 1

  • Right button/right trigger: Switch to next model
  • Left button/left trigger: Fly up/down
  • Advantage: Less complex, the D-pad and the other buttons keep the same special functions
  • Disadvantages: No way to go back to the previous model, so not conform with the old app; I've never seen anyone use the left button/trigger to jump/crouch/fly, so possibly not as intuitive

Version 2 (Blue: Differs from original):

New layout version 2

  • Left/right button & left/right triggers: Switch between models (previous and next)
  • A and B: Fly up/down
  • Press right analog stick (with indicator on the screen): Switch between movement and special functions (A, B, X and Y are each mapped twice)
  • Advantage: You can go back to the previous model, so it's more conform with the old app; more available buttons; also more conform with commonly used key bindings (A: Jump, B: crouch)
  • Disadvantages: More complex because you have to switch to access all functions

As you can see, there are advantages and disadvantages for both versions and I'm not sure what to do here: Is it better to go with something that's less complex but also less conform with a previous version or something that's more conform but also more complex?

Driving a car in a game and controlling your character usually use the same controls or at least very similar controls but that's different "modes", so is it common to map buttons twice with some kind of additional "mode switch" button while you're still in the same game "mode"?

  • 2
    I think a screenshot or mockup would really help with this question :)
    – Michael Lai
    Commented Oct 11, 2018 at 23:50
  • It would be easier for us to grasp the logic fully if you used a pictures of a controller and wrote each action on/beside the buttons. Then we could visually compare them instead of having to imagine each detail.
    – Big_Chair
    Commented Oct 12, 2018 at 10:15
  • I added a couple of pictures. Text written in blue means that it differs from the original controller layout.
    – Neph
    Commented Oct 12, 2018 at 11:53

3 Answers 3


I think that it depends more on the users' learning cost. Your users have already formed their behavior customs and cognitive of your app's function system.

So for your question :

Is it better to go with something that's less complex but also less conform with a previous version or something that's more conform but also more complex?

I prefer the later one. Because it's easier for users to adapt to a new version. However, the former one is a next-step-goal. I suggest that you can gradually iterate the functions layout in new versions based on every latest old version.

BTW, it will be more visual to give answers if you attach some prototypes :)

  • Thanks for your answer! I agree with you because I prefer using the standard gaming layouts myself (so "A"=jump/up and "B"=crouch/down, LB/LT just feel weird to me) and I'm also trying to use gaming standards as much as possible. Most of the users of my app aren't gamers though and they might not have used/may never use the old version at all (the new version won't replace the old). Since version 1 was suggested by someone else partially involved in the development (a non-gamer), I don't want to disregard it right away but also want to find the best solution for most users.
    – Neph
    Commented Oct 11, 2018 at 15:50
  • Once I've got a set layout I don't want to change it again (unless there are new functions) and changing it over time would be counterproductive. If you've got a different suggestion, I'd be happy to look at it. ;) Sorry, there are no prototypes, I've only got an old controller image that I can't post here. I hope that it's still clear enough what's what.
    – Neph
    Commented Oct 11, 2018 at 15:57
  • There are two factors to be concerned. User amount and industry customs. Commented Oct 12, 2018 at 5:05
  • 2
    1. User amount. Consider your user amount currently, a huge one could be decisive. Because it means lots of your target users have already formed using customs. On the other hand, if a much larger user amount matches your team goal or is predictable in the sooner future, then I think better offer a more simple and less complex version for your users, and conformity might be second to be considered. Commented Oct 12, 2018 at 5:17
  • 1
    2. Industry customs. Are their many similar apps to yours in the market? If yes, then I think a new version layout should be designed based on industry customs, which might shape people's habit preference. hope that I catch your words. For your reference :) Commented Oct 12, 2018 at 5:26

Short version: Skip to "Questions to help you decide".

Long version:

As most things in UX, such a question is very dependant on context and user group.

I think in this case the most important question is how often are the different actions used?
Because in the end this determines how the user's workflow with your app will look like.

Imagine if you choose version 3 with different modes but users have to switch modes constantly. It would drive them crazy. On the other hand, if the switch happens rarely, they'd be glad to have room for more actions. So you should always keep your user's workflow in mind when making design choices.

Danlin Chen already mentioned the cost of learning, this is also supported by this NN Group article:
Don’t Prioritize Efficiency Over Expectations

Summary: Features meant to increase user efficiency by reducing steps can end up hurting users if they do not conform to existing mental models and expectations based on past experiences.

But in the same article they point out that design standards are not intended to stifle creativity:

Standards ensure a consistent vocabulary, but don't limit designers' freedom (and responsibility) in deeper design issues.

(You could also argue that they already have to re-learn the flying control for the new version, might as well let them re-learn something else on the way.)

In the end it is a trade-off between learning cost and possibly easier controls. And you have to decide based on what you know about your users. Because after all, your top priority should be to make their life as easy as possible with your app.

Questions to help you decide:
Ask yourself (or even better, your users!), how often do they need to fly up or down and how often do they need to use the special functions. Would it be annoying for them to have to switch between these modes?
Then pick version 1.

On the other hand, how important is the switching between models for them? Are there a lot of models, so that the user would be very frustrated by having to go through the whole list again if he missed his target?
Pick version 2.

Or you could ask your users and maybe adapt your design even further.

  • My app is about looking at the models (can be 1-2 or 10), so while the extra functions that I currently use A/B/X/Y for (e.g. save model, restore/delete saved models) are important, being able to fly around properly is too and will properly happen a lot more often than e.g. saving models. I know that giving too many choices can turn into bad design but is adding both controllers layouts and simply letting the user pick one (includes saving the choice of course) okay in my case? E.g. make version 1 the default for older users and the younger users know how to switch to the other one anyway.
    – Neph
    Commented Oct 15, 2018 at 10:15
  • 1
    @Neph I think the caution about too many choices does not apply when you only have 2. Giving them a choice might actually be a good idea, since "Flexibility and efficiency of use" is part of N&N's 10 Heuristics for UI design
    – Big_Chair
    Commented Oct 15, 2018 at 16:11
  • @Neph Consider marking one of the answers as accepted or writing your own solution as an answer, so future users can quickly see what the optimal solution to that question was
    – Big_Chair
    Commented Oct 15, 2018 at 16:15
  • Okay, that's good then, thanks. But still, while I know what layout to use now, I'm still not sure what of my original question is more desireable. I know that it depends on context, so: There are both older and younger users and they've all used the old version of the app. It doesn't even matter what the new layouts exactly look like, let's just say that one is more complex but rather conform with the old layout and the other is less complex but also less conform. Which one should you go for then with that mixed target group? Or should the choice always be: Add both, then let the user pick?
    – Neph
    Commented Oct 17, 2018 at 8:46
  • 1
    @Neph I think the first choice is always: make one idea so user friendly (with user testing) that everyone can live with it. If that is not possible (because of different needs of different sub-groups of users), then use different versions and let the users pick.
    – Big_Chair
    Commented Oct 18, 2018 at 8:51

I haven't been able to find a gamepad layout that is both conform with the old one but also easy to learn, while still providing controls for the new features, so I ended up doing this:

Layout 1 (less complex but not as conform) is going to be the default layout, so older users should have an easier time getting used to the new version of my app.

There's also going to be a way to switch to layout 2 (more complex but also more conform to the old layout/gaming standards) in the options (this choice will be saved and restored on startup), which in turn shouldn't be a problem for younger users (/gamers).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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