26 oct. 2009

Implémentation d'un système de règle pour un jeu de rôle - Analyse des besoins

L'article précédent ne donne guère de solution - il se contente de présenter une problématique qui se résume à : pour transformer un système de règle complexe en code, de nombreux problèmes liés à l'architecture logicielle doivent être résolus. Si j'ai pris l'exemple de Dungeons & Dragons (4ème édition), c'est que ce système est un exemple typique représentatif d'un système de règle complexe. Et nous allons voir dans ce billet dans quelle mesure il peut être complexe.

Les besoins

Il est impossible de prévoir une architecture logicielle si on ne fixe pas auparavant les besoins à laquelle cette architecture doit répondre. Si ce point peut paraître évident à certain, de nombreuses entreprises ne l'ont semble-t-il pas encore intégré. Je le répète donc : la connaissance des besoin est impérative à l'élaboration d'une architecture logicielle.

Supposons que nous souhaitons adapter les règles de Dungeons & Dragons 4ème édition pour les intégrer dans un programme[1]. Le besoin principal est d'implémenter les règles générales de base ; le second besoin est de permettre l'implémentation de règles particulière arbitraires.

Dans l'ordre :

  • le joueur doit pouvoir sélectionner une race ; les races ont un effet sur les caractéristiques, les compétences, les talents, les pouvoirs et l'équipement accessible au joueur.
  • le joueur doit pouvoir sélectionner une classe ; les classes ont un effet sur les caractéristiques, les compétences, les talents, les pouvoirs et l'équipement accessible au joueur.
  • le joueur doit avoir accès à plusieurs méthodes pour déterminer ses caractéristiques ; les score des caractéristiques ont un effet sur les compétences, les talents, les pouvoirs et l'équipement accessible au joueur.
  • le joueur doit pouvoir choisir ses compétences.
  • le joueur doit pouvoir sélectionner ses pouvoirs.
  • le joueur doit pouvoir acheter son équipement ; l'équipement a un effet sur les caractéristiques, les compétences, les talents et les pouvoirs du joueur.

Je n'ai pas détaillé l'effet que les pouvoirs peuvent avoir sur le jeu - et pour cause : le pouvoir est activé lorsque le personnage agit, et peut avoir un effet arbitraire sur son environnement. Il ne s'agit même plus d'effet sur le personnage lui-même, mais bien d'effet sur le jeu en cours. Ainsi, un pouvoir d'attaque peut avoir une influence sur les actions qui peuvent être entreprises par un autre personnage. Le problème des compétences est autre : l'utilisation d'une compétence a aussi un effet sur l'environnement - un bluff réussi peut aider lors d'une négociation, ... De fait, l'environnement est aussi impacté par les compétences, mais dans une mesure moindre que par les pouvoirs.

En fait, si on supprime cette possibilité d'agir sur l'extérieur en utilisant un pouvoir ou une compétence, il reste que le personnage peut être représenté par un système fermé que nous pouvons étudier aisément.

Le personnage en tant que système fermé

La liste ci-dessus peut être représentée par le diagramme ci-dessous.

Personnage en tant que système fermé

Le diagramme montre clairement les éléments qui ont un impact sur les autres éléments du système[2] :

  • Race -> caractéristiques, compétences, pouvoirs & talents, équipement
  • Classe -> caractéristiques, compétences, pouvoirs & talents, équipement
  • Caractéristiques -> compétences, pouvoirs & talents, équipement
  • Compétences -> pouvoirs, équipement
  • Pouvoirs & talents -> caractéristiques, compétences, pouvoirs & talents, équipement
  • Équipement -> caractéristiques, compétences, pouvoirs & talents, équipement

On peut déjà noter que deux informations (groupe 1) sont indépendantes des autres (la Race et la Classe). Deux autres informations sont des groupes (groupe 2) de grandeurs (les Caractéristiques et les Compétences). Suivent trois autres informations (pouvoirs, talents, équipement, formant le groupe 3) qui implémentent des règles particulières. Explorons ces groupes plus en profondeur.

Le groupe 1 est utilisé pour l'initialisation d'un personnage. Il n'a d'autre fonction que de fournir un cadre de base - autoriser ou interdire un équipement particulier, fournir une liste de compétence, décrire une liste de pouvoirs disponibles, etc. De nouveaux manuels peuvent ajouter de nouvelles races et de nouvelles classes.

Le groupe 2 contient des informations qui sont similaires, mais pas identiques. Caractéristiques et compétences sont est grandeurs chiffrées qui peuvent être affectées par des modificateurs et qui servent à générer d'autres modificateurs ayant un impact sur des jets de dés. Les différences majeures résident dans l'initialisation de ces grandeurs et la génération du modificateur associé, mais dans l'essence, ce sont des scores auxquels sont associés des noms. La liste des compétences et des caractéristique est fixée, toutefois la liste de leurs utilisations est étendue régulièrement.

Le groupe 3 défini une corpus de règles particulières qui ont un impact sur le personnage dans son ensemble. De nouveaux talents, pouvoirs et objets sont publiés régulièrement, rajoutant de nouvelles règles particulières à ce corpus déjà fournit.

Notes

[1] ATTENTION : cet article utilise Dungeons & Dragons 4ème édition car ce système de règle présente des difficultés représentatives des systèmes de règle complexe des jeux de rôle modernes ; je rappelle que selon la GSL §3 et §5.5, il est interdit d'effectuer une telle adaptation.

[2] on a regroupé pouvoir et talents du fait de leurs similitudes

Commentaires

1. Le mardi, janvier 5 2010, 18:46 par Cours particuliers

Rassurez-vous, je ne viens pas vous donner un cours particuliers et encore moins dans votre domaine ;) Je tenais tout simplement à vous remercier pour votre site et vous souhaiter une bonne année !

2. Le mercredi, janvier 6 2010, 15:37 par Emmanuel Deloget

Et bien, je, enfin, merci *^_^*

3. Le lundi, juillet 5 2010, 12:43 par Ekinox

Juste une question, après les félicitations d'il y a quelques posts : serait-il possible de récupérer les images et diagrammes ? Les explications sont un peu moins claires à cause de ça :'(

4. Le mercredi, septembre 5 2012, 15:25 par Idéophage

Bonjour,

En relisant, j'ai cru voir une faute de frappe :
le joueur doit pouvoir sélectionner une race et une classe > le joueur doit pouvoir sélectionner une race et une classe

5. Le mercredi, septembre 5 2012, 16:10 par Emmanuel Deloget

En relisant, j'ai cru voir une faute de frappe

Et effectivement, c'est une faute. Merci pour cette correction !

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet