Affichage des articles dont le libellé est Conception. Afficher tous les articles
Affichage des articles dont le libellé est Conception. Afficher tous les articles

jeudi 23 février 2012

Moteur de jeu : De l'application des effets

Dans la préparation d'un jeu vidéo racontant l'histoire d'un personnage qui peut intéragir avec le monde alentour, il faut se poser un jour ou l'autre la question des effets.

Premièrement : Qu'est-ce qu'un effet ?
Un effet est une modification d'une caractéristiques suite à une action du joueur. La modification peut-être bénéfique ou maléfique pour le personnage. Elle peut être à temps limité ou tant que le personnage porte un objet, par exemple.

Qu'est-ce qui définit un effet ?
Un effet est donc inhérent d'une cause, qui l'a initié. Cela peut-être différentes choses, mais en général, il s'agira de conséquences des choix du joueurs.
Il a aussi une sphère d'action, c'est à dire une liste de caractéristiques, et la valeur associée qu'il leur modifie.

Comment lance-t-on un effet ?
On utilise un effet à la suite de l'utilisation d'un objet ou de la résolution d'une compétence du personnage (quand le personnage fait une "action").
On va exécuter tous les effets qui sont impliqués par le contexte, les uns après les autres, sur le personnage.
Les effets s'appliquent actuellement uniquement sur le personnage qui les lance. Ils sont aussi dans la première version automatiquement à durée illimité.

D'un point de vue technique, c'est quoi un effet ?
Un effet est une association d'une clé, qui représente une caractéristique, souvent par le nom de cette caractéristique, connue par une énumération, donc l'association d'une clé (la caractéristique) et une valeur, qui représente un nombre signé correspondant à la modification de la valeur.
Cette association est contenu dans la description de l'objet ou de l'action qui l'initie. Le moteur de jeu ne sait pas "réfléchir", il a besoin qu'on lui explique tout en détail.

En effet, ce n'est pas parce que l'objet s'appelle une potion de soin, que le serveur va savoir qu'en la buvant, le personnage va récupérer de la santé perdue.
Sans cette association, il n'y a pas d'effet, et ainsi, faire des actions, ou utiliser des objets n'a aucun sens.

Est-ce qu'un effet est toujours valable ?
Un effet, à partir du moment où il est le résultat d'un objet acquis ou d'une action réussie, sera toujours effectué sur le personnage. Il faut néanmoins comprendre que des fois, des gardes fous seront placés : des requis.
C'est à dire qu'on ne sanctionne pas l'utilisation de l'effet, car il devient dur de rendre abstrait ce qui fait que tel ou tel chose peut-être raisonnable, et tel ou telle chose ne l'est pas. En revanche, en empêchant une tranche de personnage de faire l'action, donc de la réussir, ou d'utiliser l'objet, donc de bénéficier de ces effets, on contourne le problème.
Pour l'instant, ces points requis repose sur les caractéristiques du personnage, et on teste toujours un minima. Dans une version future, on s'intéressera certainement aussi à définir des maxima, pour guider les joueurs vers des sphères plus intéressantes.

Pourquoi coder un effet sous l'association "Clé/Valeur" ?
D'une première part parce que c'est très simple, et ensuite pour permettre d'utiliser le plus possible notre moteur de jeu qui veut que toutes les informations du joueur soit manipulé comme des associations d'une clé et d'une valeur (entière, en général non signé).
Cela permet de rendre le processus abstrait tout en gardant une grande lisibilité dans le code, grâce aux noms des énumérations qui restent parfaitement compréhensibles.

J'essayerais d'aborder d'autres aspects de nos choix dans d'autres articles. J'espère que cela vous a plu. N'hésitez pas à dire ce que vous en pensez.

mardi 21 février 2012

Conception : Solo / Multijoueurs ?

Aujourd'hui, je vais me pencher sur les critères sur lequel repose les choix technique que nous avons fait pour Eclypsaine : les Trois Ordres.

Dans un premier temps, je vais présenter ce qui existe, et dans un second temps, j'expliquerais les choix que nous avons fait.

Jeu solo / Jeu multijoueurs

