Proper Gamepad support with BigBanana

THE PROBLEM

Currently, InputManager grabs the joystick/joypad input from LWJGL2/LWJGL3 and provides them to the application. The application in turn shows them to the user which can choose how to map these into high level gameplay functions. Awesome: 2 problems solved in a single step.

Except for when it doesn’t work: if your favorite Axis or Button don’t work properly, you are going to have a poor experience. This issue has bothered me and some other developer in the past.

THE SOLUTION

Enter GLFW, courtesy of LWJGL3, which supports GitHub - gabomdq/SDL_GameControllerDB: A community sourced database of game controller mappings to be used with SDL2 Game Controller functionality

This library basically guarrantees that your buttons and axis will work as advertised.

So I started a development branch of BigBanana that uses that API GitHub - Pesegato/BigBanana: Mouseless (bananaful?) navigation for jme3 applications

BTW, if your are interested in the InputManager/InputMapper combo version you can still use the “BigBanana classic” branch GitHub - Pesegato/BigBanana at classic

As stated on the readme, this version is hacky and depends on a incompatible fork of Lemur.

Hopefully, GLFW Gamepad APIs will be integrated on InputManager (for LWJGL3) and the hacky part will be removed.

4 Likes