Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Additional Information:

How to get started:


Using a Game Controller as a Navigation Aid

Project Description

Projects like the Xbox Adaptive controller, the Logitech G Adaptive Gaming Kit, and various modified controllers strive to include a wider range of people in traditional PC and console gaming.  The goal of this project is to extend the usefulness of adaptive controllers by making it possible to navigate using a game controller as an alternative to a keyboard or mouse.

As a proof of concept, we should at  least be able to demonstrate support for keys commonly used for browser navigation, such as the arrow keys, tab, shift, space, enter, and escape.  The ideal solution would also allow the user to select which actions to associate with which gamepad inputs, including key combinations, macros, and possibly simulated mouse input.

Tag: Fluid

Difficulty: Medium

Mentor: Tony Atkins

IRC: the-t-in-rtf

Skills: JavaScript, HTML

Is this a coding project? Yes

Additional Information:

This project would likely use the HTML5 Gamepad API, which is well supported in a range of browsers, and provides the ability to use a huge range of inexpensive game controllers with a browser, including Xbox, Playstation, and PC joysticks.

This project will involve developing a solution that can be used with external sites and applications that do not themselves provide gamepad support.  It is likely that the candidate would work with something like Electron or a custom Chrome extension.

How to get started:

Try browsing the web for a half hour using only your keyboard to navigate.  Write up your experience and think about how you might improve this for others.

If possible, find a controller compatible with the HTML5 Gamepad API, such as a PS4 or Xbox controller.  Try the controller out with an HTML5 gamepad tester.  Look at how some inputs are digital (only sending 0 or 1) and how some inputs are analog (sending a range of values instead).  Think about how you might use each type of control to improve the experience of navigating.

Read up on the underlying technical topics, particularly Electron and the Chrome Extension.  Although you will have help, you will need to demonstrate that you will be comfortable building a solution in either of these well-documented but highly technical environments.  Going through a tutorial or two on each topic might help you prepare.