Ce sont deux procédés totalement différents qui orientent totalement ce qui devient important de privilégier dans le développement. Mais développons-les davantage.

Le jeu solo est un jeu où il n'y a pas besoin de connexion internet pour jouer, pour la bonne raison qu'on a pas besoin des autres pour progresser. Ce sont en général des jeux dans un univers fermé, mais riche.
Ils peuvent s'acheter en magasin, ou se télécharger, ou même se jouer en flash.
Le joueur est plongé dans un monde virtuel, inventés principalement par les créateurs du jeu, ou les créateurs des cartes/mods.
Exemple de jeux solo : les jeux Sierra de construction d'Empire (Caesar...), les RPG à la "vieille mode" (Sacred, Dungeon Siege, ...). 
J'aurais tendance à dire que ce sont tous les jeux qui reprenne le fonctionnement des jeux d'il y a une dizaine d'années.

Les jeux multijoueurs, eux, tirent leurs richesses des interactions entre joueurs. Être seul à jouer à un jeu multijoueur n'a aucun intérêt.
La profondeur du jeu va permettre d'accrocher le joueur avec plus de puissance, mais ce qui fera qu'il reviendra toujours est le genre de communauté qui se développera autour de ce jeu.
Ce type de jeu est le plus courant sur internet, car c'est celui qui offre le plus de possibilité au joueur à moindre coup. En effet, permettre à deux joueurs de parler est plus simple que de développer une intelligence artificiel qui répondra au joueur comme une personne réelle.
Exemple de jeux multijoueurs : World of Warcraft, Guild Wars, Dofus... Il en existe plein d'une multitude de genre.

Les critères qui vont faire un bon jeu solo ne sont pas les mêmes que celles qui vont faire un bon jeux multijoueurs, même s'il est vrai que des points sont communs aux deux genres, comme le game-play et la richesse du monde, qui traduit les possibilités du joueurs.

Comme je le disais plus tôt, le principal critère qui va faire qu'un jeu multijoueur va plaire à un public, ce sera le type de communauté que l'on peut trouver. C'est aussi à double tranchant, car on ne peut pas plaire à tout le monde : il faut bien cibler son public pour avoir une chance de lui plaire réellement.


Notre choix :
Nous voulions que la richesse d'Eclypsaine passe par la complexité des rapports humains. Donc nous avons choisi un jeu multijoueurs.
Pour que cette richesse serve le jeu, il est nécessaire de la penser dès le début et de prévoir chaque action du joueur comme pouvant donner lieu possiblement à des échanges entre joueurs. C'est ainsi que l'on a peu à peu, pensé le design d'Eclypsaine.

Par contre, permettre une réelle complicité entre les joueurs nécessite un niveau technique trop élevé pour notre première version. En quelques sortes, il s'agit d'un idéal vers lequel nous poussons le jeu.

dimanche 5 février 2012

Moteur de jeu : Modélisation d'un personnage.

Cette note va aujourd'hui parler de la conception du moteur du jeu Eclypsaine : Les 3 Ordres.
Dans une première version, le système de jeu sera très simple, et très similaires à de nombreux jeu de roles. Dans une version ultérieur, des aspects seront plus approfondies.

Un personnage est modélisé par une série de variable, qui sont évidentes pour certaines, comme la richesse du personnage, et d'autres moins évidentes qui correspondent aux savoirs et aux qualités du personnage.
Il y a donc plusieurs sortes de caractéristiques.

MODELISATION D'UN PERSONNAGE : ATTRIBUTS

Les caractéristiques "ATTRIBUTS", qui correspondent au capacité d'un personnage à s'acquérir d'une action. Dans le modéle d'Eclypsaine : les 3 Ordres, elles sont au nombre de 6 :
La Puissance, l'Agilité, la Résistance, le Mental, le Physique et le Psychique.
Chaque personnage associe un entier à chacune des valeur. Cela lui définit ses possibilités.
Pour chacunes des actions, ensuite, on va comparer ses attributs aux attributs minimaux, pour indiquer quels sont les actions qu'il peut faire.

