Input and games.

Todd Showalter todd at electronjump.com
Sat Apr 20 19:31:57 PDT 2013


On Sat, Apr 20, 2013 at 5:13 PM, Nick Kisialiou <kisialiou at gmail.com> wrote:

> There are 2 USB connected controllers for each hand, each with 6 DOF
> information for 3D position and 3D rotation information. I programmed it for
> a 3D environment rather than games. Each controller sends you a quaternion
> to extract the data. On top of it, the output is noisy, so you'd want to add
> filters to integrate the noise out.

    There's definitely crazy stuff out there, and wouldn't argue for
an input abstraction that deals with all of it.  What I would argue,
however, is that the console gamepad is now standardized enough to
qualify for system support.  If you consider:

- the PS2 Dual Shock controller
- the PS3 Dual Shock controller
- the XBox controller
- the XBox 360 controller
- the GameCube controller
- the Wii "Classic" controller
- most PC gamepads

    We've got a pretty common set of functionality.  Two analog sticks
(left and right thumb), a dpad, some analog shoulder triggers and a
set of buttons.  There may be other functionality (lights, vibration,
pressure sensors, tilt sensors), and that extended functionality is
almost certainly beyond the scope of Wayland, but it would be nice if
there was at least basic support for the common case.

    By analogy, Razer also makes this:

http://www.razerzone.com/gaming-mice/razer-naga-epic/

    It's a mouse with 17 buttons and customizable lighting.  I'd
expect Wayland to support that as a mouse, but I wouldn't expect it to
understand all the extra buttons or the software-controllable LED
lights.  It would be nice if there was a way to get at the extra
functionality, but for special-case devices like these I think it's
reasonable to expect that support to be external to Wayland.

    Likewise, I'd be content with support for the common things in
gamepads, with non-common elements like force feedback, tilt sensors,
lights, pressure sensitive buttons and so forth relegated to second
class (external library) status.  Ideally it would be wonderful to
support all the features of every oddball controller, but I'd far
rather have easy support for standard gamepads than the mess we have
now.

    The data just needs to be something like:

typedef struct
{
  float x;

} VEC2;

typedef struct
{
} GAMEPAD_DATA;


                                            Todd.

--
 Todd Showalter, President,
 Electron Jump Games, Inc.


More information about the wayland-devel mailing list