JeuWeb - Crée ton jeu par navigateur
Répartition des morts après un combat - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Répartition des morts après un combat (/showthread.php?tid=8013)

Pages : 1 2 3


RE: Répartition des morts après combat - Ter Rowan - 21-08-2019

après si t'envoies 8000 space marines attaquées une troupe de 7 chimpanzés, le nombre de morts côté space marines devrait avoisiné les 0 (vu que pas de balles perdues / fumble / etc..


Edit: je suis une quiche j'arrive pas a fusionner (mais j'ai réussi à corriger le titre du message à la demande de l'op youhou)


RE: Répartition des morts après combat - Thêta Tau Tau - 21-08-2019

Pour ce genre de problème j'aime bien les "arrondis aléatoire".

Par exemple 0.4 a 60% de chances d'être arrondis à 0 et 40% de chance d'être arrondis à 1.

Ça empêche toute exploitation qu'on pourrait avoir avec un floor/ceiling, puisque ma moyenne de "l'arrondi aléatoire" d'une valeur est cette même valeur.



Cela dit le zéro perte peut être souhaitable, c'est un choix de gameplay.

Dans le système proposé par Chbig dans son premier post, les unités ont une défense qui fonctionne comme un bouclier, donc le "zéro perte" serait courant dans ce système.

Avec des unités individuelles, si il faut plusieurs coups pour tuer une unité, alors plus une armée sera nombreuse, moins de coup sera reçu par chaque unité, donc plus les pertes baissent (si on attaque 100 unités avec 200 unités, on aura plus de pertes que si on attaque 100 unités avec 1000 unités). Dans les cas extrêmes on arrive à 0 pertes. C'est d'ailleurs en grande partie pour ça que dans ogame il vaut mieux attaquer les joueurs beaucoup plus faibles que les joueurs un peu plus faibles.


RE: Répartition des morts après combat - Xenos - 21-08-2019

Citation : - si deg > 0 unités perdues = max (1, floor(308/400))
Attention, car tu as alors l'effet inverse: je veux péter un joueur avec 100 grosses unités imbattables, je lui envoie alors 100 attaques moisies de 1 unité toute fabiel, qui fera juste 1 point de dégat. Comme deg > 0, alors unités perdues = max(1, floor(1 point de dégat/grosse vie de l'ennemi)) = 1. Wink

Faut voir pour l'histoire des 1000vs100 prends moins de morts que 200vs100, car cela impliquerait que la ligne de front est unique. "En pratique", l'armée serait probablement répartie sur plusieurs lignes de front, et on aurait 2 lignes de 100 mecs affrontant 1 ligne de 100 mecs. Là, peut importe qu'on envoie 200 ou 100000 de militaires, la première ligne sera toujours de 100 bonhommes, et mangera les mêmes dégats. C'est un autre modèle (c'est un peu plus proche de ce que Variispace proposera, pour le jeu de fourmis de Chbig, je ne sais pas).

En effet, ogame (ou autres jeux du genre) encouragent via ce système à attaquer des cibles clairement plus faibles... Est-ce que cela sera pour le meilleur de l'expérience utilisateur, je ne sais pas... Perso, je trouverai plus sympa de pousser les joueurs à attaquer des gens de leur niveau (voire d'un niveau supérieur). Je ne sais pas trop comment tu peux encourager ça dans ton cas. Pour Variispace, cela passera par le fait qu'un joueur "plus fort" que toi aura nettement plus de ressources, et si tu as des vaisseaux intelligemment adaptés, cela deviendra très rentable de les attaquer, plutôt que d'attaquer des faibles. De plus, les faibles seront protégés par la petite taille de leur flotte: un joueur faible a peu de vaisseaux et ils sont légers, donc, il peut orbiter autour d'un tout petit objet céleste; or la grosse flotte d'un joueur sera trop lourde pour être capable d'orbiter autour de cet objet céleste sans le déséquilibrer; donc le gros joueur ne pourra pas envoyer toute sa flotte d'un coup, au mieux, il devra les envoyer "1 à 1", ce qui donne une chance au petit joueur (et rend l'opération fastidieuse pour le gros joueur, donc, peu rentable).

Oui, ce sont des *choix* de gameplay, y'a pas de "mauvaise réponse", j'essaie juste de souligner des cas qui arriveront, et libre au développeur du jeu de choisir s'il veut les garder ou non, et comment il veut les équilibrer.


RE: Répartition des morts après combat - Chbig - 21-08-2019

(21-08-2019, 12:18 PM)Xenos a écrit :
Citation : - si deg > 0 unités perdues = max (1, floor(308/400))
Attention, car tu as alors l'effet inverse: je veux péter un joueur avec 100 grosses unités imbattables, je lui envoie alors 100 attaques moisies de 1 unité toute fabiel, qui fera juste 1 point de dégat. Comme deg > 0, alors unités perdues = max(1, floor(1 point de dégat/grosse vie de l'ennemi)) = 1. Wink

