Jeux

Comment utiliser AutoKey pour automatiser les jeux Linux

Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script et MACRO, vous pouvez automatiser les pressions de touches, les clics de souris et la plupart des parties d'une interface de bureau. Si vous recherchez une alternative au programme Windows AutoHotkey, AutoKey est la meilleure option disponible aujourd'hui pour les utilisateurs de Linux.

Notez qu'il s'agit d'une application X11 uniquement, le support Wayland n'a pas été ajouté à l'application au moment de la rédaction de cet article.

Certaines des fonctionnalités de la clé automatique sont :

Ce guide vous montrera quelques exemples AutoKey utiles pour les joueurs Linux. Pour commencer, installons les packages Autokey Ubuntu à partir de sa page GitHub. Téléchargez les fichiers mentionnés ci-dessous à partir d'ici

Après avoir téléchargé les fichiers, exécutez les commandes suivantes dans l'ordre :

$ sudo apt installer ./autokey-common_0.95.8-0_tous.deb
$ sudo apt installer ./autokey-gtk_0.95.8-0_tous.deb

Exemple 1 : Réglage Clé pour la sauvegarde automatique du jeu

Il est courant de voir de nombreux jeux PC utilisant clé pour une sauvegarde rapide et pour un chargement rapide. Cependant, de nombreux autres jeux PC, en particulier les ports de console, ont un moyen fastidieux de sauvegarder le jeu où vous devez naviguer à travers plusieurs options de menu. Voici une maquette rapide que j'ai dessinée qui illustre cela (excusez mes compétences en dessin):

Le jeu veut que vous frappiez pour mettre le jeu en pause, puis touche fléchée, puis pour sauvegarder la partie, suivi de touche à nouveau pour revenir au jeu. L'ensemble de ce processus peut être facilement automatisé et mappé à clé en utilisant AutoKey. Découvrez le code du script ci-dessous :

heure d'importation
clavier.envoyer_clé('')
temps.dormir(0.25)
clavier.envoyer_clé('')
temps.dormir(0.25)
clavier.envoyer_clé('')
temps.dormir(0.25)
clavier.envoyer_clé('')

Pour ajouter ce script à AutoKey, lancez l'application, puis cliquez sur un dossier visible ou cliquez sur un dossier personnalisé que vous avez créé pour le mettre en surbrillance. Cliquer sur Fichier > Nouveau > Script option de menu pour créer un nouveau script dans ce dossier, comme indiqué dans la capture d'écran ci-dessous :

Renommez ce script en "Quicksave" et mettez le code ci-dessus à l'intérieur. Cliquez ensuite sur le bouton « Raccourci » en bas, comme indiqué dans la capture d'écran ci-dessous :

Sur l'écran suivant, cliquez sur le bouton « Appuyer pour définir », puis appuyez sur touche pour le mapper au script.

« Clé : (Aucun) » deviendra « Clé : ".

Cliquez sur « OK » et appuyez sur pour enregistrer le script. N'oubliez pas de toujours enregistrer le script sinon rien ne sera exécuté lorsque vous appuyez sur la touche de raccourci mappée.

Le mappage de touches Quicksave est maintenant prêt à être utilisé. La prochaine fois que vous appuyez sur touche, une série de touches sera exécutée dans l'ordre.

Notez que nous avons modifié la fonctionnalité de clé globalement dans tout le système d'exploitation, tant que AutoKey est en cours d'exécution et ancré dans la barre d'état système. Pour le restreindre à une fenêtre ou une application particulière, vous devrez spécifier des règles de fenêtre en cliquant sur le bouton "Filtre de fenêtre" en bas.

Vous pouvez également utiliser le même script ci-dessus pour créer un script pour un chargement rapide. Il suffit de supprimer la ligne pour touche fléchée, puis mappez le script sur clé.

Si vous recherchez des noms de clé corrects à utiliser dans les scripts AutoKey Python 3, une liste de tous les codes de clé spéciaux utilisables dans AutoKey peut être trouvée ici. Toute clé non mentionnée dans la page ci-dessus peut être insérée à l'aide de guillemets simples ou doubles. Exemple : clavier.send_key('5'), clavier.send_key('p') et ainsi de suite.

