Le flowchart… ça se mange?

[Note: l’article n’est pas terminé à 100%, n’hésitez pas à me dire ce que vous n’avez pas comprit, ce que vous n’avez pas aimé ou au contraire apprécié, le but est d’améliorer au maximum mes articles]

Certains en ont déjà entendu parler, d’autres en ont déjà eut sous les yeux sans savoir que ça s’appelait comme ça, mais quel est cette étrange bestiole: le “Flowchart”.

Voici un petit article rapide qui va survoler le sujet pour répondre a quelques unes des questions que certains d’entre vous peuvent se poser: A quoi ça sert ? Comment le mettre en forme ? Est-ce obligatoire ? Y a t’il des règles pour en créer un ? etc.

1/ Un Flowchart, c’est quoi?

C’est un schéma de type diagramme qui représente de façon normalisée un processus, étape par étape.

C’est un outil servant aux “Game designer” a structurer l’intégration d’un processus dans un jeu.

Il permet de :

  • visualiser le processus idéal que l’on souhaite mettre en place
  • détecter rapidement les problèmes qui peuvent survenir
  • communiquer aux autres membres de l’équipe (game designer, programmer) sa vision du processus

Exemple d’un flowchart :

L’une des règles à toujours garder en tête est que le flowchart doit être comprit par les personnes qui vont être amené à l’utiliser.

2/ Les symboles

Il existe plusieurs symboles normalisés ayant chacun une fonction bien définit dans le flowchart:

Rectangle arrondi: représente le début et la fin du processus. On y note généralement “Start” et “End”. On peut utiliser un rond pour ce symbole.

Diamant: Contient une question à laquelle on attend une réponse du type “oui”/”non” ou “vrai”/”faux” (Est ce que le monstre a des points de vie inférieurs à 10 ?).

Rectangle: Représente une étape clef du processus (lancement d’un sort, modification d’état, etc…).

Rectangle/rond: Représente un délai d’attente durant le processus. (intervalle de lancement d’un sort faisant partie du processus).

Chacun de ces symboles est relié par un trait. Le sens de lecture d’un flowchart est de haut en bas, si le sens de lecture change il est nécessaire de flécher les traits pour indiquer le sens de lecture.

3/ Etude de cas

Rien de mieux que de prendre un exemple concret et tant qu’à faire autant prendre comme base un jeu que je connais bien: Wakfu, les gardiens.

Nous allons partir du principe que le joueur se retrouve face à un monstre que l’on appellera “Flauche Art”.

Objectifs:

  • Créer un combat avec un début scénariser en 2 sorts de scénarisation: “Apparition” + “Provocation “
  • Ce monstre doit avoir 1 phase fixe déclenchée lorsque “Flauche Art” arrive à 30 points de vie ou moins, il lance le sort “Furie”.
  • Ce monstre doit lancer le sort “Fuite” lorsqu’il a 10 points de vie ou moins. Ce sort ne peut être lancé que si le sort “Furie” a été lancé précédemment, il met fin au combat.
  • Les actions de scénarisation présentes dans ce flowchart sont prioritaires sur les actions basiques du monstre
  • Nous ne ferons pas apparaitre dans ce flowchart les actions basiques qui sont disponibles à tous moment.

Chaque étape du Flowchart représente un tour de jeu.

Que fait le monstre “Flauche Art” en jeu lorsqu’il a lancé “Apparition” et “Provocation” mais qu’il possède plus de 30 PV ?

Si Flauche Art ne peut pas lancer l’un des sorts de scénarisation que nous avons définit, il aura recours aux sorts basiques à sa disposition.

C’est alors l’IA (Intelligence Artificielle) qui définira quel sort utilisé en fonction des paramètres du combats (portée, position, etc…).

Que se passe t’il si Flauche Art peut lancer un sort de scénarisation et un sort basique au même moment ?

Comme nous l’avons définit en règle de base, un sort de scénarisation sera toujours prioritaire sur un sort basique.

Le sort de scénarisation sera donc lancé.

4/ Le Flowchart… son utilité

Je parlerai ici de l’utilité du flowchart dans le cadre d’un jeu-vidéo et plus précisemment sur “Wakfu, les gardiens”.

