DEC-BDS

Document d'Elaboration et de Coordination - Bande Du Sud

Version N°2


Aller directement au sommaire

Introduction

    Lors de la compétition de la Route du Rhum édition 2006, il fut ouvert un site internet (virtualregatta.com) sur lequel il était possible à chacun de contrôler un voilier fictif et ainsi de participer virtuellement à la course.
    Malheureusement, le logiciel qui gérait ce jeu s'avéra être truffé de bugs, et les nombreuses incongruités qui en résultèrent faussèrent totalement les résultats, au grand désarroi des participants. Parmi ces participants, il existait un petit groupe, constitué de quelques dizaines de personnes, qui avaient pris l'habitude de discuter sur un forum du site de France Télévisions, et qui s'étaient baptisés "la bande du sud".
    Constatant que les bugs avaient tendance à être corrigés au fur et à mesure que le temps passait, et que le jeu fonctionnait de mieux en mieux alors que le trajet vers l'arrivée touchait à sa fin, l'un d'entre eux leur suggéra l'idée suivante :
    Ils refuseraient de passer la ligne, afin de rester en course, et organiseraient eux mêmes une compétition dans le sens inverse, en profitant des quelques jours pendant lesquels le serveur contuerait à fonctionner.
    Ainsi fut donné le départ de cette compétition officieuse le dimanche 12 novembre 2006 à 13H02. Elle commença à s'achever à partir du mardi 21 novembre 2006 à 10H02, date de l'arrivée du vainqueur, se poursuivant à peu près jusqu'à la fin de la semaine.
    L'amusement procuré par le jeu et la bonne ambiance du forum fit jaillir alors une autre idée : Pourquoi la bande du sud ne pourrait-elle pas se créer son propre logiciel de jeu, et ainsi continuer à s'organiser ses courses de voiles virtuelles ?
    Tel est le but de ce document, et du site auquel il est associé : Réunir les compétences et les bonnes volontés des membres de la bande du sud afin de mener à bien ce projet, et leur offrir un support permettant de coordonner leurs efforts.
    

