C# Retours d'expérience

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#1
Hello,

Je serais curieux de connaître quelques retours d'expérience de ceux qui sont parvenu à faire un bot qui fonctionne réellement (je ne parle pas du projet que vous avez en cours, qui fera tout mieux que tous les autres...).
Voilà quelques mois que je suis revenu à la charge sur les Bots D@fus, notamment en découvrant le projet BiM lancé par Bouh2. Ca doit faire environ 2 mois qu'il tourne souvent, parfois 24h/24h sans trop de problèmes. J'ai intégré une bonne partie des améliorations / fix / ajouts nécessaires dans BiM ainsi que l'essentiel des sources sur le Git de MiB (si vous cherchez un peu, vous trouverez bien le lien). Mais par principe vous aurez toujours un minimum de retouches à faire pour avoir un Bot qui fonctionne.

Donc je me lance avec quelques chiffres, en attendant que d'autres parlent un peu des résultats obtenus avec leurs réalisations.

Donc mon bot est relativement complet (récolte, xp, drop, captures...), mais se focalise essentiellement sur l'xp. Mon objectif principal est de faire un bot capable de gérer un groupe de 8 personnages diversifiés (8 classes différentes), avec la meilleure efficacité possible.

Ce qui marche bien :
Utilisation optimale de toute la panoplie des sorts et armes à disposition (sauf bombes et pièges pour l'instant, mais pour les glyphes, c'est vraiment bluffant), en fonction des résistances, de la zone d'effet ect.
Sorts de zone (attaques, glyphes, soins, boost, curses).
Déplacement et positionnement pour un effet optimal des sort.

