Add Game Controller Integration (GCI) to your Panels

Make requests for others to help test your instruments before they are ready for submission to the store

Moderators: russ, Ralph

Post Reply
Posts: 233
Joined: Sun Feb 14, 2021 6:55 pm

Add Game Controller Integration (GCI) to your Panels

#1 Post by Tetrachromat »

What is Game Controller Integration (GCI)
Game Controller Integration is kind of a plugin, that lets you use game controller inputs in Air Manager without scripting in Lua.

I have been using Lorby's 'AxisAndOhs' external application to manage my game controllers configurations. But was never really happy with it. Therfore I was looking for a replacement. When Sim Innovations included the 'game_controler_add' function to the Air Manager API, I got interested. I started to write a prototype script in Air Manager using lua. Over some time this prototype developed into a single library script that can be included in any panel.

Now a pre release version is available for BETA testing. Licensed users of Air Manager should read the following when interested in BETA testing GCI.

  • Generic integration code in a single library script file.
  • Easy all-in-one configuration file, separate from code,
    - but supports also splitting into different partial files for easier management.
  • Panel specific configurations.
  • Code and configuration is included in Air Manager panel when exporting/importing `.siff` files.
  • Code and configuration is `pushed` to Air Player together with panel.
  • Supports game controller axis and button controls.
  • Additional control subtypes
    - Support for 3-state switching "axis" controls (e.g POV/Hat-Switches with 3 different values).
    - Repeating buttons with timing parameters.
    - Modal buttons with two modes.
  • Dead-zones and response curves for axis controls.
    - Low and High end dead-zone.
    - Centre dead-zone.
    - Linear response.
    - User defined non-linear responses.
  • Output scaling for axis controls.
  • Inverted output for axis and button controls.
  • Three different actions configurable for
    - writing to sim variables/datarefs or
    - sending commandrefs/events to the simulator or
    - publishing to SI bus for subscription and handling of inputs in instruments (IIC).
  • Simulators supported through the Air Manager API are
    - X-Plane,
    - MSFS2020,
    - FSX and
    - Prepar3D.
  • Game controllers supported are
    - all USB HID `game controller`-class (partially) compliant controllers,
    - with up to 8 axes and 32 buttons.
Versions of the GCI library

A LITE version with just the basic features, and a HOME USE version with all features enabled. The LITE version is already available free of charge with an open source license (GPLv3), intended for users with basic requirements.

The HOME version is non-open source and will be available for licensing through a distribution channel which will be defined soon. The cost will be in the same range like the premium panels from Sim Innovations.

The included features for the LITE version and the HOME version are listed in my WIKI.

How To Get the LITE Version

You can download the BETA of the GCI LITE version from the releases in my GitHub repository. From the Assets drop-down either choose the SIFF file `Blank_Panel_with_GCI_Lite.siff` for importing into Air Manager a blank panel with GCI pre-installed or choose the TAR archive file `gci-1.0.0-lite-beta-x.tar` when you want to add the needed resources manually into an existing panel.

Instructions for both uses cases are given in the WIKI Documentation.

Both assets contain the final lua source in the `lib` folder. There is no need to download the source code zip archives.

How To Configure GCI

Before you can use GCI, you need to configure your controllers and controls you want to integrate into Air Manager. The distribution includes a sample configuration file `gci.json' in the resources folder, that you need to edit to your requirements.

The WIKI also contains the information about how to configure GCI. Start with the Configuration Notes and the Global Structure.

Beware: I'm still moving documentation over to the WIKI. Some pages are still missing. I plan to complete them until next week.

BETA Testers
Let me know through PM when you like to participate in BETA testing and feel free to ask questions or report any issues via PM or here in this thread or on GitHub, if you have an account there.


Post Reply