Faut voir pour l'histoire des 1000vs100 prends moins de morts que 200vs100, car cela impliquerait que la ligne de front est unique. "En pratique", l'armée serait probablement répartie sur plusieurs lignes de front, et on aurait 2 lignes de 100 mecs affrontant 1 ligne de 100 mecs. Là, peut importe qu'on envoie 200 ou 100000 de militaires, la première ligne sera toujours de 100 bonhommes, et mangera les mêmes dégats. C'est un autre modèle (c'est un peu plus proche de ce que Variispace proposera, pour le jeu de fourmis de Chbig, je ne sais pas).

En effet, ogame (ou autres jeux du genre) encouragent via ce système à attaquer des cibles clairement plus faibles... Est-ce que cela sera pour le meilleur de l'expérience utilisateur, je ne sais pas... Perso, je trouverai plus sympa de pousser les joueurs à attaquer des gens de leur niveau (voire d'un niveau supérieur). Je ne sais pas trop comment tu peux encourager ça dans ton cas. Pour Variispace, cela passera par le fait qu'un joueur "plus fort" que toi aura nettement plus de ressources, et si tu as des vaisseaux intelligemment adaptés, cela deviendra très rentable de les attaquer, plutôt que d'attaquer des faibles. De plus, les faibles seront protégés par la petite taille de leur flotte: un joueur faible a peu de vaisseaux et ils sont légers, donc, il peut orbiter autour d'un tout petit objet céleste; or la grosse flotte d'un joueur sera trop lourde pour être capable d'orbiter autour de cet objet céleste sans le déséquilibrer; donc le gros joueur ne pourra pas envoyer toute sa flotte d'un coup, au mieux, il devra les envoyer "1 à 1", ce qui donne une chance au petit joueur (et rend l'opération fastidieuse pour le gros joueur, donc, peu rentable).

Oui, ce sont des *choix* de gameplay, y'a pas de "mauvaise réponse", j'essaie juste de souligner des cas qui arriveront, et libre au développeur du jeu de choisir s'il veut les garder ou non, et comment il veut les équilibrer.

Dans mon cas, l'attaquant pourra au choix attaquer soit :
- Le TDC (destruction de 20% de la production du défenseur en cas de victoire de l'attaquant)
- La fourmilière (pillage de ressource en cas de victoire de l'attaquant)
- La fourmilière pour un asservissement du défenseur, qui donne lieu a deux combats en fourmilière).

En TDC :
Si l'attaquant gagne, il repart avec ses troupes survivantes et le défenseur perd 80% de son armée.(les 20% restant se repli automatiquement en fourmilière)
Si le défenseur gagne, l'attaquant repart avec 20% de son armée.

En fourmilière (pillage) :
Si l'attaquant gagne, l'attaquant repart avec ses troupes survivantes et le défenseur perd 90% de son armée (les 10% restant se repli en chambre royale = fourmilière)
Si le défenseur gagne, l'attaquant repart avec 10% de son armée (plus dur de se replier dans des tunnels)

En fourmilière (asservissement) :
Aucune possibilité de repli pour l'attaquant et le défenseur. Il y aura un joueur qui n'aura plus d'armée dans ce cas à la fin du combat.

L'attaquant qui attaque la fourmilière passe forcement par un combat en TDC.
Les trois cas que j'expose donne tous lieu à un combat (qui potentiellement aura plusieurs round).

Après pour les stats des unités, PV, attaque, défense (sachant que j'ai trois types d'attaques et de défenses, attaque/defénse normal, attaque/défense acide, attaque/défense poison) je vais équilibré le tout en simulant des combats une fois mon moteur de combat en place.

Ca sera probablement encore équilibré lors de la Beta du jeu.
Après les unité les plus faible auront des avantages par rapport aux unités forte en combat. (plus de capacité de transport, plus de vitesse, moins de consommation de nourriture).

J'aurai également des unités 'spécialisée'. 
Par exemple une unité avec beaucoup de point d'attaque normal mais très peu de défense.
Une autre avec beaucoup de défense normal, acide, poison mais peu ou pas d'attaque.

Je devrais choisir (au pifomètre) des stats qui me paraissent cohérentes, et les équilibrer avec mes simulations pour arriver à ce qui fait un bon gameplay dans mon sens Wink

Je pensais également ajouter un facteur nombre d'attaquant / nombre de défenseur pour donner un bonus supplémentaire à un attaquant en surnombre. (toujours à voir en fonction de l'équilibrage).
Un type d'unité 'chair à canon' qui mourrait forcement en premier avant les autres.

Les idées ne manquent pas, mais je devrais équilibrer au mieux Wink


RE: Répartition des morts après un combat - Ter Rowan - 21-08-2019

oui y a des biais à tout je n'avais pas pensé au côté 100 attaques faibles, le fix de theta me semble particulièrement interessant (mais je n'ose plus parler d'aleatoire moi... je sais pas pourquoi :p)

@chbig: A noter aussi qu'en combat rapproché, trop d'alliés sur un adversaire se gênent:
tu devrais pénaliser - ou empêcher - un round à 8 contre 1, (bon si l'individu est à terre on peut augmenter le ratio, et 8 est arbitraire, ca peut etre 4 / 6 /.. dépend de la taille (pv max par ex si tu ne veux pas créer de nouvelles caractéristiques) des adversaires)

ca ne veut pas dire qu'on ne peut pas attaquer a 10 contre 1, jusque y a 20% des attaquants qui seront en seconde ligne ou un truc comme ca. De même a distance on doit pouvoir facilement envoyer 30 fourmis volantes bombarder une fourmi au sol, mais pas sur qu a 3000 on ait pas des pertes collatérales


RE: Répartition des morts après un combat - Xenos - 21-08-2019

Si t'as peur de l'aléatoire, Ter Rowan (je me demande bien de quoi qui tu peux avoir peur en parlant d'aléa?!... Smile ), tu peux appliquer le même principe sans aléatoire: tu pourrais ajouter, à chaque joueur, un "delta de dégat pas reçus", et l'appliquer au prochain combat (ça revient un peu à avoir une "barre de vie"). Exemple:
- A envoie 1 unité de 100 PV attaquer D, qui a 100 unités de 1 PV
- A fait 80 de dégats, et tue 80 unités de D, D fait aussi 80 de dégats, mais le floor(80/100) fait que l'unité de A est en vie
- On enregistre donc que A a 80 de dégats reçus non-pris en compte, mais on ne l'affiche pas
- A envoie 1 unité de 100PV contre E, qui a aussi 50 unités de 1PV
- A fait 80 de dégats, encore, et tue les 50 unités de E. On n'enregistre rien pour E: même s'il manque 30 PV de dégats de la part de A, ce "delta" ne vient pas de la numérisation du jeu, c'est juste que A a "tappé trop fort"
- E fait 50 de dégats, et au lieu de compter floor(50/100), on compte floor((80+50)/10), et l'unité de A est donc également tuée

Cela assure l'équilibre: un "joueur chanceux" (pour qui l'arrondi est souvent favorable), dans ce modèle, n'existe plus. Y'a sûrement d'autres pistes possibles (une fun: si le dernier chiffre après la virgule est pair, on arrondi au dessus, sinon, au dessous Smile ) pour avoir le même équilibrage de manière déterministe. Mais niveau justification... c'est faible pour ce dernier exemple fun!


RE: Répartition des morts après un combat - Ter Rowan - 21-08-2019

jeuweb communauté cryptée (bon c est du sha4, ca va)