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 :
- Des modifications
de fond : tout ajout,
suppression ou correction affectant l'information contenue
dans le document.
- Des modifications
de forme : modification de la
typographie
ou de présentation, correction de fautes
d'orthographe,
reformulation mineure, amélioration du style,
ajoût d'un
lien pour
favoriser la navigation...etc...et d'une manière
générale, toute modification n'affectant pas
l'information contenue dans le document.
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 :
- 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".
- Le numéro de la première
version mise en ligne est le "1".
- 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".
- 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.
- 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 :
- Les tâches principales sont
numérotées
à partir de "1" dans l'ordre chronologique de leur
création.
- 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 :
- 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.
- 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)
- 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)
- 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
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