NoChain : une application pour maximiser votre DPS


Beber

 

Posted

Introduction

NoChain est une petite application qui vous permet de maximiser le DPS de tous vos personnages, en vous donnant la chaîne de pouvoir produisant le meilleur DPS en fonction de tous vos pouvoirs.

Cette application est le fruit d'années (10h) de travail de toute notre équipe de développement (moi). Son fonctionnement est très simple, il suffit de lui donner les bons paramètres, à savoir :

  • Le nombre de pouvoirs que vous souhaitez/pouvez utiliser.
  • Tous les pouvoirs que vous souhaitez/pouvez utiliser. Aucune restriction, il suffit de donner, pour chaque pouvoir, son nom, ses dégâts, ses temps de recharge et d'activation, ainsi que son coût en endurance. Vous pouvez retrouver toutes ces valeurs dans votre build sur le Mids, ou même en jeu. Dans l'idéal, mettez les valeurs de votre perso slottés, et pas celles de base.
  • Le nombre de pouvoirs dans le cycle d'attaques que vous souhaitez utiliser

Pourquoi ce dernier point ? Parce que sinon, l'algorithme ne trouvera jamais de chaîne optimale. C'est embêtant, je le conçois, mais vous pouvez changer cette valeur à tout moment pour voir si une chaîne plus longue/courte est plus efficace.

Comme je sens que je vous ai perdu, voici un exemple en image.

Tutoriel

Tout d'abord, l'application (même en écrivant 2 phrases j'ai fait des fautes, pour vous dire le sérieux de mon équipe de QA !) :



Aujourd'hui, je veux maximiser mon DPS cible unique sur ma chère et tendre brute FS/Bouclier. J'ai pas beaucoup d'attaques, et surtout, j'ai la grande flemme d'écrire, du coup je vais mettre que 3 pouvoirs en entrée :



Magie, 3 lignes viennent de se créer ! Je vais dans le Mids, je regarde mon build, et je rentre les valeurs dans les cases :



C'est aussi simple que ça. Les valeurs d'endurance sont erronées parce qu'elles ne servent actuellement à rien. Ensuite, je dois choisir la longueur de mon cycle d'attaques. Hum... 5 ?

Ensuite, je clique sur l'énorme bouton "GENERATE" qui va gentiment me trouver la chaîne de 5 attaques qui va maximiser le DPS des 3 pouvoirs que j'ai passé en entrée. Cette étape prend un peu de temps, c'est l'algorithme qui calcule tout ça. Puis j'ai mon résultat :



Voici mon cycle optimal : Haymaker > Punch > Knockout Blow > Haymaker > Punch. Le tout avec un DPS de 209 et des brouettes. La colonne "Latency" indique que dans ce cycle, il faudra attendre 0.883 secondes pour lancer Haymaker, puisqu'il n'aura pas eu le temps de se recharger complètement le temps de lancer Punch et Knockout Blow.

Soit, j'ai eu mon résultat avec 5 attaques dans la chaîne, essayons avec 4 :



190 de DPS, c'est nettement moins bien qu'auparavant.

Téléchargement

Sur la (déserte) page SourceForge du projet, y'a un gros bouton vert "Download". Vous téléchargerez un zip, dans lequel y'a plein de fichiers étranges. Vous devez extraire tout ça (vraiment), et exécuter nochain.exe. En théorie ça marche, dans les faits j'en sais rien.

Evolutions à venir

Selon le temps libre que j'ai, y'aura plus ou moins de mises à jour de NoChain. L'idéal, ça serait de récupérer l'algorithme de calcul derrière et de le foutre dans le Mids, mais pour ça, faut voir avec les gens du Mids. Sinon :
  • Ajout d'une version française (implémentée mais non activée actuellement).
  • Affichage de la consommation d'endurance par seconde.
  • Suppression de la case de saisie du nombre de pouvoirs en entrée, et refonte du tableau de saisie correspondant.
  • Refonte du tableau d'affichage de la chaîne optimale.
  • Ajout d'une barre d'avancement pendant la génération de la chaîne.
  • Ajout de COOLER COULEUR (RIP Nemz).

A plus long terme, je suis ouvert à toutes suggestions. On peut imaginer un truc où on laisse l'utilisateur créer sa chaîne (dans le style du tableur de DD), ou essayer d'optimiser l'algorithme pour qu'il trouve lui même la meilleure longueur de la chaîne d'attaques.

Limites et bugs

J'ai pas encore dit, mais c'est la version 0.1 alpha, autrement dit, c'est pas vraiment testé. Y'a plein de cas critiques et d'effets de bords. Si vous vous amusez à écrire des romans dans les cases, ça risque fort de planter.

L'algorithme d'évaluation est puissant, mais si vous lui mettez 30 pouvoirs en entrée et que vous lui demandez une chaîne de 47 attaques, il risque de prendre un certain temps pour trouver. Donc soyez gentil avec lui, et ne passez en entrée que les pouvoirs utiles et dont vous vous servez.

Dans la même veine, comme je n'ai aucune base de donnée sur les pouvoirs, le logiciel est incapable d'évaluer les éventuels bonus de dégâts et autres. Donc si vous avez amplification et d'autres joyeusetés du genre, le logiciel ne peut pas les intégrer comme affectant le DPS. Pareil pour la bravade des blasts, etc.

L'idéal serait de construire l'algorithme au dessus du Mids, pour pouvoir travailler avec toutes les valeurs brutes et les buffs séparés, mais c'est actuellement pas possible. Je serais le premier heureux à voir un tel outil intégré dans le Mids, et j'espère pouvoir aider dans ce sens avec mon projet, mais actuellement, y'a rien là dessus.

Encore sur l'algorithme de génération de chaîne, il est relativement complexe, et pas forcément optimisé sur différents points. Ça signifie qu'il est possible qu'en deux exécutions identiques, vous ayez deux chaînes "optimales" différents (vous aurez très souvent la même chaîne mais dans un ordre d'attaques différent). C'est pour l'instant un cas possible du logiciel, et la configuration de l'algorithme se fera quand j'aurai mis la main sur une base de donnée de pouvoirs, ce qui se fera... quand ça se fera.