Principes du DEC-BDS

    Le DEC-BDS est un document en ligne, constitué d'une unique page, dont la fonction est de conserver et de diffuser les informations relatives au processus de création du jeu. Il  est mis à la disposition des développeurs pour leur permettre de travailler en bon entendement, ainsi qu'à toute personne souhaitant en comprendre le fonctionnement "interne".

    Le DEC-BDS est un outil évolutif, qui subit des modifications chaque fois que celà est jugé nécessaire. Ces modifications peuvent être de deux types :
    Afin d'éviter les malentendus pouvant résulter d'une confusion entre deux versions du document, il est  mis en place un système de numérotation basé sur les principes suivants :
          1. Le numéro de version est constitué d'un nombre entier, éventuellement complété par un indice alphabétique écrit en majuscule. EX: "1"; "2A"; "15J".
          2. Le numéro de la première version mise en ligne est le "1".
          3. Lorsque le DEC-BDS subit une modification de forme, son indice alphabétique est augmenté d'un rang. S'il ne posséde pas d'indice, on lui affecte l'indice "A".
          4. Lorsque le DEC-BDS subit une modification de fond, on incrémente son nombre entier d'une unité, et on lui retire son indice s'il en possède un.
          5. Lorsque le DEC-BDS subit une modification du fond et de la forme en même temps, on opère comme pour une modification de fond.
    Par exemple, les documents qui seraient numérotés "5" et "5K" seraient identiques du point de vue de l'information qu'ils contiendraient, mais le second aurait subit onze phases d'améliorations par rapport au premier ("A", "B",...,"J" ,"K") touchant à l'orthographe, au style...mais n'en modifiant pas la signification.
    Autre exemple : Si le document   hypothétique "7C" venait à subir un ajoût important (par exemple la décision d'utiliser tel type de format de fichier pour telle application), son nouveau numéro serait le "8", l'indice "C" disparaissant.
    En résumé, les indices alphabétiques traduisent de simples retouchent "cosmétiques", tandis les changements de nombres correspondent à des mises à jours importantes.
    Les évolutions successives du DEC-BDS en ce qui concerne les modifications de fond, sont résumées au début du document dans le paragraphe Evolutions du DEC-BDS.
    Par souci de simplification et d'allègement, il n'est pas conservé de trace des modifications de forme.


    Le DEC-BDS est constitué de la liste des travaux qui seront ou sont à réaliser, qui sont en cours de réalisation, qui ont été réalisés, ou qui ne sont plus à réaliser.
    Chacun de ces travaux est désigné par le mot tâche.
    Lorsqu'une tâche est jugée trop complexe ou trop lourde, elle est subdivisée en "sous-tâches" dites tâches de niveau inférieur. Toute tâche de niveau inférieur est elle même une tâche, et elle peut de ce fait être elle aussi subdivisée à son tour en "sous-sous-tâche" et ainsi de suite, on peut procéder ainsi de manière récursive jusqu'à obtenir des tâches jugées suffisamment simples, dites tâches élémentaires.
    Toute tâche qui a été subdivisée en tâches de niveau inférieur est dite par rapport à celles-ci tâche de niveau supérieur.
    Les tâches qui ne sont pas issues de la subdivision d'une tâche de niveau supérieur, sont appelées tâches principales.(Ce sont les tâches de plus haut niveau qui existe. Elles ne possèdent pas de tâches de niveau supérieur)   
 
    Il est associé à chaque tâche un numéro unique reflétant cette hiérachie est qui est constitué d'après les règles suivantes :
    1. Les tâches principales sont numérotées à partir de "1" dans l'ordre chronologique de leur création.
    2. Toute autre tâche est numérotée en associant à droite du numéro de sa  tâche de niveau supérieur un point "." suivi du numéro d'ordre dans lequel elle a été crée lors de la subdivision de la dite tâche d'ordre supérieur.
    Par exemple, la tâche  2.1.4.8 serait la huitième "sous-sous-sous tâche" de la quatrième "sous-sous tâche" de la première "sous-tâche" de la deuxième tâche principale.
   
    Il est également défini pour chaque tâche un statut. Ces statuts sont :

- EC  ( = en cours)   : Ce statut caractérise les tâches sur lesquelles il est connu qu'une ou plusieurs personnes sont en train de travailler.
- SP ( = suspendue)  : Ce statut caractérise les tâches sur lesquelles il ne faut pas travailler pour le moment. Ce cas se présente lorsque le travail à réaliser fait l'objet d'une décision qui n'a pas encore été prise ou nécessite des informations qui ne sont pas encore connues.
- TM ( = terminée) : ce statut est celui des tâches qui ont été entièrement accomplies.
- AN ( = annulée)  : Ce statut caractérise les tâches dont la réalisation n'est plus utile au projet.
    Les statuts sont appliqués aux tâches élémentaires en fonction des décisions prises par les développeurs. Les autres tâches des niveaux supérieurs reçoivent un statut déterminé ainsi :
  1. Une tâche possède le statut EC si l'une au moins de ses tâches de niveau inférieur possède le statut EC.
  2. Une tâche possède le statut SP si l'une au moins de ses tâches de niveau inférieur possède le statut SP sans qu'aucune d'entre elles ne possède le statut EC. (c'est à dire que ses tâches de niveau inférieur sont soit SP, soit TM, soit AN)
  3. Une tâche possède le statut TM si l'une au moins de ces tâches de niveau inférieur possède le statut TM sans qu'aucune d'entre elles ne possède ni le statut EC, ni le statut SP. (c'est à dire que ses tâches de niveau inférieur sont soit TM, soit AN)
  4. Une tâche possède le statut AN si toutes ses tâches de niveau inférieur possèdent le statut AN.


Evolutions du DEC-BDS

Numéro Modification Date
1 Première mise en ligne
25 nov. 2006
2 Tâche 1.1.3 complétée et mise au statut TM 3 déc 2006

Sommaire

Introduction
Principes du DEC-BDS
Evolutions du DEC-BDS


Sommaire

Principe du jeu

Tâches

