Combat: Scripts de combat

Voir le sujet précédent Voir le sujet suivant Aller en bas

Combat: Scripts de combat

Message  David le Lun 10 Mar - 2:57

L'idée est de décomposer un combat en plusieurs tours d'actions, en opposant le script de l'attaquant contre celui du défenseur, en exécutant chacun une action par tour. (Principe de Starshine-online)

Un script est un ensemble d'actions exécutées séquentiellement.
Idéalement, on pourrait avoir des scripts de combat "intelligents" avec des conditions.

Richesse et complexité garantie =)
Si on veut du "shifumi", les scripts de combat pourraient en être une composante essentielle.

De plus, les scripts pourraient permettre de gérer des aspects supplémentaires du combat: l'initiative et l'anticipation (le fait d'apprendre comment contrecarrer l'adversaire en le voyant agir) et tout ce qui demande une gestion entre 2 attaques consécutives.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Oui !

Message  Stabbquadd le Lun 10 Mar - 11:40

Je suis tout à fait pour, mais je me demande encore un peu comment le programmer, ou plutôt comment le stocker en Base de Données et le présenter.
A mon avis Quadd Arena va nous y aider car c'est un embryon d'un système de ce genre. Il manque l'ajout de conditions mais je vois comment le faire.

Ca permet une chose intéressante en plus : la possibilité d'offrir une compétence qui permet d'élaborer son script un peu plus avec de nouvelles options de conditions ou une quantité supérieure de compétences prévues.
Le script se déroulerait alors jusqu'à ce que le nombre de "points de combat" ou l'énergie du joueur( selon le système de jeu) soit épuisé.

Du coup en ayant une certaine quantité d'énergie deux personnages peuvent se battre sans en mourrir ni l'un ni l'autre. Ca serait sacrément marrant deux persos qui se battent tous les jours jusqu'à épuisement sans jamais réussir à se tuer... pour l'instant Smile

Stabbquadd
Admin

Messages: 61
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur http://triumvirat.crazyfruits.net

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  David le Lun 10 Mar - 19:04

J'ai upload des screenshots pour te montrer des exemple dans starshine-online
(et tester ces satanés galeries de photos du forum :p)

Exemple de création de script


Exemple d'exécution de script

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  Stabbquadd le Lun 10 Mar - 19:11

C'est à peu près de cette façon que je l'imaginais : créer des blocs d'actions conditionnelles à répéter soit à chaque tour de jeu dans un combat, ou soit dans l'ordre à chaque combat (ou les deux selon le type de compétence peut-être).

Stabbquadd
Admin

Messages: 61
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur http://triumvirat.crazyfruits.net

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  David le Lun 10 Mar - 19:14

Méthodes possibles pour quantifier la "durée" des combats:

- A la mort d'un protagonistes. C'est bien dans le cas de PvM. Mais pour le PvP pas trop.
- Nombre de tours fixes
- Nombre de tours dépendants des attributs des perso (rapidité, endurance, initiative, fatigue, etc.)
- Au premier qui touche (ou plutôt atteint un niveau de blessure ou de douleur) ! Admettons que l'on fasse un jeu où l'on touche rarement l'adversaire, des considérations comme l'initiative, longueur/vitesse/portée de l'arme, ruses de type camouflage, feinte, etc., prennent une importance phénoménales. Et tout ce qui est de l'ordre de la contre-attaque aussi. Et en plus, c'est très original =)

Dans le cas de nombres de rounds non fixés à l'avance, le nombre de rounds de combat pourrait coûter des PA supplémentaires
On aurait un coût de base, par exemple 5 à 10 PA, et chaque round coûterait 1PA de plus.

On pourrait gérer une fatigue de combat qui aurait un impact sur le non-combat: Entre chaque combat, on récupère toute sa fatigue, moins une valeur de "fatigue de longue durée" dépendant du nombre de tours (et de certaines actions éreintantes)


De nombreuses choses sont à entrevoir en dissociant ainsi le combat du non-combat: si on fait évoluer des compétences par l'usage, alors il faut quantifier différemment l'expérience possible en combat et en non combat.


