Aide sur l'extension Gamepad / Compatibilité manette GPIOs

Bonjour,

J’essaie de développer actuellement une console portable ARM avec le support des jeux construits avec GDevelop (en export html5/webgl). La plateforme de test est un Raspberry Pi avec un Waveshare Game Hat (qui évoluera par la suite si c’est fonctionnel) et donc un gamepad connecté aux GPIOs avec un driver fonctionnel. Le projet est basé sur Raspberry Pi OS Lite, et une bibliothèque est utilisée pour le mapping des touches pour le navigateur (GPIOnext).
Le tout fonctionne parfaitement sur un site de test de gamepad html5 ou toutes les touches sont reconnues par le navigateur via le mapping, et même pour un jeu GDevelop utilisant l’extension Gamepad sous certaines conditions. En effet pour le jeu GDevelop il me faut relancer manuellement le service de mapping des touches une seul fois pour que le gamepad soit utilisable.
Ce problème n’est pas présent dans les testeurs de gamepad en ligne aussi je pense qu’il s’agit d’un petit soucis de compatibilité entre l’extension Gamepad et la solution de mapping.

Si quelqu’un connait un peu l’extension et si il serait possible d’avoir de l’aide pour éventuellement cibler le problème.

@Bouh si cela vous parle :blush:

PS : J’ai déjà effectuer plusieurs tentatives de contournement du problème via le relancement du service à l’aide de scripts mais cela reste très instable et pas très fonctionnel pour la suite. Une autre alternative serait de lancer le service manuellement au démarrage de l’UI que je développe mais selon moi il serait plus intéressant de regarder du coté de l’extension.

Si des personnes sont intéressées je veux bien partager sur l’avancement du projet, le but final étant de produire une image (open source bien entendu) utilisable pour le Raspberry pi 4

L’extension utilise l’API Gamepad des navigateurs.
Il est possible de faire un changement du mapping dans l’extension directement, ouvre la et regarde la fonction onFirstSceneLoaded.

Les gamepads qui sont déconnecté et qui se reconnectent sont directement reconnu de nouveau, ça c’est grâce a l’implémentation de API dans les navigateurs c’est pas du à l’extension, donc il se reconnectent mais l’index peux être différent, donc mal reconnu par les jeux, sa en résultera d’un inversement de joueurs par exemple.

1 Like

Bonjour,

Effectivement il s’agissait bien d’un problème d’index du gamepad, je vois avec le créateur de gpionext si il y a possibilité d’influer dessus.
Dans mon cas il s’agit de la manette 2 qui est reconnue pour une configuration au numéro 1 dans gpionext.
En théorie sur cette taille d’écran le multijoueur local ne devrait pas se faire mais je pense quand même essayer de trouver une solution.

Merci pour ton aide @Bouh

1 Like