Introduction
En France, il est difficile d'échapper aux multiples diffusions de spots publicitaires sur le jeu en ligne Clash of clans de la société Supercell. (spot officiel)
A noël dernier, je me suis lancé dans l'aventure pour découvrir ce jeu en ligne. Mal m'en a pris, six mois plus tard, j'y joue encore. Ce jeu est vraiment addictif. Je ne vais pas donner de conseils de jeu dans ce billet. Internet fourmille de tutoriaux, de forums, d'astuces divers et variées qui permettent d'améliorer son style de jeu. Je vais par contre vous narrer une période révolue de mon expérience de jeu qui a duré quelques semaines sur COC.
L'apprentissage du débutant
La prise en main du jeu est très facile. Dans COC, les règles sont encore plus simples que l'excellent jeu Warcraft2 'Tides of Darkness' sorti en 1995. (cinématique). Point d'I.A (intelligence artificielle) ici, on joue principalement contre d'autres joueurs humains. On peut également jouer un peu en mode solo sur quelques cartes pour se faire de l'oseille sur le dos des Gobelins. Mais c'est anecdotique (et pas facile).
Tantôt, on lance un rush de trois minutes pour collecter un maximum de ressources de son adversaire. De l'autre, notre village fortifié est régulièrement visité et souvent pillé.
Une stratégie de développement doit donc être soigneusement élaborée pour optimiser ses ressources et augmenter très rapidement le niveau de son HDV (hotel de ville) pour espérer obtenir de meilleurs et/ou de nouveaux batiments et de meilleurs niveaux pour les troupes d'attaque. On doit également sauvegarder au mieux les ressources collectées précédemment: butin des pillages et home-farming.
Bref, un gameplay des plus classiques où le joueur est souvent ralenti dans ses objectifs car il est régulièrement contrarié par les actions belliqueuses d'adversaires plus ou moins ingénieux pour vous ralentir au maximum. les ressources sont les nerfs de la guerre et du développement de votre village.
Mon objectif était de rattraper le niveau de jeu (level) de mes enfants. qui avaient succombés bien avant moi à ce jeu. J'avais plusieurs mois de retard à l'allumage. Un petit challenge à relever, en somme.
Piller à donf et ne jamais se faire plumer
Au début du jeu on ne dispose que de deux ouvriers. La construction et l'amélioration des batiments deviennent de plus en plus longues et les coûts s'envolent de manière exponentielle. Il n'est pas rare de cumuler beaucoup de ressources et d'attendre très longtemps la disponibilité d'un ouvrier pour une construction. Malheureusement, lors de cette période d'attente, on est victime d'attaques qui peuvent vider vos caisses à trésor (or et elixirs). SUPERCELL a prévu le coup pour vous épargner ces temps forcément angoissants pour la prospérité de votre village. Le joueur peut dégainer l'ultime arme absolue:... sa carte bancaire pour acheter des GEMS (1 cent d'euro par GEM!)et accélerer/finir ses actions de construction dans le jeu. Il peut aussi engager un serviteur servile et dévoué à votre cause: un robot.
Argh! On va me traiter de mauvais joueur ou tricheur. Que nenni. J'ai un challenge à emporter. C'est tout.
Avant 2015, l'ère des BOTS sous COC
Définition: BOT.
L'année dernière, il suffisait de jouer en permanence au jeu COC pour éviter d'être attaqué. Jouer 24h/24 était donc LA solution pour éviter les pillages. Une personne normalement constituée peut très difficilement jouer sur une aussi longue période. Par contre, la tache est tout à fait envisageable pour un robot. C'est sa fonction ultime même. Un vrai terminator en somme. Googlez et vous serez surpris des tentatives de batir des BOTS pour COC.
Le principe est simple. Le robot doit générer des clics sur des objets graphiques (des batiments) dans l'interface du jeu, à intervalle régulier, et ce, sur une très longue période. Suffisamment longtemps pour que le joueur n'intervienne uniquement que quand un ouvrier devient disponible. Le joueur ordonne à l'ouvrier une tache à accomplir sur un batiment, puis s'éclipse à d'autres activités plus domestiques (la vaisselle?). Bref, l'utilité d'un robot n'est pas à démontrer.
Pour éviter ou minimiser qu'un robot/BOT joue à la place de son jeune client (eh joueur), SUPERCELL a donc introduit une période de déconnexion obligatoire d'une vingtaine de minutes toutes les six heures, pour prévenir une possible addiction au jeu et surtout (IMHO) dérégler d'éventuels BOT. Tentatives vaines selon moi.
Une solution simplissime
Ingrédients:
- une tablette/smartphone Android 'rooté' qui sera allumé 24h/24 sur COC.
- une alimentation secteur pour votre appareil qui devra fonctionner une dizaine d'heures avant de planter ou vider la batterie de l'appareil.
- application RepetiTouch Free à télécharger sur Google Play.
Recette:
- enregistrer une macro avec des clics sur quelques batiments (ne pas oublier un clic dans la zone où apparait le message de déconnexion périodiques des 6 heures)
- lancer la macro dans une boucle infinie.
Et voilà! Simple, efficace.
Pas de rush à craindre tant que le système android de la tablette est stable et qu'il n'y a pas de coupure réseau wifi, ni de fermeture par SUPERCELL de la plateforme COC pour maintenance.
Une solution un peu plus complexe. Quoique
Sur une tablette/phablette/smartphone, COC sollicite la carte graphique de manière intensive. Sur de longues périodes d'une dizaine d'heures, la batterie de ma tablette android Nexus7 2012 tend à se vider complètement, le BOT maintenant artificiellement l'écran activé. L'autonomie est donc très réduite malgré la connexion permanente du chargeur.
Parfois, l'application RepetiTouch plante aussi. Loi de Murphy ou darwinienne, l'issue est inévitable. Fatalement, le village va être sauvagement attaqué en votre absence.
Donc, il a fallu trouver une alternative plus fiable pour pourvoir maintenir un BOT sur une plus longue période.
Actiona3 ou les tests d'interface GUI au secours de COC
Anciennement 'Actionaz', Actiona est un logiciel intéressant à plus d'un titre.
Je reprend l'index du site Actiona.
Actiona est un logiciel d'automatisation de tâches. Il vous permet de simuler des clics, des pressions de touches, lire le contenu d'un fichier, jouer un son, télécharger un fichier ou une page Web, etc. Le logiciel possède en tout 40 actions différentes et fonctionne aussi bien sur Windows que sur GNU/Linux. Il vous permet même de développer vos propres comportements en utilisant du Javascript. C'est un logiciel libre.
Il est disponible sur les systèmes Windows et Linux. Et là, çà tombe bien. C'est compatible avec mon ordinateur personnel qui tourne sur une distribution linux DEBIAN.
Un autre avantage du logiciel et pas des moindre, on retrouve le langage Javascript si on veut pallier à certains manques du logiciel. C'est le cas ici où j'ai dû composer avec du code Javascript pour la gestion du temps chronomètrage d'actions.
Ingrédients:
- un PC sous Linux. Windows devrait également faire l'affaire.
- l'émulateur Android Genymotion
- le logiciel Actiona
Recette:
- Installer et paramétrer une 'machine virtuelle Android avec Genymotion. S'inspirer de l'excellent billet de La bande des frappadingues http://www.bandofnuts.fr/linux/virtual-android. Merci à eux.
- Récupérer mon fichier script clash-of-clans-bot-02.ascr
- Sous Actiona charger le fichier script et l'adapter.
- Démarrer le script
Conseils:
- Maximiser la taille de la fenêtre du système Android virtualisé 'Genymotion'.
- Déplacer la carte COC selon un repère que vous choisirez (bordure d'une icone ou du décor). actiona s'appuie sur les coordonnées relatives de la souris X,Y dans la fenêtre de l'émulateur Android. La position X,Y d'un objet doit être précise sinon le script cliquera 'dans le vide' ou sur un mauvais élément graphique.
- Corollaire: il faut redéfinir, dans le script, les positions X,Y des extracteurs de ressources (or et elixirs) à chaque modification de la carte (map). Sic. Le robot automatise/sérialise les clics dans le système fenêtrée de l'interface. Il ne se préoccupe pas réellement de l'applicatif survolé. La fenêtre de l'émulateur doit être toujours en avant-plan. Ne comptez pas utiliser votre ordinateur pour faire autre-chose (qui fatalement changera de fenêtre active). Le PC doit être dédié au robot et à COC, à temps plein.
La compréhension du code ne devrait pas présenter de difficultés.
Autres axes de recherche pour COC
-
Dans le monde, des personnes/joueurs ont mis au point de multiples système robotisés encore plus complexes pour COC. Ainsi, un robot peut être à même de chercher une carte à attaquer selon certains critères. Généralement un seuil minimum d'or et/ou d'elixirs. L'astuce consiste à faire une copie de l'écran (screenshot) et d'analyser l'image sauvegardée. Ca existe. Des sources sont disponibles sur la toile.
-
Utiliser le debuggeur ADB d'Android
-
Utiliser un 'analyseur de protocoles'. Quelqu'un me souffle à l'oreille wireshark?. Il s'avère que la société SUPERCELL chiffrerait les échanges de données client/serveur. Par rétro-conception, on pourrait décoder les échanges (format xml) et éviter de faire de l'analyse d'images. Le top. Et pourquoi pas modifier certaines données dans les flux. Par hasard, le nombre de ressources: or et elixirs. Hum. Mode triche activé! Des threads existent dans certains forums. Je vous laisse les chercher.
-
Utiliser un BOT commercial ou communautaire(?) clashBot.org par exemple. Non testé. Méfiance quand même, le fishing existe bien dans le monde des jeux multijoueurs. Des individus/organisations peu scrupuleux cherchent à obtenir vos identifiant/mot-de-passe et votre carte bancaire. Méfiez-vous! Fuyez même! Ne succombez pas à la tentation!
Conclusion
Début 2015, SUPERCELL, la société éditrice du jeu COC, soucieux de préserver l'intérêt de sa poule aux oeufs d'or: 1,55 milliards d'euros de CA en 2014, modifia la façon de jouer à COC.
Ainsi, il est maintenant possible d'être attaqué alors que le joueur/bot est connecté ou en train de jouer. Ce mode live introduit une petite révolution dans les BOTS qui perdent beaucoup d'intérêt.
Malgré çà, avant cette introduction de l'attaque en temps réel par SUPERCELL, j'ai cessé d'employer le BOT. Les tactiques employées par vos adversaires lors d'attaques de votre carte vous font progresser beaucoup plus vite dans la compréhension du jeu, et montrent, au grand jour, les faiblesses de vos défenses. On peut alors modifier subtilement la disposition des batiments pour se prémunir de revoir la même attaque se reproduire. Rien de nouveau dans le cycle: action/réaction des simulations guerrières.
A lire également, pour parfaire votre connaissance:
Bon, je m'égare un peu du sujet.
Jouez bien.