De plus, suivant qu'on veuille encourager le PvP ou le PvM, et équilibrer les évolutions des perso qui font du PvM et ceux qui font du PvP, il pourrait falloir conditionner différemment les combats PvM et PvP (nombre de PA, XP rapportés, etc)
En effet, les monstres sont en général faciles à tuer car l'IA a ses limites. Donc on évolue en général plus facilement en faisant du PvM peinard dan son coin plutôt qu'en faisant du PvP, nettement plus dangereux.
A moins que les monstres en soient vraiment dangereux ... :p

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  Stabbquadd le Lun 10 Mar - 19:46

J'avais déjà expliqué mon point de vue là dessus autre part.

En fait tu as une quantité d'énergie au début de chaque combat. Cette quantité d'énergie correspond par exemple à ta vie ( x endurance / 100 ?) moins la charge que tu portes. Chaque action en combat coûte de l'énergie. Quand les deux joueurs ont vidé leurs jauges, le combat s'arrête, même si personne n'est mort. Par contre, même si on peut refaire un autre combat tout de suite après (ou au bout de 5 minutes ou autre, faut voir), il faut faire gaffe à ce que la vie du perso soit suffisante pour assurer de ne pas mourir dans le combat, sinon ouch retour à la case départ Very Happy

Enfin c'est à définir mais le système me semble particulièrement bon : on peut avoir un perso qui joue très vite mais se fatigue vite, ou au contraire qui a peu d'initiative mais qui est increvable ^^

On peut ainsi créer encore d'autres rapports de force à la shifumi. Un perso peut frapper lentement et pas longtemps, mais frapper ultra fort par exemple.

Stabbquadd
Admin

Messages: 61
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur http://triumvirat.crazyfruits.net

Revenir en haut Aller en bas

Sorties de combat

Message  David le Lun 10 Mar - 19:49

Dans l'optique de script de combat ne se gagant forcément à la mort d'un protagoniste, mais à l'épuisement, ce que je trouve plus intéressant, il faudrait déterminer ce qui arrive au gagnant et surtout au perdant: est-il achevé, épargné, rançonné, capturé, dépouillé, continuer le combat, etc.?

En effet: si tu es épuisé, et pas ton adversaire, ben tu perds le combat: qu'est-ce qui empêche ton adversaire de t'achever ?

Donner au gagnant un choix me semble aussi original et ouvert sur des possibilités intéressantes =)
Cela pourrait permette de "gérer" facilement différents types d'affrontement aussi: combat d'auberge "sans arme", défi non mortel entre 2 nobles, combat d'arène ou de ring, etc.

Ainsi, on introduirait un concept intéressant: la gestion de son endurance (que tu nommes énergie). Ce qui me semble vraiment excellent et réaliste. Et enfin on pourrait dissocier finement le berserk de la fine-lame qui gère son combat !
On pourrait à cet effet introduire des actions tels que "repos" ou "observation de l'adversaire", différents types de feintes offensives ou défensives, des contre-attaques, etc.


Dernière édition par David le Lun 10 Mar - 20:00, édité 1 fois

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  Stabbquadd le Lun 10 Mar - 19:58

Ca fait vraiment Quadd Arena avec ses fatalities Very Happy

Stabbquadd
Admin

Messages: 61
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur http://triumvirat.crazyfruits.net

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  David le Lun 10 Mar - 20:04

Je n'ai pas essayer Arena ...

Ce qui serait intéressant aussi, c'est que dans l'exécution du script, on ne sache pas forcément ce que fait l'adversaire, mais uniquement ce que l'on voit: on ne ferait pas la différence entre un adversaire qui se repose, qui prépare une esquive, qui observe nos techniques, qui prépare une contre-attaque, ... non, on verrait simplement un ennemi qui n'attaque pas

Cette lecture des actions de l'ennemi pourrait être altérée par des compétences: On pourrait avoir des compétences permettant de comprendre ce que fait l'adversaire, et faire la différence entre une contre-attaque en préparation et un repos dû à l'épuisement. Si la condition "adversaire prépare contre-attaque" existe parmi les conditions de scripts de combat, alors une dimension stratégique supplémentaire peut-être gérée par le script. Don autant de compétences supplémentaires autres que bourrines Smile

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Evolution des compétences de combat

Message  David le Ven 21 Mar - 16:46

J'ai essayé rapidement Quadd Arena, je comprends mieux pourquoi tu appréhendes aussi bien ce que je voulais dire =)

Plusieurs points à propos de l'évolution des comp. de combat:

- Il y aura des actions de combat comme de non-combat, il va donc falloir, a priori, homogénéiser le gain d'XP.
Si on part sur un système où les différentes actions sont toutes aussi importantes (complémentaires), et que le coût en PA représente de façon pertinente leur coût d'utilisation, le plus simple serait de caler l'évolution des compétences sur le coût en PA je pense.

Principe de base:
. Une action basique de non combat de rang 1 me coûte 5PA, elle améliorera le niveau de maîtrise de cette compétence de 5pts sur un total de 100 pour passer au rang 2 par exemple.
. Un décompte des actions de combat est effectué, et on partage les XP entres les différentes compétences de combat utilisées dans le script au prorata de leur utilisation
NB: quid des compétences/bonus passifs tels +1 au toucher s'ils peuvent évoluer ?


Sinon, découpler les vitesse d'évolution du combat et du non-combat serait la solution la plus simple, mais pas forcément la meilleure pour gérer les complémentarités entre orientations de combat et les autres, disons les utilitaires. Il faudra décider de l'importance que l'on voudra donner réellement aux compétences de non-combat ainsi que leurs conditions de lancement: coût en PA, coût en autres points, utilisation de composantes et rareté de ces composantes, nombre d'utilisations limitées par période de temps, action associée à un lieu/moment particulier, etc.

Est-ce qu'on aurait intérêt à faire évoluer plus vite des compétences utilisées rarement et moins importantes en terme d'impact sur le jeu ? C'est encore un peu tôt pour se poser la question, mais je préfère la poser plutôt que négliger ce détail.

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Energie et duré des combats

Message  David le Ven 21 Mar - 17:17

J'ai eut une idée, je vais la développer ici en espérant qu'on verra rapidement les inconvénients. Si l'idée plait :p

Principe général:
  • Un combat dure tant que les participants ne sont pas fatigués/mis hors combat (assommé, capturé, ...)/morts.
  • On utilise pour cela un compteur d'énergie qui représente diverses choses: endurance (/fatigue), capacité de résistance aux coups et blessures, à la douleur , à la peur (peur de perdre, peur de mourir, ...)
  • L'énergie de chaque combattant diminue donc: lorsqu'il fait une manœuvre de combat (par exemple frapper), lorsqu'il prend un coup (donc les dégâts se déduisent de l'énergie aussi !), lorsqu'il subit certains effets (attaque assommante, coup critique, brûlure intense d'un mage, etc.)
  • L'un des protagonistes sera forcément à court d'énergie plus rapidement que l'autre. A parti de ce moment, les dégâts encaissés viennent diminuer sa santé


Le gros intérêt, c'est qu'il faut gérer au mieux son énergie, autant offensivement que défensivement: si on utilise des manoeuvres puissantes mais exténuantes, on pourrait avoir du mal face à un combattant qui a trouvé un meilleur compromis d'attaques légères et parcimonieuses et de défenses suffisantes pour encaisser les coups.