La Puissance définit l'intensité de chacune de ses actions.  Plus la puissance sera forte, plus cela lui permettra de s'imposer. C'est un attribut auxiliaire, en ce sens où il ne sert à rien seul.
L'Agilité définit comment le personnage est doué de ses mains, sa coordination. Sait-il faire des choses de précision ? Est-il rapide à l'exécution d'une tache, sans perdre de sa coordination ? Les voleurs et tous les artisans en général ont besoins de cet attribut.
La Résistance définit la capacité du personnage à encaisser ce qui lui arrive, sans broncher. Cela lui permet de résister aux maladies, à une arnaque financière d'un marchand véreux, aux famines et de moins souffrir de la faim, aux manipulations d'un charlatan... C'est un attributs encore une fois, qui est très auxiliaire.
Le Mental définit la capacité du personnage à comprendre ce qui est abstrait, à pouvoir suivre des cours, à apprendre à lire, écrire et compter, mais aussi pour retenir tous les savoirs pointus d'une classe. C'est un attribut important pour les gens de l'esprits, érudits, magicien et inventeur. Comme le monde ne facilite pas cette caractéristique, ces compé"tences sont réservés pour les bons joueurs, qui ont déjà fait leur preuve.
Le Physique définit comment le personnage se porte, dans son corps. Est-il gringalet ? Costaud ? Plus l'attribut Physique est important, plus le personnage sait utiliser la force brute. Il faut noter que cet attribut s'utilise souvent avec l'attribut Résistance ou Puissance. C'est l'attribut de base des guerriers et de ceux qui passent leur temps dehors.
Enfin, le dernier attribut, le Psychique, définit l'emprise qu'a le personnage sur les autres personnage qui l'entoure. de façon simplifiée, celui qui aura la valeur la plus élevée convaincra l'autre. C'est l'attribut majeur des chefs charismatique, des marchands, des conteurs de rêves, amsi aussi des charlatans et des dompteurs de bêtes féroces. Une nouvelle fois, certaines des actions nécessitent un haut niveau de jeu, et ne sont pas disponible de suite.

Par exemple, Tatouin, vient de commencer, il a donc un personnage assez faible (Supposons qu'il ait 25 points à la création.)
Puissance : 4 (Basique)
Agilité : 8 (Facile)
Résistance : 1 ( Basique)
Mental : 1 (Basique)
Physique : 10 (Normal)
Psychique : 1 (Basique)


Ce personnage peut faire des choses physique et a une coordination un peu meilleur, mais qu'il ne sait la plupart du temps pas trop quoi faire de sa tête.
C'est un personnage de bas niveau. Les mots entre parenthèse correspondent aux niveaus de difficulté qu'il peut surpasser.
Il y a 5 niveaux de difficulté :  Basique, Facile, Normal, Difficile, Légendaire.

Des exemples d'actions :
Vol d'un passant => Agilité : Difficile, Puissance : Normal  (Le personnage ne peut pas faire cette action.)
Manger => Résistance : Basique, Physique ; Basique (Le personnage peut faire cette action à partir du moment où il a de la nourriture dans son inventaire, elle lui sera proposé)
Couper un arbre => Résistance : Facile (Le personnage ne peut pas faire cette action, il doit tout d'abord passer dépasser le seuil de difficulté de la résistance)

Certaines actions nécessite aussi la présence d'un objet dans l'inventaire, ou un outils particulier en possession du personnage.
Par exemple, pour l'action manger, le personnage a besoin d'avoir de la nourriture (C'est un objet qui est consommé pendant l'action), autrement pour couper du bois, il a besoin d'une hache (c'est un outils, elle n'est pas consommée dans le procédé, elle existe toujours dans son inventaire à la fin de l'action).

MODELISATION D'UN PERSONNAGE : SANTE ET RICHESSE

D'autres caractéristiques sont nécéssaires pour modéliser un personnage.

Par exemple, la richesse, elle s'exprime là encore à l'aide d'un entier, qui correspond à la somme de toute sa monnaie (la valeur de ses possesssion n'est pas prise en compte). La richesse va permettre au personnage d'acheter de nouveaux objets, ou des outils.