Conclusion

Pour les courageux qui lisent encore et qui n'ont pas ragequité devant les bugs de NoChain, sachez que c'est la première release du projet, donc vous allez être les premiers à voir ça. Donc si vous avez des remarques, des bugs ou quoi que ce soit d'autre, je suis preneur. Actuellement je poste ce message que dans la section française, et quand j'aurai corrigé des bugs et amélioré tout le bouzin, j'irai voir de l'autre côté de l'atlantique.

Voilà, merci à vous, et j'espère que cette sublime application vous sera utile, et excusez des bugs et problèmes, mais comme disait un certain George, le futur sera meilleur demain !


 

Posted

La version 0.11 (alpha) de NoChain est disponible.

Nouveautés

  • Intégration d'une version française
  • Intégration et affichage de la consommation d'endurance
  • Refonte des tables d'affichage et de saisie.

Vous n'avez plus besoin d'indiquer le nombre de pouvoirs que vous souhaitez entrer. Deux boutons ont été rajoutés (+/-) qui vous permettent respectivement d'ajouter et de supprimer un pouvoir (une ligne dans la table). Pour supprimer un pouvoir, il faut tout d'abord sélectionner la ligne à supprimer.

Un système de colorisation a été ajouté, il permet de savoir quels champs sont à remplir. Si y'a du rouge, c'est qu'il faut remplir. Tant que y'a du rouge, le bouton "Générer" ne fonctionnera pas.

Je devrais avoir une base de données permettant de tester intensivement mon algorithme dans les tous prochains jours, ce qui devrait assurer une meilleure cohérence de la chaîne d'attaque produite.


 

Posted

Hello Mr Beber , je n'ai aucune idée du temps que mettra mon pti cerveau a assimilé la bêtes mais je m'en va le test de suite .


 