Schématiquement:
EN COURS D'EDITION

  • Toute manœuvre "consomme" de l'initiative et de l'énergie, qui deviennent donc des caractéristiques obligatoires pour chaque manœuvre.
  • Le but de toute manoeuvre (ou combinaisons de manœuvres) est de provoquer plus de perte d'énergie chez l'ennemi que chez soi, soit par des dégâts directs, soit par des effets visant à diminuer sa propre consommation d'énergie, soit en diminuant l'énergie de l'ennemi, ou en augmentant sa consommation d'énergie.
    Hypothèse (chiffres bidons, c'est pour se rendre compte du principe)

    • Si on part du principe énergie= constitution X 10
      Une manoeuvre moyenne consomme 10 d'énergie et a 10 d'initiative
      Si l'ennemi ne me fait pas de dégât, je peux agir 10 fois en moyenne
      Si je me mets en posture défensive, je n'attaquerais pas mais j'économiserais mais énergie, pourvu que mes défenses soient suffisantes
      Une fois l'ennemi à court d'énergie, j'attaque, il en prend plein la tête
      S'il a réussi, au contraire, à passer mes défenses, je n'aurais plus assez d'énergie pour attaquer, c'est donc lui qui gagnera
      (On doit prévoir des "matchs nuls": les 2 n'ont plus d'énergie en même temps)





Bref, le combat serait géré par:
- Les capacités évidemment (compétences, carac, équipements)
- L'intelligence de celui qui fait son script, principalement avec sa gestion de l'énergie dépensée/encaissée
- Des enchantements hors combats pour booster ou invalider l'ennemi.
- Un peu de chance aussi bien sûr
A nous de faire la balance :p

L'idée me plaît beaucoup mais cumuler tous ces usages pour la simple carac. Energie est à double tranchant: on sera un peu limité pour simuler des effets variés: qu'est-ce qui distingue une attaque d'estoc d'un coup de crosse sur le crâne dont le but est d'assommer ? Dans l'hypothèse développée ici, le coup d'estoc provoque une blessure qui diminue les capacités de résistances à la blessure et à la douleur, alors qu'assommer n'a pas pour but de blesser ou de tuer, mais d'invalider pour une période assez courte (on pourrait dire étourdir dans ce cas)


D'un autre côté, ce système apporte une certaine richesse:
- Si par exemple on gère des malus en fonction de paliers d'énergie (par exemple des paliers d'énergies à 75% => malus -1 aux actions de combat (attaque, défense, dégâts); énergie = 50% donc malus -2; 25% => malus -3, 0% malus -4), alors des capacités invalidantes (étourdir, provoquer la peur, paralyser, aveugler, ...) pourraient diminuer le palier de malus dans diminuer l'énergie... ou au contraire diminuer l'énergie sans toucher à ce palier de malus.
Par exemple, un sorcier pourrait provoquer la peur: la cible conserve son énergie mais change de palier de malus suivant la réussite et le niveau du sort. Ce malus de peur serait aboli sur des jets de résistances à faire régulièrement (à chaque round, à chaque blessure ?) et bien sûr serait aboli lorsque le niveau d'énergie serait suffisamment bas pour induire un malus plus important que celui de la peur
Une capacité comme berserk pourrait se simuler en partie en ignorant ces malus d'énergie (voire avec un bonus +1) qqsoit le niveau d'énergie, avec une consommation supérieure en énergie, quitte à utiliser sa santé à la place de son énergie: donc des bons gros bonus accompagnés de gros risques de conséquences désastreuses

Ce ne sont que des exemples, mais ils montrent je pense assez de richesse si on induit des variables de combats autre que la "simple" énergie.



Quelques options possibles:
  • On pourrait gérer une certaine fatigue "à long terme": l'énergie ne serait pas forcément à son maximum pour un combat:
    - Diminution de l'énergie à chaque combat, d'office, avec un pourcentage de récupération d'énergie avec le temps (par PA ?)
    - Notre énergie pourrait être diminuée d'autant que l'est notre santé, pour simuler l'effet des blessures, et donc notre perte de résistance générale, physique comme morale.
    - Cela laisse la place à des capacités et états comme le saignement, l'empoisonnement, etc. qui seraient gérés différemment en combat et en non-combat mais ne disparaitra pas forcément à la fin d'un combat. Ce qui ouvre pas mal de possibilités de d'enchantements/malédictions et divers types d'actions bénéfiques (repos, avantage de récup. toute son énergie ...)

    De cette manière, le combat à plusieurs contre 1 peut être bien organisé pour invalider des types d'ennemis difficiles hors combat, ou avec l'acharnement de plusieurs personnes, bref, avec des manières variées: l'assassin qui pendant un combat empoisonne l'ennemi, le sorcier lance des malédictions pour aveugler l'ennemi (hors combat), l'assassin , mal en point, peut ainsi réattaquer et achever le tank, alors que 2 (ou 3 ?) assassins n'y seraient pas parvenus tellement l'ennemi leur résiste bien. On est en plein effet shifumi, et son intérêt: la complémentarité.

  • Pour distinguer ce qui blesse vraiment de ce qui étourdit/provoque la douleur, on peut faire que certaines armes infligent une partie de leur dégâts sous forme de PV: l'ennemi perdrait un peu moins d'énergie, mais perdrait de la santé.


Dernière édition par David le Ven 21 Mar - 19:40, édité 2 fois

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  Stabbquadd le Ven 21 Mar - 19:10

Tu parles de l'inconvénient de tout gérer sur l'énergie, mais comme tu dis peu après, celle-ci peut ne souffrir que de peu de variations en jouant sur les paliers.
Et puis on peut aussi faire en sorte que les personnages aient un évènement dans le script de combat qui dise : si énergie inférieure à 30%, alors fuir le combat !