Exemple 2 : Boire deux potions de santé d'affilée dans un jeu de rôle

En supposant que le raccourci clavier pour boire une potion de santé dans votre jeu est , le script serait :

clavier.send_key('h', répéter=2)

La valeur de la variable de répétition peut également être changée en n'importe quel autre nombre. Vous pouvez suivre les étapes du premier exemple pour mapper le script sur le raccourci clavier souhaité.

Exemple 3 : Mode rafale pour le pistolet dans un jeu de tir

 

En utilisant le code ci-dessous, vous pouvez mapper touche pour tirer avec une arme trois fois de suite. La façon originale de tirer dans le jeu est d'appuyer une fois sur le clic gauche de la souris.

# boutons de la souris : gauche=1, milieu=2, droite=3
Souris.click_relative_self (0, 0, 1)
Souris.click_relative_self (0, 0, 1)
Souris.click_relative_self (0, 0, 1)

Le script ci-dessus exécutera le clic gauche de la souris trois fois de suite. Des instructions supplémentaires peuvent être ajoutées si vous souhaitez exécuter un clic gauche plus de trois fois.

Vous pouvez suivre les étapes du premier exemple pour mapper le script sur raccourci clavier.

Exemple 4 : Créer un menu de jeu personnalisé / Transformer un jeu en temps réel en un jeu au tour par tour

En utilisant la fonctionnalité de menu de liste d'AutoKey, nous afficherons un menu en superposition au-dessus d'un jeu en cours. Ce menu volera le focus du jeu et le renverra après qu'un clic de souris soit exécuté sur l'un des éléments du menu. Une fois le focus revenu, une frappe automatisée sera exécutée qui invoque une fonction à l'intérieur du jeu.

Regardez cette image :

Dans le dossier "GameMenu", j'ai créé un sous-dossier appelé "Show". Les dossiers "GameMenu" et "Show" ont tous deux des éléments enfants. Voici le code que j'ai mis à l'intérieur de chaque élément enfant :

  • Inventaire : clavier.envoyer_clé('je')
  • Carte : clavier.send_key('m')
  • Retour au jeu : clavier.envoyer_clé('')
  • Passer au fusil d'assaut : clavier.envoyer_clé('2')
  • Basculer vers SMG : clavier.envoyer_clé('1')

Ici, le dossier "GameMenu" est mappé sur key et voici à quoi cela ressemble dans le jeu en cours d'exécution :

Chaque élément de menu a un numéro préfixé avant son étiquette. Vous pouvez appeler n'importe quel élément de menu en appuyant sur la touche numérique correspondante de votre clavier. Par exemple, en appuyant sur <2> touche ici passera le pistolet au fusil d'assaut.

Une petite démo GIF de cet exemple (cliquez sur l'image ou faites un clic droit et ouvrez le GIF dans un nouvel onglet si l'animation s'arrête ci-dessous) :

Cette méthode peut ne pas fonctionner avec tous les jeux, selon la façon dont ils gèrent le rendu fenêtré et plein écran. Certains jeux ne s'arrêtent pas lorsque la mise au point est volée alors que d'autres le font. Si le jeu s'interrompt lorsque la mise au point est perdue, vous avez essentiellement converti un jeu en temps réel en un jeu au tour par tour à l'aide de ce script AutoKey.

Cet exemple fonctionnera avec les jeux au cas par cas. Cependant, lors de mes tests, j'ai obtenu d'assez bons résultats avec les jeux natifs et Steam Proton / Wine.

Conclusion

Tous les exemples mentionnés ici sont basiques, principalement destinés aux joueurs Linux. Ils ne couvrent qu'une partie de la puissante API d'AutoKey. AutoKey peut automatiser une grande partie de votre flux de travail en utilisant ses fonctionnalités de script pour les logiciels quotidiens ou complexes. Quelques exemples supplémentaires sont disponibles dans la documentation officielle de l'application.

Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...