Ce qui marche pas trop mal :
Optimisation de l'utilisation des PM et PA
Déplacements en fin de tour, après , placement inital en solo.
Mode suiveur (je joue un perso et tous les autres suivent et sont entièrement joués par le bot).
Regroupement / classement des inventaires (chaque perso se spécialise sur certains types d'objets)
Invocations.
Evitement des bestioles agro.
Recherche des combats optimaux.
Régénérations.
Personnalisation facultative de l'IA des personnages.
Capture (Archi et boss par exemple).
Logs.
Démarrage, autoconnection...

Ce qui doit encore être amélioré :
Placement en groupe.
Récoltes.
Recherche de bestioles spécifiques et interdiction d'en combattre certaines autres.
Tolérance aux imprévus... :oops:

Ce qui est en cours :
Prise en compte des spécificités des boss (notamment les boss de Frigost).

Ce qui n'est pas encore commencé :
Parcours longue distance (aller d'un pt A à un point B quelconques sur la carte globale, utilisation des Zaaps).
Crafts automatique (aller chercher les ressources et faire les crafts).
Recap global de toutes les ressources possédées, avec leur localisation.
IA plus adaptable, capable d'apprendre et de s'améliorer automatiquement (identifier ce qui marche, les attaques des mobs...).

Et concrêtement, en xp, ça donne quoi comme résultats ?

Très franchement, la quantité d'xp est correcte mais pas exceptionnelle.
Quand j'ai commencé à xp avec le bot, mon perso principal était niveau 16x. Il est maintenant 199. Je ne le joue presque pas à la main (seulement pour des tests).
Les derniers personnages créés depuis environ 1 mois sont tous au moins niveau 140.
Sur des cycles de 8h environ, les xp moyens sont d'environ 3M xp / h avec le perso 199. On peut faire nettement mieux en jouant à la main. Mais sur la durée, il est clair que je n'aurais jamais pu monter autant en 1 mois (j'ai assez peu de temps pour jouer).
Il vaut mieux redémarrer bot + 8 clients toutes les 8h environ, sinon les perfs se dégradent. Ca marche encore souvent au bout de 16h, mais de façon très ralenti (surtout à cause des memory leaks du client Dofus, qui pèse 250Mo au démarrage, et 500Mo 10h plus tard).
Pour maintenir de bonnes perfs, il faut consacrer environ 30 min / jour à la gestion du bot (déplacer le groupe, regarder les logs, redémarrer l'ensemble...).
Il se débrouille pas mal sur les zones comme Frigost ou Otomai.

Voilou voilou. D'autres retours d'expérience ?

P.S. : inutile de me demander les sources, trouvez par vous-même ce que j'ai déjà mis en partage, et fignolez par vous-même pour le reste.
 
Inscrit
27 Aout 2012
Messages
264
Reactions
0
#2
C'est pas mal du tout en fait :).

IA plus adaptable, capable d'apprendre et de s'améliorer automatiquement (identifier ce qui marche, les attaques des mobs...).
Un gros merde pour ça.

surtout à cause des memory leaks du client D., qui pèse 250Mo au démarrage, et 500Mo 10h plus tard
Chez moi, ça tourne plutôt aux alentours de 1,2Go 12h plus tard. :3

Merci pour le récap', dommage que j'ai jamais réussi à faire tourner BiM, il a jamais voulu trouver les connexion, j'ai tout essayé niveau config.xml.
 

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#3
Pour l'IA plus adaptable, c'est clair que c'est un challenge intéressant. Mais pas si compliqué au final. Faut surtout une structure de bases de données efficace pour stocker les infos. Je n'ai pas encore essayé d'utiliser ce que Bouh2 a mis dans BiM pour stocker les données (disons que ça ne m'inspire pas trop... j'préfère SQL).

Moonlight-Angel a dit:
surtout à cause des memory leaks du client D., qui pèse 250Mo au démarrage, et 500Mo 10h plus tard
Chez moi, ça tourne plutôt aux alentours de 1,2Go 12h plus tard. :3
Vu que j'ai 8Go, il ne risque pas d'arriver à 1,2Go par client ;) C'est un peu toujours pareil : plus une appli dispose de beaucoup de mémoire, plus elle en utilise. En fait maintenant le bot redémarre automatiquement les clients quand ils rament trop. C'est peut-être pour cela qu'ils n'atteignent jamais 600Mo.

Quelques stats pour la route, il s'agit des stats pour mon perso principal depuis les premiers essais du bot. Ca fait en tout l'équivalent de 54 jours pleins d'activité pour les xp correspondant à un niveau 199.

xp: 3 870 839 216
Mobs killed: 40607

Fights win: 6416
Fights lost: 38

Moves (success): 43102
Moves (failed): 970

Spells or weapon (success): 113048
Spells or weapon (failed): 3166

Bot running for: 4750766 seconds
Fighting time: 2474192 seconds
Healing time: 1126161 seconds
 
Inscrit
27 Aout 2012
Messages
264
Reactions
0
#4
Bizarre, chez moi j'ai 4Go et il arrive quand même à 1,2Go. (a)
 

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#5
Pour 1 seul client ? J'en fais tourner 8 en même temps...

Et faut aussi régler les options pour qualité d'affichage minimale en désactivant aussi les sons.
 
Inscrit
27 Aout 2012
Messages
264
Reactions
0
#6
J'ai bien fait tout ça.
C'est pas grave en soit, vu le nombre de fois où il m'arrive de bot... :3
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#7
Très impressionant, je dois avouer que j'ai mis BiM de coté ces derniers temps je suis vraiment concentré sur mon émulateur Stump ...
J'aurais bien aimé fini le déplacement entre les maps pour aller d'un point A à un point B mais j'étais vraiment bloqué pourtant il ne reste plus grand chose, j'ai toutes les données nécessaires, je connais les voisins de chaque map etc ..

Je suis bluffé par l'intelligence que tu as donné au bot même si je ne peux que me l'imaginer ^^

@Moonlight : rééssaye, l'ip du serveur avait changé et fallait le savoir sinon BiM ne pouvait pas se connecter
 

FastFrench

Membre Actif
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#8
C'est vrai que des déplacements fonctionnels pour aller de n'importe quelle map à n'importe quelle autre (voir - soyons fous - en utilisant les Zaap connus) serait pas mal et permettrait d'envisager un bot encore plus autonome (par exemple, capable de se resu tout seul et revenir en cas de mort sans énergie). Mais là je suis trop focalisé sur l'IA des combats pour m'en charger. Surtout que j'ai assez peu de temps à consacrer au bot.

Merci en tous cas pour ton commentaire. Même si parfois je le trouve tout de même très con mon bot... mais bon, je le soigne. Il manque encore pas mal de stratégie globale : à chaque instant, il trouve assez bien le sort instané optimal. Mais il n'a pas de plan sur plusieurs actions successives (excepté quelques rares combos et placement pour gérer le placement optimal avant de lancer un sort). Et surtout, il n'apprend pas de ses erreurs...

Le déplacement entre maps devient même plus intéressant en 2.11, maintenant que l'on a dans les données la liste des monstres rencontrés dans chaque zone. On pourrait imaginer qu'il gère (en bonne partie) tout seul une petite quête comme... le Dofus ocre. Ou encore automatiser la tournée des Dopeuls.
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#9
Il y a encore pas mal de bugs sur la reconnaissance des voisins j'ai l'impression surtout au niveau d'astrub
 
Inscrit
27 Aout 2012
Messages
264
Reactions
0
#10
[HS] 'Faudra que tu me dise où tu as trouvé l'enum de tous les effets. Personne n'aurait fait ça à la main avec des commentaires à chaque fois (sauf un petit chinois, mais c'est hors-concours). [/HS]
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#11
C'est simplement généré avec les objets Effect tirés des d2o ;)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#13
perso j'arrive meme pas a demarrer le "host" , ca me donne ca a cette ligne :
UIManager.Instance.BusyMessage = "Starting redis server ...";
logger.Info("Starting redis server ...");
RedisServerHost.Instance.ExecutablePath = RedisServerExe;
RedisServerHost.Instance.StartOrFindProcess();

Impossible de charger le fichier ou l'assembly 'ServiceStack.Redis, Version=3.9.29.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect.
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#14
Il faut que tu lance en x86 (32 bits)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#15
ah oui en effet la ca marche , merci

Edit : enfin ca demarre mais ca deco tout les 2 minutes , y'a une version qui fonctionne a peu pres ailleur que sur le git ?
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#16
Ya aucune nouvelle version, j'en ai dja parlé à bouh2.
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#17
Oui a cause de leur nouvelle sécu. ça sera fixed.
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#18
C'est a cause du BasicLatencyMessage. Le serveur te demande ton ping.
On recoi un RawData jute apres. Ca peut vnir que de la celon moi.
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#19
je pense pas que ca vient de BasicLatencyMessage car de toute facon le client officiel envoi les bonnes infos au bon moment et le bot fait passer le message.
Sinon (avec mes expériences folles) comme j'avais du mal a tout suivre avec les Imachins (ca vient de chez apple ?) j'ai mis BiM.protocol dans (me jetait pas de pierres) LeafBot (car ca par contre je maitrise et aussi parceque j'avais la flemme de traduire tout encore une millieme fois) et j'ai decouvert que en fait il plante a l'id 6372 (ca doit etre un nouveau message) , peu etre que BiM.Host aime pas ca ?
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#20
ToOnS, tu est sur la bonne vois, en fait se packet il est envoyer après le packet RawDataMessage, le packet 6372 est cacher dans le packet RawDataMessage c'est une nouvel protection d'ankamas, enfin j'appel pas ça une protection^^.

Dans ton cas ton client se déconnecte car il ne trouve pas se t'est source!
Remerciement : o_O [Project] Dofus 2 ;p.
 
Haut Bas