Je voudrais créer un simulateur (essentiellement à des fins de test) pour un jeu (League of legends).
Les bases du jeu:
vous avez un héros qui a des statistiques:
- Point de santé
- Dégâts d'attaque
- Vitesse d'attaque
- Armure
- Pénétration d'armure
- Vitesse de mouvement
Le héros peut avoir 4 compétences (vous obtenez un point de compétence à chaque niveau) (elles sont activées manuellement, la plupart du temps, ont un temps de recharge, des dégâts, un rapport d'échelle de puissance d'attaque / dégâts d'attaque et un niveau de compétence) + une compétence passive
Vous pouvez tuer des héros ennemis ou des monstres neutres, ils ont les mêmes statistiques:
- Point de santé
- Dégâts d'attaque
- Vitesse d'attaque
- Armure
Ce que j'aimerais faire:
Créez un outil pour tester si un objet particulier ou une augmentation de statistiques particulière accélérerait votre puissance / vitesse de destruction.
carte: http://evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg
Exemples de statistiques:
- Hp: 420
- Annonce: 55
- AttackSpeed: 0,613 (attaques / s -> chaque attaque à 1 / 0,613 s)
- pénétration d'armure: 25
Le personnage va attaquer automatiquement l'ennemi avec la vitesse d'attaque 1 et endommager avec les dégâts d'attaque (il existe une formule pour calculer les dégâts, mais ce n'est pas important dans cette phase, je suppose), une fois qu'ils sont morts, passer à la suivante avec une vitesse de déplacement ( vous pouvez voir les camps sur la carte, les crânes jaunes)
Je pensais à l'algorithme:
Je pensais que si je fais juste un for de i = 0 à i = 30000 (en comptant ms), je peux donc vérifier le hp ennemi et mon hp aussi à chaque ms s'est avéré si mauvais (assez de CPU lourd, et je voudrais pour y mettre un peu de hasard, donc je devrais pouvoir résumer 1k itération, ce qui est impossible)
Deuxièmement, je pensais que je devrais juste faire un pour de i = 1 à 30, et vérifier chaque seconde, et vérifier ce qui s'est passé dans la dernière seconde, mais certains des monstres neutres sont dans un grand camp (jusqu'à 4 monstres), et de cette façon, le code devenait compliqué et compliqué.
Je vais créer des threads pour chaque joueur / monstre, et une fois qu'ils auront fini de chercher quand ils seront morts, et de réduire les HP du joueur.
Ma question, est-ce la bonne voie à suivre?
TLDR: Je voudrais créer un outil pour créer une analyse (itérer 1k et calculer la moyenne) sur un jeu dont l'augmentation des statistiques ferait que le personnage tue des monstres neutres plus rapides.
Je préférerais java, mais atm, je suis bloqué sur l'algorithme.
@Karoly S: Oui, c'est mon mauvais, .com -> .eu
J'y ai travaillé:
Je vérifie le temps restant sur chaque objet (compétence du joueur, attaque automatique, buffs), et je choisis toujours le temps le plus court, et stocke le last_time, et ajoute le temps au temps, au prochain tour, je calcule le temps par (time- dernière fois)
Si l'objet a le temps restant 0, il fera tout ce qu'il doit faire.
Je ne sais pas si c'est efficace ou pas, mais c'est le mieux que je puisse faire.
Réponses:
Alternatives à la simulation image par image:
Vous pouvez obtenir une sorte d'approximation raisonnable pour la simulation par une formule telle que
Vous pouvez également gérer une file d'attente de mouvements, afin de simuler par mouvement, et non par tick:
la source