(20-08-2019, 05:12 PM)Xenos a écrit : Le problème de simuler chaque unité, c'est la masse que tu peux finir par avoir (10k unités attaquant 10k unités, ça peut vite faire lourd: on parle de 100M de combinaisons là!). Groupées par type, ça sera déjà mieux. Cela s'appelle une modélisation, et c'est ce qui permet d'éviter de simuler une galaxie pour rien : )
En effet, rajouter une statistiques, ça peut être bien. Perso, je ne la lierai pas direct à la taille: je créerai une stat dédiée "attaque_ratio" (le nom est moisi, faut le retravailler) qui sert de "taille" dans l'exemple de Theta, mais qui n'est pas forcément directement la taille "physique" de l'unité. C'est juste une grandeur que je fixerai arbitrairement, et que je pourrai alors ajuster librement par la suite (sinon, l'ajustement sera impossible: la taille physique sera liée à ce paramètre de "taille attaquable", et l'un ne se change pas sans l'autre; pour peu que la taille physique soit liée à autre chose ailleurs, tu arriveras à ECLERD v0: le moindre petit changement de stat quelque part chamboule tout sans contrôle!)
Dans tous les cas, je pense qu'il faut surtout que tu sois capable "d'isoler" ta composante de dégat, de sorte que si tu veux totalement changer la façon dont les fourmis prennent du dégat, alors tu n'auras pas à toucher autre chose que cette section dédiée aux dégats. Ca peut se "tester" (se vérifier) en prenant un modèle bidon et complètement à côté de ce que tu veux (volontairement, par exemple: les dégats détruisent toutes les fourmis s'ils sont pair, aucune s'ils sont impairs); puis tu changes ce modèle pour celui qui t'intéresse. Si tu as dû toucher autre chose que le code de dégat pour faire ce changement, alors tu as un soucis "d'isolation/séggrégation".
(c'est une approche contestable, mais ça peut t'aider à rester modulaire pour éviter de trop galérer quand tu voudras changer ce modèle dont tu n'es pas sûr à 100%)
Xenos, pour ce qui est de la séparation / factorisation du code ça je gère.
J'ai des classes bien distinctes pour la gestion des combats etc...
D’ailleurs j'implémente mon système de combat de façon 'basique' pour le moment, je ne prends pas encore en compte les 'évolutions' qui boost l'attaque/défense etc... mais je sais ou le mettre au moment voulu
Pour ce qui est de la modélisation dont tu parles pour les 1 unité en attaque 1 autre, si vous avez déjà dû implémenté ça je serai ravi de voir comment vous l'avez fait. (ou si vous avez le bon lien )
Une autre question, qui pourrait faire l'objet d'un autre post, je m'interrogeais sur la meilleur façon de 'stocker' les rapports de combat.
Moi pour le moment, je suis parti pour stocker en BDD les attaques, les combats et les rounds des combats.
1 attaque = 1 ou plusieurs combats (en fonction du type d'attaque)
1 combat = 1 ou plusieurs rounds
Actuellement le tout est stocké en BDD. Mais je me demandais si vous faisiez ce genre de chose ou si vous avez d'autres alternatives ?
J'ai même conçu mon schéma de BDD pour pouvoir facilement ajouter des types d'unités au fil du temps sans avoir à toucher au code.
En faite j'ai plein de questions à vous posez mais j'ose pas vous flooder (et ça ferait pas mal de post intéressant je pense)