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.

Aucun commentaire:

Enregistrer un commentaire