Bot utilisant l'interface graphique?

Discussion dans 'Bar' créé par Wallpass, 19 Juillet 2018.

  1. Wallpass

    Wallpass Membre

    Inscrit:
    19 Juillet 2018
    Messages:
    3
    J'aime reçus:
    0
    Salut à tous,

    Toutes mes excuses si ce genre de sujet existe déjà, j'ai cherché un peu mais je suis pas la fille la plus patiente de l'univers malheureusement... Et j'aime poser des questions.

    Je me suis lancée comme défis de développer un bot pour dof, en python, qui utiliserait l'interface du jeu au lieu de ses protocoles de communication (soit dit en passant, je débute dans le merveilleux monde de la programmation, et en autodidacte, encore une fois mes excuses si mon vocabulaire est bizarre).

    Je voudrait créer une petite bébête capable de faire a peu près tout et qui aurait un comportement suffisamment random pour avoir une discretion vraiment débile. Je pensais entre autre utiliser du machine learning pour permettre à mon bot de voir et de comprendre les informations du jeu, ainsi que pour les combats.

    Je cherche à apprendre à programmer en me donnant ce projet comme objectif à moyen terme. Je crée ce topic pour vous demander si c'est un projet qui vous semble réalisable, et je dois également avouer que je me retrouve présentement dans une petite impasse dans mon apprentissage et que j'aurais besoin d'une petit peu de mentorat. (Quiconque voudra bien m'accompagner un peu dans mon apprentissage pourra bénéficier de la discrete compagnie d'une demoiselle très bizarre... dans le bon sens du terme... je crois... AHEM).

    Enfin je dois dire que c'est plus une ouverture à la discussion et une divulgation d'intentions qu'un "kelkun peu m'édé je veu programais svp", je ne désire pas accaparer le temps et l'énergie de quiconque et je réalise que mon projet ne se réalisera pas en une nuit.

    Bref, c'était un bonjour/bonsoir, pleased to meet y'all
     
  2. astro05

    astro05 Membre

    Inscrit:
    3 Janvier 2017
    Messages:
    32
    J'aime reçus:
    14
    D'après ce que je comprend, tu veux faire un bot pixel.
    Pourquoi as-tu choisis de le faire en python ? Le langage AutoIt est souvent utilisé pour développé ce type de bot.

    Le développement de ce type de bot ne me paraît pas optimal pour faire du machine learning.
    Si tu veux faire ce genre de chose, ça me paraît mieux de passer par du full socket ou du MITM.

    En revanche, si l'objectif est d'apprendre a programmer, un bot pixel me paraît plus accessible.

    Qu'est ce qui te bloque dans ton apprentissage ?
     
    Dernière édition: 19 Juillet 2018
  3. Wallpass

    Wallpass Membre

    Inscrit:
    19 Juillet 2018
    Messages:
    3
    J'aime reçus:
    0
    Salut ^_^

    J'ai choisi python entre autre parce que c'est un langage qui peut être utilisé dans beaucoup de domaines, et parce que j'ai lu, entendu et pour l'instant constaté qu'il est facile à apprendre. Je rêve un jour de travailler dans le développement de jeu, mais mon avenir est relativement nébuleux, il se peut que je fasse une carrière plutôt tournée vers la science et dans les deux cas ce langage peut m'être très utile. AutoIt en revanche, si j'ai bien compris, ne pourra me servir qu'à faire des bots.

    Ensuite je cherche à intégrer du machine learning parce que dans mes deux possibilités de carrière, je veux explorer ce domaine. Lorsque j'ai fait un brainstorm sur le bot que je veux faire, il y avait entre autre beaucoup de fonctionnalités qui impliquait une capacité à "lire" ou reconnaître plusieurs choses (résoudre des captcha, lire des coordonnées, rassembler des données automatiquement dans le bestiaire, lire des messages de tchat et j'en passe). J'ai aussi pu constater les limites de la reconnaissance de pixels avec les changements de résolution, les mises à jours graphiques les changements de skins. Je me suis aussi dit que j'aimerai faire en sorte que certaines parties de ce bot puissent être utilisées dans d'autres jeux, et si l'IA de combat du bot en question se base sur du machine learning il sera je crois plus facile de l'utiliser dans d'autres jeux.

    En ce moment je suis bloquée dans mon apprentissage car je ne comprend pas certains aspects du cours sur python que je suit sur openclassroom. J'aurais des questions à poser, besoin de discuter à propos de mon projet... mais disons qu'ils sont plutôt fermés d'esprit concernant les bots et compagnie.

    M'enfin c'est pas comme si je pouvais leur en vouloir lol.

    J'aurais fait une réponse un peu plus longue (quoi qu'elle est déjà bien développée XD) mais je suis malheureusement attendue...

    Au plaisir ^^
     
  4. yollow

    yollow Membre

    Inscrit:
    3 Juillet 2018
    Messages:
    2
    J'aime reçus:
    0
    Bienvenue à toi.

    Tout ça est possible, avec de la patience et de la volonté. Il ne me semble pas que Python soit le langage le plus adapté ni le plus complet pour pouvoir mener à bien ton projet. Mais pour t'initier à la programmation, c'est sûr que ce langage peut être simple et assez rapide à apprendre, et d'après mon expérience il reste quand même assez utilisé en entreprise, etc... (lorsqu'il s'agit de faire de petits scripts simples, sans forcément être un informaticien pur).

    Pour ce qui est de ton bot, malheureusement, sans vouloir te décourager, tu as beaucoup (trop) d'ambition pour quelqu'un qui semble n'avoir jamais touché à la programmation. Par ailleurs, les possibilités offertes par un bot pixel semblent bien trop limitées pour répondre à toutes tes attentes (comme tu sembles l'avoir compris).

    Un bot aussi complet représente un travail monstre, que tu ne pourras jamais atteindre aussi simplement, quelle que soit ta volonté.

    Je te conseille de commencer par les bases, bien comprendre la programmation, ses enjeux, son fonctionnement, et toutes ses possibilités. Tu as encore beaucoup de chemin à faire, mais tu as au moins la volonté, c'est bien. Pour débuter un bot Dofus, tu pourrais te renseigner sur la manière dont sont échangées les données entre client et serveur, comment mettre en place une connexion socket dans ton programme (qui permet l'échange de ces données), et bien sûr, quand tu auras bien avancé ton cours (sur OpenClassrooms apparemment), te pencher sur la Programmation Orientée Objet (POO, qui te sera (presque) indispensable, et qui est la base de tout gros projet).


    Bon courage, si tu as des interrogations, n'hésite pas. Mais n'oublie pas, pour ne pas te dégoûter et te décourager, trouve un point de départ, et avance doucement mais sûrement, à ton allure. Prend le temps de découvrir et d'apprécier, de tester et d'évoluer, de comprendre et de maîtriser.
     
  5. astro05

    astro05 Membre

    Inscrit:
    3 Janvier 2017
    Messages:
    32
    J'aime reçus:
    14
    Effectivement, AutoIt est beaucoup plus adapté pour faire des bots pixel que python, par contre pour beaucoup d'autres aspects python est plus adapté.

    Python est également très adapté pour apprendre l'IA, tu as pas mal de libs qui te permettent de t'exercer la dessus.
    Je pense notamment à OpenAI (plusieurs jeux ATARI), pysc2 (Pour faire une IA de starcraft 2).

    Tu as également tensorflow pour travailler sur des réseau neurones.

    Dans le cadre d'un bot socket pour dofus tu n'auras par exemple pas besoins de faire d'OCR pour récupérer les coordonnées de la map (tu auras juste a lire les données dans un paquet reçus du serveur).
    Ça va du coup alléger le code. Et tu n'auras pas de source d'erreurs liés à l'OCR.

    Je t'en parle, mais je ne pense que se soit adapté pour dofus (ça fonctionne pour des petits jeux ATARI), mais tu as des algo qui peuvent prendre en entrée tout les pixels de l'écran du jeu, et arrivé a prendre décision optimal en se basant sur un apprentissage qui utilise des couches à convolution.
    L'algo dont je te parle est expliqué dans cet article : https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf

    Si tu as des questions sur du python, je peux t'aider si tu m'indique ou tu bloque. ;)
     
  6. MrPot

    MrPot Membre

    Inscrit:
    10 Mai 2017
    Messages:
    5
    J'aime reçus:
    0
    Entre nous , faire un bot socket c'est vraiment plus facile que faire du machine learning sur des images ^^
     
  7. Wallpass

    Wallpass Membre

    Inscrit:
    19 Juillet 2018
    Messages:
    3
    J'aime reçus:
    0
    Hello,

    Sans savoir quel niveau je pourrais me donner en programmation, je peux dire que j'y ai quand même assez bien toucher. Par exemple l'un des premiers objectifs que je m'étais donné pour apprendre le python était un bot pour un jeu de navigateur (monstrueusement plus simple à mettre en oeuvre qu'un bot pour dofus)...

    J'ai essayer de trouver les règlements du forum et j'ai abandonner encore (lol) donc je ne sais pas si je peux vous donner le lien du jeu en question... c'est un jeu 18+ donc je ne prendrais pas le risque mais si ça ne dérange pas ou si on ne donne que le nom je pourrais aussi vous montrer le code que j'ai fait pour l'instant.

    Mais en gros mon bot est capable de faire du template matching en utilisant openCV (cette partie du code a été réalisée en suivant bêtement un tuto sur youtube, je pense que je suis très loin de comprendre assez openCV pour ma propre satisfaction, et qu'à cela ne tienne ce n'est quand même pas du machine learning, sooo.. I want more XD), les fonctions d'enregistrement de templates et de binding box sont incluses dans une classe et toutes les images ainsi que les coordonnées des box où elles doivent être recherchées sont enregistrées grâce au module pickle. J'utilise pyAutoGui dans des méthodes de classe pour cliquer au centre de la template recherchée lorsqu'elle est trouvée et mon bot est capable de faire a peu près tout dans le jeu, sauf peut-être vendre l'équipement superflux... Mais il récolte dès qu'une récolte est disponible, il se bat en PvP dès qu'il en a la capacité, en PvE aussi et achète à la boutique lorsque c'est nécessaire. Il est capable de voir lorsqu'il gagne quelque chose et de récolter ce gain et il recharge la page lorsque ma connexion internet ou l'ordinateur se mettent à faire chier. Il y a encore pamal de bugs mais j'ai réussi à le faire tourner sans accro pendant 3 jours, puis le portable sur lequel il tourne à fait un bluescreen. Problèmes liés à l'utilisation du template matching (d'où mon envie d'utiliser du machine learning) c'est que dès que la résolution ou le ratio d'image change, il ne saura plus où regarder et il ne reconnaitra plus ce qu'il a enregistrer, il faudra donc reprendre toutes les images et les coordonnées pour qu'il fonctionne à nouveau.


    Je crois donc que je peux dire que j'ai déjà passer mon top départ... Enfin... vous programmez tous depuis plus longtemps et mieux que moi j'en mettrait ma main au feu, donc à vous d'en juger lol. Je crois que je comprend la POO, pour python j'en suis au stade de comprendre les threads (ou plutôt comment les mettre en oeuvre), les interfaces graphiques (je commence avec tKinter) et entre autre les décorateurs, mais pour ces derniers je crois qu'il me faut simplement un peu de pratique.

    Ceci dit,

    Ce qui m'inquiétait beaucoup par rapport aux bot socket c'est que dans mes recherches préliminaires ils semblaient voués au bannissement. C'était la base de ma réflexion "ah mais si le programme utilise exactement les mêmes outils que des vrais joueurs et a un comportement random, comment ankama pourrait-il bien détecter le dit bot?" et je me suis sentie vraiment géniale pendant la seconde et demie où je ne me suis pas demander "ok mais pourquoi personne ne le fait?", et puis par impatience je me suis lancée dans python parce que je ne savais plus trop où chercher XD.

    En ce moment j'ai je crois besoin d'avoir un résultat concret pour me motiver dans mon apprentissage, je vais continuer d'apprendre python, et espérer le maitriser (au delà des bots, j'aimerais vraiment étudier dans le domaine de l'intelligence artificielle... je trouve ça vraiment fascinant, je prend juste ce rêve avec un grain de sel sachant que je suis justement peut-être un peu trop rêveuse) mais en parallèle suivre vos conseils et m'orienter vers un bot socket pour commencer plus simple.

    De toute façon il faut bien maitriser plus d'un langage dans ce monde non? hihi ^_^

    J'ai fureter un peu votre forum tutoriel, et jeté mon dévolu sur https://cadernis.fr/index.php?threads/tuto-bot-socket-les-fondamentaux.491/ ... Est-ce un bon choix? Quels tutos me conseilleriez vous en complément ou en remplacement? Un langage privilégié?

    Merci pour tes liens astro05, je les explorerai assurément. Ce que qui me séduisait tout particulièrement avec l'utilisation du ML pour un bot dofus c'est qu'on pourrait finir par faire (je crois) un bot capable de faire des donjons de haut niveau, voir même se mesurer à des joueurs (enfin, je sais pas si ça se fait déjà... disons que lorsque j'étais prise dans ce tourbillon de pensées j'avais les yeux qui pétillaient en pensant aux ordinateurs capables de battre des humains aux échecs ou au go, je me suis dit que ce serait drôlement cool de faire ça mais avec un jeu qui a bercer ma propre adolescence... même si c'est pas la chose la plus légale de l'univers...)
     
  8. MrPot

    MrPot Membre

    Inscrit:
    10 Mai 2017
    Messages:
    5
    J'aime reçus:
    0
    T'as vraiment l'air déterminé ^^ Si jamais tu arrives à faire du ML avec Dofus se serait cool d'avoir quelque petits gifs sur ton avancement se serait cool :) Je ne m'y connais pas du tout en python et encore moi en ML, je ne pourrais pas t'apporter grand chose mais bonne chance quand même pour tes futurs projets ;)
     

En naviguant sur ce site web, vous acceptez les Termes et Conditions d'utilisation. Tout le contenu que vous pourrez trouver sur ce site est soumis à la license Creative Commons.