Posted

La version 0.13 de NoChain est disponible.

Au programme :

  • Correction d'un bug majeur de l'algorithme d'évaluation du DPS.
  • Ajout d'indications sur l'interface pour indiquer que l'algorithme d'évaluation... évalue.
  • Passage au multi-threading.

Avec ce dernier point, des bugs sont à attendre. En théorie j'ai plus ou moins bien fait ça, mais on est jamais à l'abri d'une erreur. Si le programme plante sans raison apparente lorsque vous interagissez avec l'interface, merci de le signaler.

Suite à des retours d'un certain Dark Damor (que je remercie), j'ai corrigé un bug majeur de l'algorithme qui entraînait des variations allant jusqu'à 20% dans des DPS calculés avec les mêmes paramètres.

Cependant, il est toujours possible d'obtenir des DPS différents en lançant le même calcul (i.e. en spammant "Générer" sans rien changer d'autre), mais les variations ne devraient maintenant pas dépasser les 4%. Cette valeur n'est pas parfaite, mais je ne suis pas sûr d'arriver à faire bien mieux. Je continue tout de même à améliorer ça.

Et pour Mr Pata, j'essayerai de passer sur Skype ce week end pour t'aider si tu veux.


 

Posted

Coucou.


J'ai essayé brièvement cette sympathique application, mais je me suis heurté à un problème assez simple: Le bonus de dégât et le bonus de temps de recharge.
Ca ne semble pas compliqué (du moins dans ma petite tête) d'inclure dans ton algorythme de calcul ces deux paramètres variables qui devront être indiqués par l'utilisateur.

Je sais que même sans, cela n'influ pas sur l'ordre d'éxécution des pouvoirs, mais cela fausse les nombres sur le DPS et le temps d'activation/latence.


Sinon bravo à toi. Les applications sont assez rares pour Cox, en voilà une pratique.


L'ordre de la Lame Eternelle

 

Posted

Salut,

(tl;dr à la fin)

Je ne suis pas sûr de comprendre ton problème, mais j'en déduis que pour chaque pouvoir, tu rentres les valeurs que tu trouves en jeu, et non dans le Mids ?

En fait NoChain est vraiment pensé en étape "post-Mids", à savoir que ce dernier, dans les infos de tes pouvoirs, te donnes tes dégâts en incluant tous les bonus internes et externes, de même pour l'endurance et tous les autres attributs. A l'inverse, les chiffres du jeu se limitent à inclure les bonus internes.

Donc en effet, si tu pars des chiffres du jeu, c'est un problème qui se pose. L'idéal est de prendre ton build dans le Mids et de partir de ces chiffres qui seront plus justes pour calculer un DPS. Si tu n'as pas ton build dans le Mids, sache qu'il existe le Titan Sentinel qui te permet, en un seul clic, de récupérer en format "Mids" le build du personnage que tu joues actuellement (je suis toujours impressionné par cette fonctionnalité).