Dans le cadre du jeu “Wakfu, les gardiens”, le flowchart est principalement utilisé pour mettre en place certains combats partiellement ou complétement scripté (ex: Dance Dance Goultard de l’épisode 22).

Le premier intérêt du flowchart est de permettre au game designer de structurer son idée avec un processus logique. De nombreux problèmes peuvent ainsi être évités en se rendant compte rapidement des incohérences ou in-faisabilité du design.

Sur “Wakfu,les gardiens” nous avions des délais relativement court (1 semaine par épisode), nous devions rapidement mettre nos idées en formes et créer les tâches destinées aux graphistes (décors, animations, sprites). Il fallait donc être sure que les mécaniques mises en place soit en accord avec l’expérience joueur souhaitée et qu’elles soient réalisables d’un point de vue technique et temps.

Si un problème survient sur un combat alors que le Game Designer l’ayant créé n’est pas disponible, le flowchart permet à n’importe quel autre GD de comprendre la logique et d’avoir une vision globale du combat (avec les tenants et aboutissants).

L’une des difficulté auquel doit faire face un game designer est de pouvoir rapidement déterminer une expérience de jeu, puis la traduire sous forme de mécanique et faire en sorte que toute les personnes travaillant sur le projet aient la même vision.

5/ Adaptation et simplification

L’une des règle principale de tout Game designer, à mon sens, et de savoir communiquer avec toute les branches de métier du jeux-vidéo et pour cela il doit adapter son discours en fonction de la personne avec qui il parle.

Il est évident que pour parler d’un même point du jeu, nous n’allons pas aborder la chose de la même manière en fonction de notre interlocuteur (programmeur, game designer ou graphiste), il en va de même pour le flowchart.

Dans la majorité des boites, le flowchart circulera entre un game designer et un programmeur, mais ce ne sera peut être pas toujours le cas !

Gardez en tête, que comme tout outil, le flowchart doit s’adapter a vos besoins et non l’inverse.

Voici un exemple de Flowchart non normalisé, qui n’est pas professionnel mais qui est compréhensible par tout le monde !


Et le pire c’est que c’est très proche de la réalité !

6/ Les logiciels

Il existe certains logiciel destiné à créer des flowvhart de manière plus intuitives et rapide, en voici une petite liste:

* Edraw: l’un des plus complets, mais payant.

* OppenOffice.org Draw: Loin d’être le meilleur, mais il est gratuit.

* Yed: Mon préféré, il est gratuit et en java. Il peut importer des fichiers Excel et permet l’export sous forme de fichier graphique (jpeg, PNJ, etc.). Simple et efficace je l’utilise aussi pour les playboard.

Bien entendu il est possible de réaliser un flowchart directement sur des logiciels tels que Word ou Excel.

