cahier des charges - [ 2difficult! ] Web Site

Transcription

cahier des charges - [ 2difficult! ] Web Site
Mad Sheep
Menet Benoit
Lefebvre Thomas
Levens Jérémy
19 novembre 2004
Pinto Antonio
Table des matières
1 It’s
1.1
1.2
1.3
2difficult !
Une Petite introduction . . . . . . . . . .
Pourquoi 2difficult ? . . . . . . . . . . . .
Des Etudiants motivés . . . . . . . . . . .
1.3.1 Mendes-Pinto A. alias El-Tonio
1.3.2 Lefebvre T. alias EpiTom . . . .
1.3.3 Levens J. alias Celtec . . . . . . .
1.3.4 Menet B. alias Kapz . . . . . . .
2 Présentation de Mad Sheep
2.1 Les Jeux "concept" . . . .
2.2 Les Thèmes abordés . . .
2.2.1 La Peur . . . . . .
2.2.2 Les Groupes . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Les Règles du jeu
3.1 Le Mode Solo . . . . . . . . . . .
3.1.1 But . . . . . . . . . . . .
3.1.2 Spécificité du mode . . . .
3.2 Le Mode 2 joueurs . . . . . . . .
3.2.1 But . . . . . . . . . . . .
3.2.2 Spécificité du mode . . . .
3.3 Le Comportement des unités . .
3.3.1 Le Gentil toutou . . . . .
3.3.2 Les Méchants loups . . . .
3.3.3 Le Troupeau de moutons
3.4 Les Items spéciaux . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Les Aspects techniques
4.1 Le moteur graphique . . . . . . . . . . . .
4.1.1 Pourquoi DirectX ? . . . . . . . . .
4.1.2 Qu’est-ce-que le "Cell Shading" ? .
4.1.3 Le but minimum . . . . . . . . . .
4.2 Et la physique dans tout ça ? . . . . . . .
4.2.1 Qu’est ce qu’un moteur physique ?
4.2.2 La Physique fondamentale . . . . .
4.2.3 La Gestion des collisions . . . . . .
4.3 Le Pathfinding . . . . . . . . . . . . . . .
4.3.1 Pourquoi utilise-t-on le Pathfinding
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
3
4
4
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
dans
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
Mad
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
7
7
7
7
8
8
8
8
9
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Sheep ?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
10
10
10
11
11
11
11
11
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Mad Sheep par 2difficult !
19.11.2004
4.4
4.5
4.6
InfoSup
Promo 2009
4.3.2 L’Algorithme de parcours A-star (A*)
Les Entrées/Sorties . . . . . . . . . . . . . . .
Un Environnement sonore adéquat . . . . . .
4.5.1 Pourquoi utiliser FMod ? . . . . . . . .
4.5.2 Nos Besoins . . . . . . . . . . . . . . .
L’Editeur de carte . . . . . . . . . . . . . . .
4.6.1 L’Intérêt . . . . . . . . . . . . . . . . .
4.6.2 Ses spécificités . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
12
12
13
13
13
5 Les Ressources matérielles
14
5.1 Le Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2 Le Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6 Le Site web : 2difficult.free.fr
6.1 Présentation du site . . . .
6.1.1 Les News . . . . . .
6.1.2 Soutenances . . . . .
6.1.3 Téléchargements . .
6.1.4 L’équipe . . . . . . .
6.2 Les Ressources . . . . . . .
6.2.1 Logiciels . . . . . . .
6.2.2 Hébergement . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Le Planning des soutenances
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
16
16
16
16
17
17
17
18
2
Chapitre 1
It’s 2difficult !
1.1
Une Petite introduction
Cette première année à EPITA est pour nous l’occasion de nous adonner au plaisir de
la programmation d’un jeu vidéo. La tâche peut paraitre immense (et elle l’est) mais avec
une bonne méthode et une motivation hors du commun, rien n’est impossible (ou presque).
Notre jeu vidéo part d’une idée de base des plus simplistes : ramener des moutons dans un
enclos. Mais avant que vous ne commenciez à vous moquer, lisez la suite pour comprendre
comment et pourquoi nous avons fait ce choix...
1.2
Pourquoi 2difficult ?
D’abord 2difficult (prononcez ’toudifficulte’) sonne bien et est jolie à la visualisation.
La traduction est simple : ’trop difficile’. Pourquoi trop difficile ? Peut être est-ce pour dire
que ce qui nous est demandé est trop difficile. Ou encore parceque nous sommes une équipe
qui relève les défits les plus hardus.
Enfin une autre des bonnes raisons qui nous ont amené à choisir ce nom d’équipe est le
’2d’ du début. ’2d’ (pour 2 dimensions) colle parfaitement avec Mad Sheep puisque nous
le programmons en . . . 3 dimensions.
1.3
1.3.1
Des Etudiants motivés
Mendes-Pinto A. alias El-Tonio
Lorsqu’il a fallu définir quel serait le jeu que nous développerions, j’avais déjà en tête
une idée bien particulière. Je ne voulais pas que l’on se résume à faire un jeu qui serait le
même qu’un autre déjà existant, et auquel on aurait simplement modifié le scénario ou le
décor. Je voulais trouver une idée originale. C’est pour cela que j’ai proposé au groupe de
passer un peu de temps sur la recherche d’un bon theme. J’ai à l’heure actuelle quelques
bases en programmation :
– Programmation PHP/SQL, Javascript ainsi que Flash/Actionscript et bien évidemment le Html ;
– Je comprends les bases du C++ ainsi que la programmation orientée objet ce qui
me permet de lire sans trop de difficulté les tutoriaux de jeux 3D qui sont pour la
plupart écrit dans ce langage ;
– Bases de l’utilisation de 3DSMax et de Photoshop.
3
Mad Sheep par 2difficult !
19.11.2004
1.3.2
InfoSup
Promo 2009
Lefebvre T. alias EpiTom
Je fais partie de ce groupe car l’idée d’un jeu plutôt conceptuel que classique m’a beaucoup plu. Je ne joue pas beaucoup aux jeux vidéos classiques (combat, voiture . . .) tandis
que des jeux plus pensés tels que Quirck ou encore Blobby Volley m’amusent beaucoup
plus. Je n’ai jusqu’à présent jamais programmé mais j’ai vraiment envie de m’investir dans
ce projet pour acquérir de l’expérience dans la programmation.
1.3.3
Levens J. alias Celtec
Pour ma part, j’ai déjà eu l’occasion de travailler en groupe, avec des professionnels,
pour le développement d’un projet. C’est donc pour moi une chance de pouvoir appliquer
ce que j’ai pu apprendre durant cette expérience. De plus, mon niveau en programmation se
limitant à Caml (. . .), j’ai l’intention d’acquérir le maximum de notions et de connaissances
pour pouvoir m’investir à fond dans ce projet !
1.3.4
Menet B. alias Kapz
Ayant redoublé ma Sup, et par conséquent ayant déjà mené à terme un projet, je pense
avoir acquéri une certaine expérience en programmation. Cela va me permettre d’aborder
ce projet avec du recul et d’aider mes camarades. Mes bases en programmation sont le
reflet de mes connaissances de Sup. Ce projet va donc me permettre de les approfondir en
traitant de nouveaux problèmes.
4
Chapitre 2
Présentation de Mad Sheep
2.1
Les Jeux "concept"
Nombreux sont les jeux non commerciaux, qui, une fois le developpement fini, disparaissent dans le coin du disque dur des deux trois personnes qui ont eut le courage de le
télécharger. Pour qu’un jeu plaise, il y a plusieurs solutions, soit il est parfait graphiquement (et encore si le gameplay ne suit pas, le jeu ne décollera pas), soit son concept est
original. Il est évident que nous n’avions ni les moyens techniques, ni interêt à perdre notre
temps à tenter de convaincre les joueurs par des graphismes éblouissants. Nous avons donc
opté pour la recherche d’une idée originale. Nombreux sont les jeux qui ont séduis bon
millier de joueurs de par le monde parce qu’il proposait un concept novateur (Bomberman,
Kuru Kuru Kururin, Chuchu Rocket...).
Dans Mad Sheep, vous endossez la peau d’un chien de berger qui doit ramener son
troupeau de moutons en subissant le moins de pertes possibles.
2.2
2.2.1
Les Thèmes abordés
La Peur
Une des premières idées importantes qui est au coeur de l’intérêt du jeu est la gestion
de la peur. Les moutons composants le jeu sont tous soumis à des sources de stress. Ce
stress influera sur leur manière de réagir face à un loup ou encore à l’obscurité. Plus un
mouton sera stressé et plus il aura peur rapidement. C’est cette peur qui, si elle devient
trop importante, mettra fin aux jours heureux de notre mouton.
Les sources de peur des moutons seront multiples mais en voici déjà quelques-unes :
– Le loup : il est l’une des causes principales de peur chez les moutons. Plus le loup est
près et plus le troupeau est effrayé.
– L’obscurité : Si l’on traverse une zone sombre, le niveau de stress des moutons augmentera.
– La mort : Un mouton qui voit un autre de ses compagnons mourir panique.
– Les aboiements du chien : Heureusement, le chien est là pour défendre ces pauvres
moutons sans défense. La présence du chien près d’un mouton, s’il n’aboie pas, a
donc un effet positive sur le stress du mouton : il les rassure. Cependant, si le chien
aboie de façon répétitives, les moutons vont tout de même paniquer.
Pour afficher ces sources de peur, nous afficherons un radar qui affichera la position des
loups par rapport aux moutons.
5
Mad Sheep par 2difficult !
19.11.2004
2.2.2
InfoSup
Promo 2009
Les Groupes
L’autre point important du jeu est la gestion du troupeau. Comment peut on diriger
le troupeau ? Comment les moutons réagissent-ils au sein de ce troupeau ? Comment le
troupeau réagit fasse à un obstacle ? La réponse à ces questions modifiera la façon dont
on devra manier notre chien pour ramener le plus de moutons possibles. Un mouton aura
toujours tendance a rejoindre à rejoindre ses compagnons si ceux-ci sont à sa portée.
6
Chapitre 3
Les Règles du jeu
3.1
3.1.1
Le Mode Solo
But
En mode solo, vous devez trouver le bon équilibre entre moutons à sauver et temps à
respecter. Vous serez bien évidemment récompensé si vous réussissez à ramener un maximum de moutons en un minimum de temps. Vous devrez donc parfois faire des sacrifices
et d’autres vous occuper des loups qui s’attaquent au peu de moutons qu’il vous reste.
3.1.2
Spécificité du mode
– But : Hight Score
– Notre personnage : Le chien
– Adversaire : Temps, les loups
3.2
3.2.1
Le Mode 2 joueurs
But
Dans le mode deux joueurs, il n’y a plus de contrainte de temps. Le but est simplement
cette fois de ramener plus de moutons que l’ordinateur. Lorsque tous les moutons sont dans
l’enclos, le jeu est terminé. Jamais un même mouton ne pourra être sous la protection de
deux chiens en même temps. C’est pour cela que lorsque l’on sera assez près d’un mouton,
celui-ci n’obéira qu’à nous. En revanche, si on s’éloigne un peu trop de lui, l’adversaire
pourra parfaitement nous le voler.
3.2.2
Spécificité du mode
– But : Ramener plus de mouton que l’ordinateur
– Notre personnage : Le chien
– Adversaire : Un autre chien
7
Mad Sheep par 2difficult !
19.11.2004
3.3
3.3.1
InfoSup
Promo 2009
Le Comportement des unités
Le Gentil toutou
Son Rôle
C’est le personnage principal du jeu. Il permet de diriger le troupeau de moutons et
constitue une sorte de protection face à la menace incarnée par le loup. Aussi, le chien doit
aller très vite : plus il perd de temps à se balader à droite, à gauche, plus son troupeau
risque la mort à cause du loup.
La Gestion du troupeau
Plusieurs moyens nous sont offerts pour nous permettre de diriger le troupeau. Nous
pouvons simplement tenter de le diriger en le "poussant" ou bien en aboyant. Cette dernière
option, bien que plus efficace, a le défaut d’effrayer le troupeau. Il faudra donc en faire usage
avec modération. Dans un soucis de jouabilité, il faudra tout de même limiter le niveau
de peur que cela provoque car le joueur doit toujours être capable de diriger son troupeau
comme il l’entend.
La Fatigue
Un chien qui court dans tous les sens, ça se fatigue vite... et oui, plus le chien court
vite et longtemps, plus il se fatigue. De ce fait, il court de moins en moins vite. Il faut donc
savoir préserver la condition physique du chien sinon, les pauvres moutons qui se trouvent
à l’autre bout du troupeau risquent de ne pas survivre très longtemps...
3.3.2
Les Méchants loups
Les loups et le chien sont des opposés, des ennemis. Ils essaient par tous les moyens
possibles de manger les moutons tout en évitant le chien. De plus, ils sont rapides et rusés.
3.3.3
Le Troupeau de moutons
Son déplacement
Comme nous l’avions introduit, la bonne gestion du mouvement du troupeau est primordiale pour le succès du jeu. C’est pour cela que nous y accorderons une grande importance
sur la part totale de développement.
Nous ne pouvons pas considérer les moutons un à un puisque cela ne correspond pas
à la réalité. Les moutons ont tendance à rester groupé. C’est cet aspect que l’on devra
retrouver dans le jeu. Il ne faut pas pour autant que le troupeau soit un bloc compact et
indissociable sinon il n’y aurait pas d’intérêt au jeu. C’est pour cela que lorsque le troupeau
rencontrera des obstacles, il pourra se dissocier, créant deux groupes plus petits et qui n’ont
du coup, plus la même tolérance à la peur.
La Gestion de la peur
Comme nous l’avons déjà dit, la peur est l’élément clé du jeu et elle mérite que nous
nous penchions dessus avec intérêt. Nous allons répondre à plusieurs questions pour cerner
véritablement quels sont nos besoins :
– Le loup : il est l’une des causes principales de peur chez les moutons. Plus le loup est
près et plus le troupeau est effrayé.
8
Mad Sheep par 2difficult !
19.11.2004
InfoSup
Promo 2009
– L’obscurité : Si l’on traverse une zone sombre, le niveau de stress des moutons augmente.
– La mort : Un mouton qui voit un autre de ses compagnons mourir panique.
– Les aboiements du chien : Heureusement, le chien est là pour défendre ces pauvres
moutons sans défense. La présence du chien près d’un mouton, s’il n’aboie pas, a
donc un effet positive sur le stress du mouton : il les rassure. Cependant, si le chien
aboie de façon répétitive, les moutons vont tout de même paniquer.
3.4
Les Items spéciaux
Que serait un jeu sans des bons bonus qui nous sauvent la mise dans les moments
critiques ? C’est pourquoi nous vous proposons en avant première :
Le "Mouton d’or"
Le "Mouton d’or" n’est pas un mouton en or (désolé...) mais a la même valeur. Si le
chien trouve le mouton d’or, la jauge de peur de tous les moutons est remise à zéro. Quoi
de plus utile quand les trois quarts du troupeau sont sur le point de mourir de peur à cause
de ce méchant loup ? !
Le "Mouton d’attaque"
Ce bonus permet à un mouton du troupeau de défendre au même titre que le chien,
pendant 2 minutes, le reste du troupeau. C’est très utile, surtout quand le troupeau de
mouton est très éparpillé... Amusant de voir un mouton de berger non ?
Le "Nonosse"
Si le chien trouve l’un des trois os disposés sur le plan de jeu, il sera à nouveau en pleine
forme et pourra courrir aussi vite qu’au début de la partie.
Bien d’autres encore
Un bonus qui enlève des secondes à votre temps total ; un bonus qui stoppe tous les
moutons, vous permettant de les replacer comme bon vous semble . . .
9
Chapitre 4
Les Aspects techniques
4.1
4.1.1
Le moteur graphique
Pourquoi DirectX ?
Bien que DirectX puisse sembler obscur au premier abord, l’envie de créer un jeu avec
des outils vieillissants nous a franchement repoussé. Certes l’utilisation de DirectX requiert
un investissement bien plus important lors de la construction des fondation de notre jeu,
mais une fois ces fondations mises en place, la supériorité de DirectX sur OpenGL se fera
alors sentir. De plus, le fait que certaines personnes du groupe est déjà des connaissances
en programmation permet d’appréhender le code plus facilement.
Enfin, si nous avons également choisi DirectX, c’est que nous avons également trouvés
facilement tous les outils nécessaires (en l’ocurrence les headers) pour programmer en
DirectX sous Delphi. Le projet JEDI nous met en effet à disposition l’API de microsoft
pour Delphi, et ce, dans sa dernière version à savoir la 9.0c.
4.1.2
Qu’est-ce-que le "Cell Shading" ?
Pour le mode de représentation, nous afficherons un style graphique qui colle le plus
avec l’univers cartoon du jeu : le cell shading. Ce mode de rendu se rapproche d’un style
dessin animée grace à l’affichage des traits de délimitations des polygones, à l’utilisation de
couleurs criardes et à l’utilisation d’applat de couleur étendu. Nous ne passerons cependant
pas trop de temps au développement de cette aspect du graphisme car notre but reste
d’avoir un jeu amusant à jouer, la beauté ne venant qu’en seconde position.
4.1.3
Le but minimum
Notre moteur graphique devra être assez bien optimiser pour permettre l’affichage de la
map, de loups, d’un chien mais surtout d’un nombre important de moutons. Nous devons
donc veiller à ce que l’utilisation de la mémoire se fasse de la meilleur des façons possibles.
Le but rechercher étant évidemment d’avoir un affichage fluide avec les cartes graphiques
que l’on trouve en ce moment sur le marché (GeForceFX 5200). Une configuration moyenne
sera requise pour faire tourner le jeu. J’entends par configuration moyenne un PC tournant
à 1.4 GHz et possédant 256 ram.
10
Mad Sheep par 2difficult !
19.11.2004
4.2
4.2.1
InfoSup
Promo 2009
Et la physique dans tout ça ?
Qu’est ce qu’un moteur physique ?
Dans un jeu vidéo, une grande partie des objets représentés à l’écran est dynamique,
c’est-à-dire que leurs positions sont constamment en train de bouger. C’est le travail du
moteur physique. Il devra positionner correctement tous les éléments de la scène en fonction
de leurs propriétés (vivants ou non, leurs sens de déplacement, leurs vitesses...). Le moteur
physique ne doit en aucun cas s’occuper de l’affichage propre des éléments. Il ne fait que
travailler sur des données qu’il redéfinira en fonction des actions du joueur ; ces données
seront, par la suite, envoyées au moteur graphique.
4.2.2
La Physique fondamentale
Dans Mad Sheep, nous évoluons dans un monde soumit aux mêmes lois physiques que
le monde dans lequel nous vivons. Il faudra donc tenir compte des facteurs suivants :
– Le Poids : Voici la première force qui s’appliquera aux objets de notre scène. Elle
devra ramener un objet sur le sol sans pour autant que l’objet traverse le sol.
– La Vitesse : Selon que l’on marchera plus ou moins vite, on mettra plus ou moins de
temps à s’arrêter.
– Les Collisions : Deux objets ne peuvent pas rentrer l’un dans l’autre (Cf. 4.2.3 Gestion
des collisions).
Comme en physique, le mouvement sera représenter par son vecteur vitesse ainsi que son
vecteur accélération, nous permettant de gérer aux mieux les besoins de changement de
direction, de ralentissement etc... que certains événements telles que les collisions peuvent
demander.
4.2.3
La Gestion des collisions
Comme dans tout jeu, deux objets ne pourront se superposer. Certains cas seront
simples à mettre en place tels que la collision du chien avec les arbres ou encore celle du
loup avec les moutons car elle ne fait pas toujours intervenir qu’un seul objet avec un
autre. Le point qui réclamera toute notre attention sera la collision du troupeau avec les
autres éléments du monde. Imaginons que le troupeau, composé rappellons-le de moutons
qui peuvent se séparer, rencontre un arbre. Il va nous falloir créer un algorithme qui nous
permettra de faire en sorte que notre troupeau se divise en deux groupes telle une vague
s’écrasant sur un rocher, et sans toutefois rendre impossible la reconstitution du groupe
par la suite.
4.3
4.3.1
Le Pathfinding
Pourquoi utilise-t-on le Pathfinding dans Mad Sheep ?
Pour le développement de Madsheep, nous avons éprouvé la nécessité d’utiliser un pathfinder. C’est un algorithme qui permet de trouver le plus court chemin entre deux points.
En effet, dans notre jeu, nous allons appliquer cet algorithme à toutes les unités (personnages) nécessitant un comportement intelligent face à un obstacle. Par exemple, le loup
devra trouver le chemin le plus court pour atteindre les moutons tout en évitant les arbres,
les plans d’eau, etc... Les moutons aussi en auront besoin, par exemple, lorsque le chien aura
attrapé le "mouton d’or". Le mouton adoptera un comportement indépendant par rapport
au chien et devra donc gérer, seul, son parcours pour défendre les moutons qui l’entourent
11
Mad Sheep par 2difficult !
19.11.2004
InfoSup
Promo 2009
mais aussi pour ne pas rester bloqué devant un simple arbre ! L’utilisation du pathfinding
est donc une nécessité, c’est pourquoi nous avons dû faire un choix dans l’algorithme du
pathfinding (car il en existe plusieurs).
4.3.2
L’Algorithme de parcours A-star (A*)
Pourquoi ? Nous avons fait le choix d’utiliser l’A* parmi beaucoup d’autres (algorithme
de Dijkstra, par exemple). Pourquoi ce choix ? L’algorithme de Dijkstra est la base de
la meilleure solution que l’on peut trouver dans la majorité des livres d’algorithmique.
L’algorithme A*, quant à lui, reprend les mêmes principes mis à part que cet algorithme
est plus heuristique, c’est-à-dire que l’on se doute que dans la majorité des cas, la direction
à prendre est en général la direction de la sortie, ce qui est très pratique notamment s’il
n’y a aucun obstacle entre le point de départ et la sortie. Ainsi, nous avions le choix entre
deux grands algorithmes très performants et nous avons opté pour le développement de
la méthode A* dans l’espoir de donner à notre jeu tous les outils nécessaires pour une
utilisation optimale.
Comment ça marche ? Nous n’allons pas rentrer, volontairement, dans les détails de
la mise en oeuvre de la méthode A* car ce n’est pas l’objectif principal de ce cahier des
charges. C’est pourquoi nous allons seulement donner les (très) grandes étapes de sa mise
en oeuvre. Avant tout, il faudra effectuer un mapping, c’est-à-dire diviser la carte en cases,
qui vont constituées les noeuds de notre pathfinding. Ensuite, l’algorithme va trouver le
chemin optimal et retournera au personnage le chemin à suivre pour atteindre son but en
évitant les obstacles.
4.4
Les Entrées/Sorties
DirectInput est le composant de DirectX qui permet de gérer les entrées à partir du
clavier, d’un joystick, ou d’une souris. Contrairement aux possibilités offertes par la programmation Windows en Win32, DirectInput nous permettra de dialoguer directement
avec le périphérique choisi. Pour le clavier, il ne s’agit plus de déterminer quelle touche a
été actionnée, mais bien d’interpréter les signaux du clavier que DirectInput nous transmet.
Pour la souris, il ne s’agit plus de connaître sa position mais bien de déterminer si elle a
bougé et dans quel sens. Heureusement, DirectInput nous offre des routines qui vont nous
éviter un long travail d’interprétation. Cet accès direct aux périphériques permet d’offrir à
Mad Sheep une meilleure réactivité avec une latence qui s’avère minimale.
4.5
4.5.1
Un Environnement sonore adéquat
Pourquoi utiliser FMod ?
FMod est une API simple d’utilisation garantissant efficacité et performance. De plus,
FMod est totalement gratuite. Il s’adapte donc parfaitement aux besoins de notre projet
que nous allons détailler par la suite.
4.5.2
Nos Besoins
Dans Mad Sheep, il faudra pouvoir :
– Lire des musiques de plus ou moins longue duree ;
12
Mad Sheep par 2difficult !
19.11.2004
InfoSup
Promo 2009
– Lire des samples 1 .
Aussi, il faudra pouvoir superposer un certain nombre de sons sans que cela surcharge notre
environnement.
Le Lecteur MP3
Le joueur aura accès a une playlist dans lequel il pourra lire ses musiques préférées
pendant le jeu. La playlist sera située dans les options sonores au lancement de Mad Sheep.
Options d’écoute
Le joueur pourra régler séparément le volume de la musique d’ambiance, ainsi que le
volume des bruitages. Evidemment, il pourra aussi tout désactiver.
4.6
4.6.1
L’Editeur de carte
L’Intérêt
Dans Mad Sheep, notre chien devra parcourir plusieurs niveaux pour arriver à être le
meilleur chien de berger. Donc il va falloir que nous définissions différentes cartes de jeu.
L’intérêt d’un éditeur de carte est de pouvoir modéliser en 2D (vue du dessus) le monde
qui sera par la suite modélise en 3D par le moteur graphique.
4.6.2
Ses spécificités
Notre éditeur de carte sera capable de gérer :
– les reliefs du monde ;
– la position de départ des unités mobiles (chien, loup et troupeau de moutons) ;
– la position des unités statiques (arbres, enclos, . . .) ;
– la matière des différentes zones du monde (eau, sable, herbe, . . .).
Ces données seront regroupées dans un tableau pour les besoins du moteur graphique.
1
Un sample est une courte piste audio
13
Chapitre 5
Les Ressources matérielles
5.1
Le Hardware
Configuration technique du matériel utilisée par le groupe
critère →
élève : ↓
Processeur
RAM
Carte graphique
Lefebvre Thomas
Pentium 4 HT : 3.4GHz
512 Mo
ATI RADEON 9600XT 128Mo
Levens Jérémy
Athlon : 1GHz
Pentium 4 HT : 3.06GHZ
384 Mo
512 Mo
ATI RADEON 4200VE 32 Mo
ATI RADEON 64 Mo
Pinto Antonio
Athlon : 1.4GHz
Pentium-M : 1.5GHz
512 Mo
512 Mo
GeForce 4FX 5200 128 Mo
Ati Mobility Radeon
Menet Benoit
Athlon : 1.4Ghz
Pentium 4C : 2.6Ghz
1 Go
GeForceFX 5600
ATI RADEON 9800 256Mo
14
Mad Sheep par 2difficult !
19.11.2004
5.2
InfoSup
Promo 2009
Le Budget
Type de matériel
Logiciel 3DSMAX 7
Logiciel FlashMX 2004
Logiciel DreamweaverMX 2004
Abonnement Internet
Livre DirectX
Livre Delphi 7.0
Encre Imprimante Noir
Encre Imprimante Couleur
Packet de 500 feuilles
Quantité
2
1
1
4
3
3
5
2
3
TOTAL pour un petit jeu
15
Prix
5000 e par license
839 e par license
479 e par license
120 e par mois
26 e par livre
20 e par livre
75 e
70 e
15 e
12496 e
Chapitre 6
Le Site web : 2difficult.free.fr
6.1
Présentation du site
Notre site web a pour but premier de donner envie de télécharger le jeu. C’est en
quelques sorte notre première publicité. C’est aussi un site qui doit permettre de s’informer
sur tout l’aspect technique du projet.
Mad Sheep se jouant dans un environnement cartoon, le site est en flash, totallement
en accord avec ce type de jeu. Voici les parties du site :
6.1.1
Les News
Pour permettre aux gens de toujours se tenir assez informés des dernières nouveautés
concernant le projet, un système de news dynamique (Codé en PHP/MySQL) est présent
sur le site. En plus de cela, pour permettre à un des quatres membres du projet de poster
une news depuis n’importe ou, une partie ’Admin’ présente sur le site permet la création
de nouvelles news.
6.1.2
Soutenances
La partie de soutenance est assez importante puisqu’elle permettra d’une part l’affichage
et le téléchargement des cahier de soutenance mais aussi la visualisation dans son intégralité
par les ’fans’ de l’avancement du projet.
6.1.3
Téléchargements
Comme son nom l’indique, nous mettrons dans cette partie du site les fichiers disponibles en téléchargement. Parmis ces fichiers, il y aura :
– Les screenshoots : pour donner envie à un visiteur qui passait par là, d’installer Mad
Sheep, rien de tel que l’affichage de quelques screenshot bien choisis ;
– Le cahier des charges : pour se faire une idée générale du jeu sans avoir à l’installer,
rien ne vaut un bon cahier des charges disponibles également dans cette partie ;
– Le jeu : la partie tant attendu qui permettra de télécharger d’une part les sources du
projet et d’autre part les exécutables dans leurs dernières versions.
6.1.4
L’équipe
Que serait un projet sans une équipe de développeurs hors du commum derrière ? La
présentation de l’équipe permet entre autre la visualisation de la configuration matérielle
de chaque membre ainsi que leur présentation respective.
16
Mad Sheep par 2difficult !
19.11.2004
6.2
6.2.1
InfoSup
Promo 2009
Les Ressources
Logiciels
Pour programmer ce site web, nous avons eu recours a FlashMX 2004 pour la création de
l’interface principale et à DreamweaverMX 2004 pour la création des scripts communiquant
avec la base de données.
6.2.2
Hébergement
Le site est hébergé par free, qui nous met a notre disposition un FTP de 100 mégas
ce qui comble très largement nos besoins. Nous avons jugé inutile la location d’un nom de
domaine.
17
Chapitre 7
Le Planning des soutenances
Site web : Le site internet du groupe disponible en ligne http ://2difficult.free.fr sera
régulièrement mis à jour par l’ensemble des membres du groupe. Pour le reste :
18
InfoSup
Promo 2009
Mad Sheep par 2difficult !
19.11.2004
1re soutenance
2e soutenance
Moteur physique (III)
Direct Input (I)
3e soutenance
Moteur physique (IV)
Menu/options
Soutenance finale
Tableau de la répartition des charges par soutenance
période →
élève : ↓
Moteur physique (II)
Packaging
Moteur physique (IV)
Moteur Physique (I)
Moteur 3D (IV)
Mode 2 joueurs
Lefebvre Thomas
Moteur 3D (III)
Moteur physique (III)
Mode d’emploi
Moteur 3D (IV)
Pathfinding (II)
Moteur son (I)
Moteur 3D (II)
Moteur Physique (II)
Pathfinding (III)
Moteur son (II)
Pathfinding (I)
Moteur 3D (I)
Editeur de cartes (II)
Pathfinding (II)
Levens Jérémy
Editeur de cartes (I)
Moteur 3D (I)
Pathfinding (III)
Moteur son (II)
Mouvement des unités
Pinto Antonio
Menet Benoit
19

Documents pareils