16
\$\begingroup\$

Pretty simple question but I am not sure of the answer.

Should I develop user controls that use the mouse, or ignore the mouse completely and use only button controls.

An example would be:

Clicking on an item to pick up vs. Moving close to the item and pressing a button to pick it up.

What are your opinions on this, especially if you want to target more platforms than just PC?

\$\endgroup\$
  • 4
    \$\begingroup\$ "Clicking on an item to pick up vs. Moving close to the item and pressing a button to pick it up." A warning about this. Although it would have been possible to implement that, developers of Diablo III did not do it because it helped the user have a sense of the loot they were getting, it had to mean something to the user. It is something to consider. \$\endgroup\$ – Alexandre Vaillancourt Oct 29 '17 at 19:56
  • 3
    \$\begingroup\$ Don't force mouse input for discrete input. Taken to the extreme, a typical roguelike should be entirely playable without a mouse. Only use the mouse where precise input is needed (ex: click on a certain range of pixels on a screen, target an object, ...). Navigating menu options and choosing dialog options should be available with hotkeys and arrow/tab navigation, for people who prefer faster and simpler input \$\endgroup\$ – KABoissonneault Oct 30 '17 at 12:46
38
\$\begingroup\$

Yes, when you want your game to run on PC, you should think from an early design stage on how to best utilize the mouse. The same applies to the input features of all other platforms you consider targeting.

One of the main differences between a good port and a bad port to a different platform is how much effort you invested into accommodating the different input styles:

  • Console players use gamepads. How they manage to accurately point at things with these clumsy thumbsticks will always be a mystery to me as a PC gamer. But all the different analog input axis' available on a standard gamepad offer some interesting possibilities. Text input keeps being annoying, but there are some really interesting UI solutions people came up with.
  • PC users sometimes have gamepads but many don't have one or prefer using the mouse. They really dislike it when they have to navigate menus with keys when a mouse would be available. They also expect common actions to be available with keyboard shortcuts.
  • Mobile users have touchscreens. They are much less precise than mouse input, but offer additional input methods like pressure sensitivity, swiping and multi-touch gestures. "Virtual Gamepads", i.e. putting your gamepad buttons in the corner and expecting players to press them, is a very lazy workaround which suffers from lack of haptic feedback and reduced screen space.

So when you want to make a good port to a different platform, you need to reconsider your input methods. That often means that you need to redesign your user interface from scratch. You can reduce the pain when you take that into account from an early point of the development and make sure that all game features can be properly implemented with the different input methods.

\$\endgroup\$
  • \$\begingroup\$ I was waiting until I got a second confirmation on this before responding. Thanks for all the answers everyone. This cleared up my issues. I will develop with mouse for PC and adjust inputs for different platforms. \$\endgroup\$ – shell Oct 29 '17 at 22:50
  • \$\begingroup\$ In my experience most PC gamers have a gamepad.and not having one is uncommon. That's my only criticism though. \$\endgroup\$ – Pharap Oct 30 '17 at 10:06
  • \$\begingroup\$ @Pharap Depending on the game though, people on PC don't want to use a controller and controller designs can become infuriating when on the PC. Oblivion and Skyrim inventory system comes to mind whenever I think of this topic. It is a giant PITA in terms of keyboard and mouse, but makes sense in terms of gamepad. \$\endgroup\$ – TyCobb Oct 30 '17 at 17:57
  • 3
    \$\begingroup\$ As a PC gamer, I'd like to point out that I actually prefer not having to use the mouse if the game suits it. So please make sure you allow keybindings to be set. E.g. I use only the keyboard for rocket league. This includes navigating the menu \$\endgroup\$ – lucidbrot Oct 30 '17 at 18:55
  • 1
    \$\begingroup\$ @CGriffin I think it depends on what kinds of games said people like playing. If someone predominantly plays violent FPS games or visual novels or point&clicks or RTS games then it would make sense that they wouldn't own or want a controller, but stuff like third person action games or platformers or certain puzzle games make much more sense to own a controller for input. Unfortunately I can't find any statistics on this, so I'm going to chalk it up to YMMV. I'm not saying games should force users to need a gamepad, but I'm saying it's not exactly 'uncommon' for gamers to own one. \$\endgroup\$ – Pharap Oct 31 '17 at 16:36
6
\$\begingroup\$

Yes you should.

PC users expect that they'll have a mouse to play your game. If you don't use it, your game risks to be labeled as a "poor mobile port", specially if some actions in the game should be more naturally accomplished with a mouse.

