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