De même la santé est une caractéristique intéressante, dan un monde où la guerre fait rage aux frontières, masi aussi à l'intérieur même des contrées. La santé dépend évidemment des combats et de leur résultat, mais aussi de la qualité de la nourriture, ainsi que de son milieu de vie.

MODELISATION D'UN PERSONNAGE : EXPERIENCE

L'expérience, dans Eclyspaine : les 3 Ordres, est décomposée en plusieurs parties, acquises dans des cadres différents.

Lors de chacunes des actions du personnage, il va augmenter sa compétence correspondante (en récoltant de l'or dans une mine d'or, il va augmenter sa compétence "Mineur"). Pour cela, il faut que l'action soit disponible (Attributs requis, lieu, outil, inventaire, et parfois connaissances) et qu'elle soit réussie (un nombre aléatoire intervient presque toujours dans les actions, suivant leur difficulté). Une fois l'action réussie, la compétence s'augmente d'un point. [L'efficacité ou la qualité s'augmente aussi de 1, si on est dans l'exécution de son métier, cf partie suivante.]

Lors de la plus grande partie des actions, le personnage gagne aussi un point d'expérience générique. Cette réserve de point d'expérience va augmenter au fil du jeu et représente le niveau du personnage. A intervalle réguliers, (tous les 100 points, actuellement), cela va générer un point d'amélioration.
Ce point d'amélioration va permettre au personnage de s'améliorer l'un des attributs.

Les attributs étant majeurs dans le jeu, et pour éviter de n'avoir des personnages trop puissant, le prix d'augmentation des attributs augmente avec la valeur de l'attributs, suivant la fonction suivante :

Soit x la valeur de l'attribut au temps t, le prix à payer en points d'amélioration pour arriver à x+1 = E [ x * 2 ^ (x/5) ]
Avec E(y), la partie entière de y.

Il devient évident que passer de 1 à 2 va couter 2, mais passer de 30 à 31, va couter légerement plus. Cela tombe bien, nous n'avons pas prévu que les personnage aillent plus loin que 25...

MODELISATION D'UN PERSONNAGE : METIER

Lorsqu'un personnage se spécialise, il choisit un métier. C'est à dire, que pour certaine des compétences, très précise, un personnage va devenir de plus en plus compétent.
Il ya deux valeurs qui définissent un métier (en plus de savoir avec quelle compétence il s'associe) : l'Efficacité et la Qualité.

L'Efficacité représente la quantité de travail abattut en une action. Pour un bucheron, cela représente le nombre de buche qu'il aura en une action.
La Qualité représente comment le travail est fait. Ellle permet de mieux réussir la tâche (augmente le test de réussite)

Ces deux variables sont liés au métier et à la compétence choisie. Si le personnage change de métier, il perds ses progrés.

MODELISATION D'UN PERSONNAGE : REPUTATION ET RP

Un dernier point dans la modélisation d'un personnage, c'est la réputation. Comment il est connu. Comment il intéragit avec les autres. Et c'est ce sigle : RP. RP signifie Role-Play, ou jeu de role.
Les deux sont liés et représente la dimension plus joueur derrière le personnage.

C'est pour cela qu'en parallèle du jeu "technique", un forum est prévu pour raconter les aventures des personnages. C'est là que toute la richesse du jeu va permettre de se dévoiler.

Cette réputation (originaire du forum) se réinjectera dans le moteur de jeu, pour permettre au joueur de redécouvrir les terres d'Eclypsaine : les 3 Ordres à la recherche de nouveaux mystères, ou de nouvelles découvertes.
D'un point de vue technique, il y a une liste de "connaissance" (j'ai évoqué brièvement lors de la résolution des actions) qui ne sera disponible que lorsque des RP auront été faits.

De même l'expérience sera acquise plus vite, permettant d'arriver à des niveaux intéressant plus rapidement.

Je m'étendrais sur cette partie dans un article suivant.



Merci d'avoir lu ! N'hésitez pas à faire vos remarques sur le moteur de jeu eou à demander des éclaircissements.