Also, keep in mind that some PC users will also expect that there will be more that the basic gameplay done with the keyboard.

I suggest you exploit as much as possible the target device's input features as possible to please both mobile and PC users.

\$\endgroup\$
6
\$\begingroup\$

It depends, as usual.

What genre? How much money/time do you have? Do you develop the application to make money?

Users are generally surprisingly forgiving about bad input controls in niche games (e.g. JRPGs by independent developers), but better input control is still a plus if you want to sell more.

If you are on a very tight budget and do not directly profit from sales (e.g. a charity fund paying you a fixed amount of hours to develop education software), it's sensible to stick to one single input method done well - doing multiple input methods well takes considerable amounts of time.

If you want to sell your game at a reasonable price ($20+) and aim to reach a reasonably large number of buyers (50'000+), you absolutely should keep in mind* the different requirements of mouse, keyboard, touchscreen, and gamepad devices from the beginning. There's no way to simply "retrofit" gamepad input on a mouse/keyboard game or vice versa.

*When thinking of how to make your game touch, gamepad and mouse friendly, you may find that there doesn't actually exist a good solution. Such cases are quite common (real time strategy games are rarely cross platform). In those cases the usual solution is to only release on devices that support the form of input your game requires.

\$\endgroup\$
1
\$\begingroup\$

This depends exactly on weekdays kind of have your developing.

3D Games
If you look at most first person games, the mouse is used only for looking around. When ported to console, analogue sticks and buttons are used and on mobile, swiping is used to look with as few as possible other controls are buttons on screen. For a good comparison, look at videos of the different releases of Minecraft.

2D Games.
For games where the interactions are in 2d space. Then using mouse interactions as you described can be possible; but the most important thing to consider is how often you have to move your hands from the keyboard to the mouse and back. On mobile you have no choice because all the buttons you may want to use have to be on screen. Though you can consider having buttons which only show up when needed on mobile, for example: when you approach an item a button can show up on screen only while the possibility to pick it up remains. In 2D games, point a x works well on PC and on mobile but can be a bit clunky on console due to the fact that analogue sticks may be used.

To your question though, the most important thing to consider when developing on PC for multi-platform is that you have a much larger wealth of buttons at your disposal than on other platforms. So provided you l your number of buttons needed minimal and (for the benefit PC) ensure that one hand Chan be kept on the mouse and one the keyboard, then t a be no problem print a games controls to other platforms.

\$\endgroup\$
1
\$\begingroup\$

Yes you should. However, I would develop against an abstract input class or interface, and then implement the various ways the user can interact with it against this, depending on the hardware type.

I don't know about your game specifically, but for an example, create an abstract class interface with a methods such as

bool lookingUp();
bool shooting();

And then implement them in a concrete class, e.g.:

bool lookingUp() {
    return mouseIsMovingUp(); // e.g. PC
}

bool lookingUp() {
    return isTrianglePressed(); // e.g. Gamepad
}

bool shooting() { // e.g. phone
    return screenPressedAt(10, 10);
}

Then in your game, create the concrete class based on the hardware type. This will make your code cleaner, and you can easily cater for different platforms.

\$\endgroup\$
  • \$\begingroup\$ The general idea is right, but usually in a game you would react to input events rather that constantly check for state. \$\endgroup\$ – Rotem Oct 30 '17 at 15:36
  • \$\begingroup\$ @Rotem It usually all depends on the framework or libraries that are used. I usually use a combination of both, e.g. get the event for "shoot" when it occurs and store it in a bool, and check the bool every iteration of the game loop. This also avoids multithreading problems. \$\endgroup\$ – Steve Smith Oct 30 '17 at 16:04
-3
\$\begingroup\$

I'm going to play devil's advocate. I'm a recent report issues by root metrics, more people use cellular apps vs PC's. That's right, not only have mobile taken over, but mobile apps have surpassed desktop users in sum.

With that said, consumers like convenience, and they may have a device which requires a mouse. Just a thought.

\$\endgroup\$
  • \$\begingroup\$ So.... should the OP develop with mouse in mind if they plan on targeting more than PC? \$\endgroup\$ – Alexandre Vaillancourt Oct 30 '17 at 11:24
  • \$\begingroup\$ i'm not sure how this answers the question. \$\endgroup\$ – Brian H. Oct 30 '17 at 11:27
  • \$\begingroup\$ This would be better as a comment on the question \$\endgroup\$ – user106170 Nov 1 '17 at 1:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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