8 commentaires sur “Le flowchart… ça se mange?

  1. Le document est bien explicité et les exemples sont bien sélectionnés. Je pense qu’un deuxième petit exemple plus complexe serait le bienvenu ! Puis au final c’est à nous de tester l’outil et de jouer avec le flowchart jusqu’au résultat que nous souhaitons :p
    Merci pour le doc *-*

  2. Joli billet ! Très clair, comme à ton habitude 😉 . J’en connais à qui ça ne ferait pas de mal de lire ça.
    Bonne continuation et à bientôt j’espère!

  3. J’approuve Scheik, la présentation d’un flowchart un peu plus compliqué serait pas mal, pour qu’on se mette vraiment en tête la structure d’un donjon de Gardiens (le flowchart du combat Golem doit être extrèmement complexe Oo).

  4. Oki, dès que j’ai un peu de temps je mets en ligne un flowchart “réel” que j’ai créé pour Wakfu, les gardiens.

    Je pense que j’en mettrai deux: un de combat (Golem), l’autre de mini-jeux (Dance Dance Goultard).

    Les flowchart que j’ai mis en place pour Gardien ne sont pas normalisés car ils sont avant tout destiné aux autres Game designers (créé un flowchart normalisé pour un combat serait inutilement compliqué).

    J’en profiterai pour expliquer les raisons qui m’ont amené à ces versions de flowchart.

  5. Très intéressant un bien expliqué dans l’ensemble. Ça me rappel flowcode… bref, je me pose juste une question pour le moment:
    Dans la partie 3. (par exemple) sur votre schéma, “Flauch Art a-t-il moins de 30pv ?” -> NON -> (?) que ce passe t-il ensuite je comprend pas trop, la question boucle et re-boucle… enfin dans le combat en lui même, il se passe quoi ?
    Tant qu’il a plus de 30pv il va re-lancer “Provocation” ? Si oui, la flèche de “NON” ne devrait pas revenir avant l’étape: “FA lance provocation” ?

    Merci par avance, j’espère mettre fait compris et ne pas poser une question trop stupide.

  6. Non ta question n’est pas stupide bien au contraire.

    Je vais préciser un peu cette partie de l’article !

    Pour répondre à ta question les sorts décris dans ce flowchart sont à usage unique, ce sont des sorts de “scénarisation” que le monstre va ne lancer qu’une fois.

    Ce qui veut dire que notre monstre “Flauche Art”, a un certains nombre d’actions disponnible à n’importe quel moment.

    Les actions ou sorts de scénarisations étant, pour cet exemple, toujours prioritaire sur les actions basique.

    Etant donné que ces “actions basiques” sont constantes durant tous le combat et qu’ils ne seront jamais prioritaire sur les actions de scénarisation, ils n’entrent pas dans le Flowchart de ce combat pour éviter de le surcharger d’informations non utile (par contre il faut tout de même le préciser en préambule, avec la liste des actions basiques).

    Concretement en jeu:

    Admettons que “Flauche Art” a les actions basiques suivantes : une attaque de corps à corps et une attaque à distance.

    En fonction des paramètres de combat (notamment la distance entre le monstre et sa cible) il utilisera soit l’une ou l’autre de ses actions, voir aucune s’il n’a aucune possibilité.

    Un micro flowchart pourrait même être créé, mais en réalité c’est l’IA (Intelligence Artificielle) qui va définir quelle est l’action basique la plus adaptée.

    Cependant on force l’ia à tester notre Flowchart en lui spécifiant que les actions définie dans celui-ci sont prioritaire sur les actions basiques.

    Donc dès le lancement du combat, Flowchart lancera le sort “Apparition” puis “Provocation”.

    Tant qu’il n’est pas a moins de 30 PV il utilisera ses sorts basique. Dès qu’il pase en-dessous de 30 PV, il lancera automatiquement le sort Furie peu importe les possibilités.

    Pour aller un peu plus loin notre sort “Furie” pourrait justement débloquer une action basique supplémentaire qui vient s’ajouter aux 2 de bases.

    Floche Art aura donc à sa disposition 3 sorts basiques gérés par l’IA en fonction des paramètres de combat, tant que celui-ci n’aura pas moins de 10 PV.

    J’espère avoir été assez clair dans mon explication, je vais modifier mon article pour préciser les actions basiques disponnible tout au long du combat.

    Voilou.

  7. Oui très clair.

    C’est un peu comme une boucle de Gameplay en soit (?), adaptable à plus ou moins long terme (?).

    Ça va me servir en tout cas, enfin… me permettre de structurer certaines phases d’actions pour quelles soient ensuite réutilisables et compréhensible par le reste de mon groupe.

    Encore, merci.

    Blog très intéressant, j’espère que vous aurez la patiente et l’envie de faire d’autres articles.

  8. Hmmm pas totalement.

    La boucle de gameplay représente la “motivation” du joueur à court, moyen et long terme et ça se résume souvent à 3 éléments : Objectif / Challenge / Récompense.

    Le flowchart est un “outil” utilisé pour mettre sous forme graphique le fonctionnement d’un système de jeu.

    Les deux étant de très bon outils de communication mais ne sont pas utilisé pour parler de la même chose ^^.

    Et oui dès que je retrouve un peu de temps je continuerai à écrire des artciles j’en ai quelques uns dans les cartons :

    – Les blocs de gameplay, On en entend parler souvent mais au final qu’est ce que c’est ?
    – Decryptage de la règle des 3c (Character,Camera,Controller)
    – Casualiser des éléments Hardcore Gamer, avec comme exemple les “Worldboss” (un élément propre aux mmo)

    Voilou et si tu as des questions hésite pas.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment les données de vos commentaires sont utilisées.