Ensuite, sur la faisabilité de rajouter deux variables (voire trois pour l'endurance), c'est plus complexe que ça. Pour rappel, la formule du calcul des dégâts est la suivante :

Dégâts = (Base * (Bonus interne + Bonus externe)) = Base * Bonus interne + Base * Bonus externe

Avec les paramètres que tu proposes, j'ai les données suivantes : (Base * Bonus interne) (= dégâts du pouvoirs en prenant en compte que le slottage) et (Bonus externe) (le bonus de dégâts affiché dans les Caractéristiques de combat). Si on reprend l'équation du dessus, on voit qu'il me manque la valeur de (Base) pour pouvoir calculer la valeur finale de dégâts.

Il y a plusieurs solutions à ce problème, mais elles s'opposent à l'idée que j'ai de NoChain.

La première solution est de demander cette valeur de base à l'utilisateur. Je ne voulais pas de cette solution, car si ce dernier doit renseigner sa valeur de dégâts slotés, son bonus dégâts, la valeur de base de dégâts du pouvoir, pareil pour la recharge, pareil pour l'endurance... il devrait remplir 11 cases pour un seul pouvoir. Je pense qu'en voyant ça, 80% des gens fermeraient l'application directement.

La seconde solution est d'avoir une base de données avec toutes ces valeurs de bases. J'étais tenté par cette idée au début, et avoir une base de données offre plein de possibilités, mais au final, ça finit par ressembler à une mauvaise copie du Mids. Si j'ai une base de données, rapidement, plutôt que de laisser l'utilisateur rentrer ses pouvoirs, je vais lui en proposer une sélection. Puis plutôt que de lui demander ses bonus internes, je vais lui demander comment il est slotté; en lui proposant des améliorations, etc. Comme j'ai dit, au final, je refais le Mids, et ce n'est pas mon but.

Je me suis donc placé en "plug-in" de Mids, à savoir que NoChain est un outil pour les gens qui passent des heures à optimiser leurs builds sur le Mids, et qui à la fin, veulent avoir un chiffre qui leur dira, concrètement, ce que vaut leur personnage vis-à-vis de tel autre, et ce qu'ils doivent faire avec ce personnage pour être le plus efficace possible. Cette solution est discutable, mais c'est un choix que j'assume totalement.

tl;dr

NoChain est pensé pour utiliser les données (dégâts, recharge, etc.) issues du Mids et non du jeu. Il vaut donc mieux entrer les chiffres de ton build donnés par le Mids que ceux donnés par le jeu. Si tu n'as pas ton build dans le Mids : Titan Sentinel.

Dans tous les cas, merci de tes remarques et de ton intérêt. Je fais avant tout cette application pour la communauté, donc n'hésitez pas à critiquer/suggérer/etc.


 

Posted

Quote:
Originally Posted by Beber View Post
La première solution est de demander cette valeur de base à l'utilisateur. Je ne voulais pas de cette solution, car si ce dernier doit renseigner sa valeur de dégâts slotés, son bonus dégâts, la valeur de base de dégâts du pouvoir, pareil pour la recharge, pareil pour l'endurance... il devrait remplir 11 cases pour un seul pouvoir. Je pense qu'en voyant ça, 80% des gens fermeraient l'application directement.

La seconde solution est d'avoir une base de données avec toutes ces valeurs de bases. J'étais tenté par cette idée au début, et avoir une base de données offre plein de possibilités, mais au final, ça finit par ressembler à une mauvaise copie du Mids. Si j'ai une base de données, rapidement, plutôt que de laisser l'utilisateur rentrer ses pouvoirs, je vais lui en proposer une sélection. Puis plutôt que de lui demander ses bonus internes, je vais lui demander comment il est slotté; en lui proposant des améliorations, etc. Comme j'ai dit, au final, je refais le Mids, et ce n'est pas mon but.
C'est typiquement ce que j'ai fait pour mon tableur.

ça aurait cependant l'avantage de pouvoir comparer en 2 clics le DPS avec et sans Ampli, ou ou s'il vaut mieux des chaines d'attaques différentes avec et sans hâte.

De même, gérer l'utilisation de l'ampli et d'un certain nombre de variables intermédiaires permettrait de voir s'il est plus rentable de prendre le toggle commandement ou l'ampli, puis prendre l'alpha de dégâts ou de recharge. Tout ça fait parti des questions que peuvent se poser les utilisateurs intensifs du Mids.

Au final, ton programme serait vachement bien s'il était intégré directement au Mids.


Dark Damor Chevalier Noir

Le chemin de la r�demption commence en Enfers...
Nindyn vel'uss kyorl nind ratha thalra elghinnn dal lil alust...

 

Posted

Ta conclusion c'est l'état d'esprit dans lequel j'ai conçu NoChain. Je ne voulais rien faire que le Mids fait déjà. Pour moi, le Mids est un outil absolument génial et complet, et je voulais vraiment me mettre à l'étape suivante.

Ça a des conséquences négatives que tu soulèves à juste titre (tester la configuration avec/sans hâte est complexe), mais c'est un choix que j'assume. De plus, ça simplifie l'interface et permet un accès plus simple (user-friendly).

C'est d'ailleurs très bien illustré par ta remarque suivante, si je commençais à gérer tous les pouvoirs susceptibles d'affecter les dégâts / recharge / endurance, l'UI serait illisible, et j'aurais un mauvais clone du Mids. Alors comme ce dernier gère déjà ça, autant laisser l'utilisateur faire sa tambouille là bas, et ne ramener que le nécessaire dans NoChain. Certes, l'interfaçage entre le Mids et NoChain c'est vos doigts, mais pour l'instant j'ai pas mieux.


 

Posted

En fait je pensais à quelque chose de plus simple, comme les valeurs de bonus de dégâts et de rechargements présent dans les caractéristiques de combats. Deux nombres simples qui varient pour chaque personnage.

Je trouve cela bien moins contraignant de remplir deux lignes que je peux trouver en 5 sec sur mes infos détaillés que d'utiliser un logiciel aussi pénible que le mids héro et d'y passer 20 mins.
Ce que ça veut dire, c'est que beaucoup de personne n'utilisent pas le mids et travaillent à l'élaboration de leurs builds dans leurs têtes, ou plus bêtement se contente de placer les modèles d'inventions qui leurs font plaisir.

Je ne sais pas comment fonctionne ta ligne de calcul pour ces deux paramètres, mais typiquement, ça donne : 1 en multiplicateur pour 0% de bonus rech/dgts, 1.5 pour 50%, 2 pour 100%, etc.. et cla reste toujours compatible avec ceux qui travaillent avec mids.

Ce n'est peut être que moi, mais l'absence de ces deux paramètres m'ont 'choqués' (même si le terme est un peu exagéré), je me suis demandé comment le résultat pouvait être viable sans ces deux infos vitales, à aucun moment je n'ai pensé au mids, et je pense que d'autres auront ce problème.


En plus, pour ceux qui ne voudraient pas avoir à s'occuper de ces paramètres, ils pourraient être pré-remplis avec 1 en valeur par défaut qui n'affecterait en rien le fonctionnement actuel de nochain, ainsi, tout le monde y trouve son compte.



EDIT:

Quote:
Dégâts = (Base * (Bonus interne + Bonus externe)) = Base * Bonus interne + Base * Bonus externe

Dégats = Valeur améliorée indiquée dans les infos détaillées * bonus externe (1 par défaut)

Valeur améliorée correspond aussi à la valeur que doit entrer l'utilisateur sur nochain actuellement
Bonus externe égal à 1 par défaut, donc sans impact sur le résultat, à moins que l'utilisateur y indique son bonus perso.

Je n'ai pas la connaissance du fonctionnement du logiciel, mais en se basant sur la simple ligne de calcul que tu donnes, on peut très simplement indiquer une infos perso variable sans que cela nuise au fonctionnement initialement prévu par nochain, et sans que ceux n'uilisant pas le mids soient exclus d'office.
Je n'y vois que des avantages. Après ... Ca reste ton logiciel, tu choisiras d'en faire ce que tu veux, mais pour moi il manque clairement ces deux options.


L'ordre de la Lame Eternelle

 

Posted

Quote:
Originally Posted by Mimina View Post
Dégats = Valeur améliorée indiquée dans les infos détaillées * bonus externe (1 par défaut)
Cette formule est fausse. Si elle était juste, alors oui, j'ajouterais ces deux champs supplémentaires, pour toutes les raisons que tu soulèves. Malheureusement, comme le dit mon message que tu cites, la formule réelle est plus complexe, et la solution que j'ai retenue est celle que je trouve la plus simple et accessible pour l'utilisateur.

Par contre, je n'imaginais pas spécialement que des intéressés dans NoChain n'utiliseraient pas le Mids. Donc je vais quand même voir ce que je peux faire, mais sans garantie.


 

Posted

J'aimerai bien pouvoir t'aider:

Cette formule est-elle celle que tu utilises ?

Quote:
Dégâts = (Base * (Bonus interne + Bonus externe)) = Base * Bonus interne + Base * Bonus externe

Si oui, quelles sont les parties qui doivent actuellement être remplie par l'utilisateur ?
J'y verrai peut être plus clair.


L'ordre de la Lame Eternelle

 

Posted

Je te renvoie à mon précédent post sur le sujet qui répond à cette question, mais je vais aussi re-détailler ici.

Actuellement dans NoChain, je n'utilise aucune formule pour calculer les dégâts, puisque je considère que la valeur entrée par l'utilisateur correspond aux dégâts finaux (le résultat de l'équation que tu cites). Du coup, je n'ai pas à m'embêter avec une équation de calcul, puisque je considère que tous les différents bonus (internes et externes) sont déjà inclus dans la valeur entrée par l'utilisateur.

Mais en réalité, l'utilisateur peut entrer n'importe quelle valeur de dégâts, et NoChain la prendra bêtement, et calculera le DPS avec cette valeur brute.

Comme je l'ai dit dans mon post cité précédemment, toi tu passes en entrée ( Base * Bonus interne ), qui diffère donc de la valeur "réelle" de dégâts puisqu'elle ne prend pas en compte les bonus externes. D'après l'équation, si je veux avoir les dégâts finaux, il me manque deux valeurs : ( Base ) et ( Bonus externe ) pour calculer les dégâts finaux réels. Ça fait donc deux valeurs en plus à passer pour calculer les dégâts.

J'espère que c'est plus clair.


 

Posted

Quote:
Originally Posted by Beber View Post
Je te renvoie à mon précédent post sur le sujet qui répond à cette question, mais je vais aussi re-détailler ici.

Actuellement dans NoChain, je n'utilise aucune formule pour calculer les dégâts, puisque je considère que la valeur entrée par l'utilisateur correspond aux dégâts finaux (le résultat de l'équation que tu cites). Du coup, je n'ai pas à m'embêter avec une équation de calcul, puisque je considère que tous les différents bonus (internes et externes) sont déjà inclus dans la valeur entrée par l'utilisateur.

Mais en réalité, l'utilisateur peut entrer n'importe quelle valeur de dégâts, et NoChain la prendra bêtement, et calculera le DPS avec cette valeur brute.

Comme je l'ai dit dans mon post cité précédemment, toi tu passes en entrée ( Base * Bonus interne ), qui diffère donc de la valeur "réelle" de dégâts puisqu'elle ne prend pas en compte les bonus externes. D'après l'équation, si je veux avoir les dégâts finaux, il me manque deux valeurs : ( Base ) et ( Bonus externe ) pour calculer les dégâts finaux réels. Ça fait donc deux valeurs en plus à passer pour calculer les dégâts.

J'espère que c'est plus clair.
D'accord, j'ai saisis.
C'est donc bien ce que je pensais au départ, c'est aussi simple.

Voilà mon exemple d'utilisation:
Je lance nochain, je vais dans les infos détaillées de mes pouvoirs, et là j'y note le dégâts moyens déjà affectés par mes améliorations.
Ce qu'il manque, c'est donc une simple case qui peut être remplie par l'utilisateur pour refléter le bonus de dégats dû à l'utilisation d'une amplication ou tout simplement les bonus de modèle d'invention.
Un vulgaire multiplicateur en somme, qui par défaut serait de 1 pour 0% de bonus de dégâts autre que celui apporté par les améliorations et de 2 pour un bonus de 100%, etc... Et cela n'implique rien d'autre qu'une simple multiplication case dégâts x multiplicateur, et ce résultat est utilisé pour déterminer le dps, l'ordre d'utilisation etc.. Cela me semble enfantin, je me trompe peut être et aucunement besoin d'une base de données puisque c'est l'utilisateur qui indique le dégats et le bonus.

C'est véritablement basique, mais indispenssable, même chose pour le rechargement.


L'ordre de la Lame Eternelle

 

Posted

Quote:
Originally Posted by Mimina View Post
Je lance nochain, je vais dans les infos détaillées de mes pouvoirs, et là j'y note le dégâts moyens déjà affectés par mes améliorations.
Ce qu'il manque, c'est donc une simple case qui peut être remplie par l'utilisateur pour refléter le bonus de dégats dû à l'utilisation d'une amplication ou tout simplement les bonus de modèle d'invention.
Non, il faut deux cases, et je me cite :

Quote:
Originally Posted by Beber View Post
[...] toi tu passes en entrée ( Base * Bonus interne ) [...] si je veux avoir les dégâts finaux, il me manque deux valeurs : ( Base ) et ( Bonus externe ) pour calculer les dégâts finaux réels.
Si tu me donnes que la valeur ( Bonus externe ), j'ai toujours pas la valeur ( Base ), et je ne peux donc pas calculer la valeur finale de dégâts.

Exemple : ton pouvoir, une fois slotté, fait 150 points de dégâts. C'est la valeur que tu me donnes actuellement. Ton bonus externe de dégâts (bonus de sets, etc.) est de 80%. Avec ces deux seules informations, je n'ai aucun moyen de savoir quels seront tes dégâts finaux. Ce que tu sembles suggérer, c'est de faire ( 150 * ( 1 + 0.8 ) ) = ( 150 * 1.8 ) = 270 points de dégâts, mais c'est faux. Ce n'est pas comme ça qu'on calcule la valeur finale de dégâts.


 

Posted

Je me rends compte que j'ai en effet homis ce détail.
Dans ce cas il manque en effet la valeur de base, qui peut aussi être indiquée par l'utilisateur.

Mais bon, au final, même en indiquant que les valeurs indiquées par le jeu pour un pouvoir, on obtient quand même le bon cycle d'attaque, même si les nombres sont faussés.


L'ordre de la Lame Eternelle

 

Posted

Quote:
Originally Posted by Mimina View Post
Mais bon, au final, même en indiquant que les valeurs indiquées par le jeu pour un pouvoir, on obtient quand même le bon cycle d'attaque, même si les nombres sont faussés.
Si tu prends les valeurs du Mid's, tes valeurs ne sont pas faussées, puisqu'il prend en compte les bonus internes, externes, procs, et autres slots incarnés. Et si le Mids te répugne, tu peux utiliser Titan Sentinel, proposé dans le premier post de Beber et simplement le coller dedans.

Mais je suis d'accord : il manque des cases à cocher "Ampli" ou "Hâte". Ce qui n'est malheureusement pas faisable sans rendre l'interface aussi attractive que le remplissage d'une feuille d'impôts.


Dark Damor Chevalier Noir

Le chemin de la r�demption commence en Enfers...
Nindyn vel'uss kyorl nind ratha thalra elghinnn dal lil alust...

 

Posted

Et d'apres toi (à poil) Beber, tu penses que cet outil est utile pour un controlleur illusion ?


 

Posted

Bon je reprends la discussion ici plutôt que de pourrir l'autre forum.

En fait ta solution présente le même problème, car il y a une erreur dans ton tableur qui masque le problème. Le LatCycle de la première attaque n'est pas inclus dans le CumTime. Exemple :



(Recharge (1/2/3) : 10/7/15, cast constant à 1)

Comme le LatCycle de la première attaque n'est pas inclu dans le CumTime, ton tableur considère que la 4ème attaque de ta chaîne (pouvoir 3) a un LatCycle non nul, alors qu'en toute vraisemblance, il ne devrait pas. Si on inclut le LatCycle de la première attaque dans le CumTime, la tableur part totalement en vrille.

PS : D'ailleurs, on peut déjà faire partir le tableur en vrille sans le modifier. Exemple de valeurs (comment CumTime(2) peut valoir 30 avec ces données ?). Si tu mets ces entrées, tu verras que les valeurs sont incohérentes et changent sans arrêt. Le simple fait de changer la couleur d'une cellule fait varier les valeurs.

Je pense que ce problème n'a pas de solution. Le problème de dépendance circulaire est inhérent à notre méthode de calcul du DPS. Nos méthodes de calculs, bien que différentes sur le papier, sont identiques au final car reviennent à faire les mêmes opérations, seulement dans un ordre différent.

Là comme ça je vois pas de solution miracle. Pourquoi pas utiliser un système dérivé de ce que tu fais, à savoir intégrer volontairement une erreur dans la formule pour nous donner une approximation en cas de dépendance circulaire (comme ce que tu fais involontairement), mais ça semble bien complexe pour un résultat au final faux (et peut être éloigné de la réalité). Sinon, revoir fondamentalement notre méthode de calcul du DPS, et ne plus se baser sur une chaîne qu'on imagine répéter à l'infini, mais dont on calcule le DPS sur une durée fixe. En gros, si on répète une chaîne sur une durée suffisamment longue, les LatCycle deviennent négligeables, car uniquement présents à la première apparition de chaque pouvoir, et donc on peut approximer le DPS en "ignorant" ces LatCycles qui nous posent problèmes (ta solution garantie une absence de dépendance circulaire dans les Latence, mais comme dirait Fermat, j'ai pas assez de place dans la marge pour le démontrer). Mais d'après un rapide calcul mental, il faudrait étendre la chaîne sur des heures pour que NoChain ne donne pas de chaîne erronée. Quand on voit le temps qu'il met pour une chaîne de 15sec, je pense pas que ce soit viable.

Bref, je pensais pas que ces problèmes de chaînes non évaluables seraient si gênant, mais je dois dire que ça met un sévère coup de frein au développement de NoChain. J'abandonne pas pour autant (j'aime le challenge), mais c'est à peu près certain qu'il n'y aura pas d'évolution tant que j'aurais pas résolu ce problème.

PS : Si ce message est pas clair et indigeste, je peux t'expliquer ça en vocal.
PPS : Désolé de poster sur le forum si au final ce message s'adresse principalement à une personne, mais si un lecteur matheux a la solution au problème, qu'il se manifeste !


 

Posted

J'ai l'impression qu'on ne se sert pas de la même version du tableur. En rentrant les mêmes valeurs que toi, je n'obtiens pas les mêmes résultats. Je me souviens d'un problème qui faisait de la choucroute dans mon tableur et que j'ai corrigé, mais je ne sais plus de quoi il s'agit. A priori la version disponible au téléchargement fonctionne correctement.

Tu peux essayer de re-télécharger le fichier ? Et sinon, j'ai rien contre du vocal, en effet. C'est mieux que d'utiliser ce forum comme un chat.


Dark Damor Chevalier Noir

Le chemin de la r�demption commence en Enfers...
Nindyn vel'uss kyorl nind ratha thalra elghinnn dal lil alust...

 

Posted

NoChain est disponible en version 0.15, par ici.

En gros, j'ai fixé mon problème pointé par Dark Damor. Ça n'a pas été simple du tout, j'ai du refaire l'intégralité de mon algorithme de calcul du DPS (c'est à dire une grande partie de NoChain), mais maintenant Nochain est capable d'évaluer les DPS de toutes les chaînes imaginables, donc les résultats produits sont plus précis. Cependant, il est possible que les calculs prennent plus de temps (j'ai pas noté de différence majeure chez moi).

Un grand merci à Dark Damor pour cette version (et pour les retours qu'il fait sur NoChain en général). Même si je sais toujours pas comment marche son tableur (lui non plus d'ailleurs ), avec deux cerveaux on a réussi à trouver la solution magique au problème (qui n'est pas triviale).

Comme l'algorithme a été entièrement revu, et est maintenant énormément plus complexe, il est possible qu'il y ait des bugs. J'ai testé plusieurs millions de chaînes, et tout s'est déroulé sans accrocs, mais on est à l'abri de rien. Si jamais vous en voyez, merci de les signaler.