1. Réalisation d'un modèle numérique permettant de représenter le vent réel
1.1 Mise au point d'un programme de récupération de données météorologiques sur internet
1.1.1 Trouver des sources d'information
1.1.2 Sélectionner les sources d'information
1.1.3 Choix du langage de programmation
1.1.4 Choix du format de sortie du programme
1.1.5 Ecriture et essais du programme
1.2 Mise au point d'un programme capable d'estimer les caractéristiques du vent en tout point de la zone de jeu
1.2.1 Choix de la méthode de modélisation mathématique du champ éolien
1.2.2 Ecriture et essais d'un premier programme destiné à valider le travail déjà accompli
2. Réalisation d'un modèle numérique de comportement d'un voilier
3. Elaboration d'un système de cartographie

Principe du jeu

    Le jeu que nous avons pour but de réaliser, consiste à simuler des compétitions de navires à voiles, et en particulier mais non exclusivement, lors de courses se déroulant sur de grandes distances et durant plusieurs jours. Les navires simulés sont contrôlés par les joueurs via internet.Ceux-ci ont la possibilité d'agir sur certains des paramètres de conduite de leur bateau, notamment le cap et le réglage de la voilure.

    Le déplacement des voiliers est simulé par le programme en tenant compte :
- des paramètres de réglages choisis par les joueurs
- des caractéristiques propres de chaque voilier
- de la force et de la direction du vent, celle-ci étant déterminée à partir de données météorologiques de façon à coller le plus près possible à la réalité.

    Du point de vue de sa structure, le jeu est constitué de deux entités distinctes :


    Tout d'abord, un logiciel serveur, qui tourne sur l'ordinateur de l'hébergeur du site internet, et qui effectue les opérations suivantes :
- il collecte sur le web les informations disponibles sur la vitesse et la direction du vent en différents points de la surface de la planète
- il élabore, à partir de ces informations une représentation numérique du champ éolien sur l'ensemble de la zone de jeu (éventuellement, et si c'est possible, la totalité du globe) lui permettant d'estimer les caractéristiques du vent en tout point de cette zone
- il réceptionne et mémorise les choix faits par les joueurs quant aux paramètres de réglage de leurs bateaux.
- sur demande, il transmet aux joueurs les informations concernant leur position, celles des autres bateaux ainsi qu'une copie du modèle numérique du champ éolien.
- il entretien en permanence la position de chaque bateau en tenant compte de tous les paramètres pertinents (cap, vitesse du vent, bateau échoué ou non, réglage des voiles...etc...)
- il contrôle, le cas échéant, les passages de lignes de départ, des bouées de parcours et des lignes d'arrivée.


    Ensuite, un logiciel client qui existe en autant d'exemplaires qu'il y a de joueurs et qui tourne sur l'ordinateur de chacun d'eux. Il a pour fonctions de  :
- fournir une interface permettant à chaque joueur d'indiquer ses choix quant aux paramètres de réglage de son navire
- les communiquer au serveur
- demander au serveur et receptionner les renseignements utiles au joueur(positions des bateaux et vent).
- fournir une interface graphique affichant toutes ces informations : positions, vitesses et réglages de son bateau et des autres,  données météo...etc...

Tâches


1. Réalisation d'un modèle numérique permettant de représenter le vent réel
Statut : EC

1.1 Mise au point d'un programme de récupération de données météorologiques sur internet
Statut : EC
1.1.1 Trouver des sources d'information
Statut : EC

        Un appel est lancé à toutes les personnes souhaitant collaborer pour qu'elles se lancent dans une recherche de sources d'informations. Un fil du forum est ouvert pour collecter les résultats des recherches.

1.1.2 Sélectionner les sources d'information
Statut : SP

1.1.3 Choix du langage de programmation
Statut : TM

        Le langage choisi pour tous les modules logiciels du serveur est le PHP.
        Aucune objection n'a été formulée contre cette décision.

1.1.4 Choix du format de sortie du programme
Statut : EC

        Une discussion est lancée sur un fil du forum

1.1.5 Ecriture et essais du programme
Statut : SP

1.2 Mise au point d'un programme capable d'estimer les caractéristiques du vent en tout point de la zone de jeu
        Statut : SP

1.2.1 Choix de la méthode de modélisation mathématique du champ éolien
Statut : SP

1.2.2 Ecriture et essais d'un premier programme destiné à valider le travail déjà accompli
Statut : SP

2. Réalisation d'un modèle numérique de comportement d'un voilier
Statut : SP
 
3. Elaboration d'un système de cartographie
Statut : SP