And now I can start dispensing advice and criticism! Woo. I feel bloggy already. First up, a bug that was mentioned in my analysis of Treasures of the Deep, but one which is present in many 3D games: they don’t support left-handed mouse users! The Control Panel option to swap mouse buttons isn’t new or wacky; it’s been there since the early 16-bit Windows versions. Not all lefties use this option, but many do.
When I start playing a game that doesn’t support swapped mouse buttons, I don’t realize it at first. I think, “that’s weird, the game isn’t responding.” I click on buttons and nothing happens. It takes a bit to realize what’s wrong. In the mean time, my first impression is that the game is broken.
I would never consider buying a game that didn’t support left handed mouse mode. It’s not spite or prejudice or anything … but think about it from the right handed point of view. If you downloaded a game and the mouse buttons were reversed, so you had to right-click on buttons to use them, your impression of the game would be pretty low, wouldn’t it? That’s how I feel.
If you use mouse messages like WM_LBUTTONDOWN for input, you don’t have to do anything to support lefty mouse mode. The operating system will take care of it for you! This is why 2D games tend to support lefty mouse even if the author didn’t think of it. However, if you’re using DirectInput for your mouse data, you have to check for swapped mice manually.
It is incredibly trivial to support lefty mouse mode in DirectX applications. You just make one single function call:
BOOL IsMouseSwapped = GetSystemMetrics(SM_SWAPBUTTON);
If this boolean is true, then simply swap the logic for your left mouse button and right mouse button handlers. That’s it! Ta da, you’ve made your game not suck for left handed users.