Skip to content
Joseph Geumlek edited this page Dec 27, 2016 · 2 revisions

Overall Design Goals

MoltenGamepad is designed primarily to make it easy to specify how various input sources map to a standard game pad. Further more, it also manages allocating virtual devices to allow trivial hot-swapping and minimize the effort of selecting which controllers are in use. Along the way, features such as keyboard emulation pop up naturally, and the secondary goal of a generalized flexible input remapper arises.

When a new game pad like device arises, it should be quick and easy to add the appropriate config to MoltenGamepad and get it's basic functionality working across one's software library, along with a common interface for changing event mappings.

A guiding motto is "make simple things easy, and complex things possible."

Comparison to Other Projects

MoltenGamepad is likely higher latency than these more specialized projects. Keep this in mind as a likely downside to MoltenGamepad in all these comparisons. These comparisons were with the author's limited knowledge of the other projects.

SDL 2

Spiritually, MoltenGamepad is most aligned with SDL2 controller mappings. You have devices that look like game pads, you have games that expect a game pad. SDL 2 offers standardized configuration strings for controllers to hide their differences.

Advantages of MoltenGamepad:

  • Works for software not using SDL
  • Handles complicated devices such as the Wii remote
  • Human readable configuration?

Antimicro

MoltenGamepad is mostly targeting the inverse problem, making things look like game pads. Antimicro is focused on making game pads look like things.

There is some overlap in functionality, and Antimicro is a much more full-featured project.

Keyboard and mouse emulation in MoltenGamepad is bare bones, and offered mainly as a convenience rather than a primary feature.

Input Scripts

https://github.com/cvuchener/input-scripts

This project is very similar to MoltenGamepad. The main difference appears to be in the view on configuration.

MoltenGamepad has simple text files specifying hard-coded in C++ event translators, aimed at making it easy to act like a game pad.

Input Scripts runs Javascript files on inputs, allowing for great flexibility in actions performed. The configuration is bit more verbose, but not too difficult to get the same behavior as MG. Adding novel event translations is much easier with IS than in MG.

Input Scripts does not appear to target the slot allocation behavior of MG.

Steam Controller

In a sense, MG is attempting to make any device as flexible as a steam controller. MG has to handle much more flexibility in input sources, and will probably never be as slick or easy to use as Steam's built in controller API.

Clone this wiki locally