Ensuite je suis d'accord avec le reste vu que c'est comme ça que je l'imaginais.
Mais j'ai peut-être une proposition malgré tout :
Chaque personnage a une variable par résistance différente : au saignement, à l'étourdissement, à la peur, etc...
Ces variables peuvent être modifiées par des compétences passives, actives, etc...
Le principe c'est que cette variable démarre le combat à énergie - capacité de résistance. Chaque fois que le personnage subit une variation de cette variable (on tente de l'assomer par exemple) on lui ajoute la valeur de modificateur. Lorsque la variable passe au dessus de l'énergie (ou divers paliers) alors le personnage subit l'état induit : être assomé, être exsangue, être effrayé, avec divers conséquences sur le combat. Assomé : tu peux plus agir mais le combat continue. Effrayé : ton script ne compte plus, le personnage cherche à fuir à chaque tour. Exsangue : les tours sont ralentis, le joueur agit moins souvent (dans l'hypothèse qu'on utilise un système de combat basé sur l'initiative à la FFX).

Il faudra faire la liste des états possibles et leurs conséquences !

Stabbquadd
Admin

Messages: 61
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur http://triumvirat.crazyfruits.net

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  David le Ven 21 Mar - 19:33

(Tu as répondu alors que je suis encore en train d'éditer :p
Je mettrai à part ce que je rajoute en ce moment, une fois que j'aurais terminé. Il n'y a pas gd chose de plus de toute façon, c'est juste des exemples et un léger approfondissement. J'effacerai ce commentaire quand le message initial sera à jour, sinon on ne va pas s'en sortir :p)


- Oui bonne idée pour les résistance ! Simple et efficace =)

On pourrait aussi gérer des résistances passives, inusables et faibles à l'échelle du combat: par exemple un casque protège contre l'étourdissement de 1, donc cela réduit toute perte de 1 due aux actions assommantes, tant que le casque est porté et en état. Peau de roc pourrait protéger de 1 contre les saignements et assommoirs... Bref, des armures ou enchantements pourraient apporter des résistances intéressantes (on peut aussi choisir une réduction en % pour gérer la montée en puissance des perso, mais ca n'est pas nécessaire je pense). Est-ce que 2 systèmes complémentaires sont utiles, ou 1 seul suffit-il à simuler l'effet de protection ?


- Concernant l'énergie, agrégat de plusieurs variables en fait, elle ouvre différentes portes d'actions en en fermant d'autres. Avec les paliers de malus et les résistances, sachant qu'il y aura plein de manoeuvre avec des coûts en initiative et en énergie différents, on a déjà beaucoup de variables en fait. Beaucoup d'effets possibles et variés. Je pense que c'est pas mal déjà. Surtout sachant qu'on doit gérer les combo et développer un peu les actions de défenses que l'on voudrait.

- Une fois qu'on aura la liste des variables, on pourra imaginer des compétences (manoeuvres de combat, sorts, bonus ...), afin d'établir une liste d'effets possibles. A partir de cela, on pourra établir la liste des conditions à définir
Ca fait un boulot de codage important. On essaiera de travailler efficacement les algorithmes, c'est primordial.

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  Stabbquadd le Ven 21 Mar - 19:40

Juste une petite idée en plus mais à laquelle il faudra penser.

Lorsqu'on se prend un coup pour se faire étourdir par exemple, il faudrait que le test d'étourdissement se fasse sur la totalité du coup (par exemple coup de 20, résistance de 5 et énergie de 30, je résiste de 5 points) mais que la baisse de la résistance n'en soit qu'une portion, le quart me semble bien (dans mon exemple la résistance diminue de 5, donc variable montée à 10. Avec un autre coup de 20, je suis assomé).

Voilà, en résumé lors de l'action il y a un pic auquel résister, mais ensuite les traces qu'en garde le personnage pour la suite des évènement sont moindre, voire s'amenuisent (très intéressant et très stratégique).

Stabbquadd
Admin

Messages: 61
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur http://triumvirat.crazyfruits.net

Revenir en haut Aller en bas

Re: Combat: Scripts de combat

Message  David le Ven 21 Mar - 20:06

Rien à dire, juste +1 :p

_________________
La Démocratie c'est nous, tous les jours, et rien d'autre.

David
Admin

Messages: 111
Date d'inscription: 07/03/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum