Gamepad is one of the primary devices for playing videogames. They are usually more responsive and precise than keyboard, which reflects positively on the experience.
Gamepad interface needs:
Features to support:
Optional:
Usually, the generic gamepad interface is the Xbox gamepad, any unknown gamepad should be treated as an Xbox gamepad as a fallback (but also return unknown gamepad manufacturer to the user, so they don't allow it if they don't want to). PlayStation gamepad has a similar layout to Xbox, so it should be fine too.
There's gamepad emulators available, so no original hardware is required.
For Windows, there's XInput API which provides support for gamepads, I'm not sure what's for Linux.
Most of the time, game developers don't want to wrangle input for both keyboard and gamepad separately, it can be possible for keyboard to also act as a gamepad with a Keyboard "manufacturer". You'll be able to specify a certain layout and the inputs from the keyboard will be translated as if it was a gamepad.
Now that we have sokol, we can try implementing generic gamepad support.
It should be resolved before February, I'm going to work on it.
I can take over the linux side if you want, but we have to decide on an API first.
Also do you want this to be implemented before the new renderer or after?