Projet Infosup 1999-2000

Promo 2004
 

42 Minutes Pour Vivre






Codeurs:

Stordeur Guillaume (Leader)
Thibault Alexandre

Introduction :

Par une nuit sans lune, un énorme transport C-5A Galaxy touche le sol de l’Arabie Saoudite puis roule vers un hangar à l’écart, gardé par des agents de la DIA (Defense Intelligence Agency) des Etats Unis. Un grand objet noir passe du Galaxy au hangar. Sous les lampes de nuit rouges, le bruit électrique d’ailes qui se déplient est couvert par un grondement de camions citernes qui pompent du kérosène pendant que des mécaniciens trempés de sueur chargent deux énormes missiles dans les soutes. Le Galaxy reprend son envole puis s’éloigne peu à peu alors qu’un pilote de l’Air Force grimpe dans l’engin noir resté à terre, coiffe son casque, et entame des vérifications d’usages… Quelques instants plus tard, un sifflement aigu et puissant remplit le hangar. Une étrange forme ronde sort de la sombre entrée de celui-ci et s’engage sur la piste. Une main pousse la manette des gaz au maximum. Dans un rugissement, les réacteurs font décoller l’appareil. Une nouvelle mission furtive a commencé.

#Objectifs de la mission : destruction de points militaires stratégiques français et sacrifice de civils dans la zone Sud-Est de l’Hexagone à l’aide de 2 charges nucléaires de dernière génération transportées par un avion furtif de type F-19.

#Temps de la mission : 42 minutes après que l’appareil ait quitté le sol.

#Résultat de la mission : succès.

(A noter que cette mission avait été auparavant envisagée par une attaque de la France par le Finistère mais que malheureusement, les conditions climatiques faisaient perdre toutes furtivité à l’appareil. Deux jours de pluie dans l’année, c’était bien trop long..:)
L’incendie nucléaire ravagea les villes du Sud-Est de la France et une partie de la Corse fut touchée par le "rayon de la mort "… Les pertes humaines et matérielles furent énormes. Trop pour que le gouvernement français n’entame pas une riposte contre son agresseur…
Avant une frappe nucléaire, il faut avant tout pouvoir s’assurer que l’ennemi ne ripostera pas.
Des troupes de soldats français furent donc envoyés contre les Etats Unis pour pouvoir contrôler leur système de défense par le sol et d’occuper des points stratégiques. L’ennemi, décida de faire de même…
Une guerre terrestre commença donc opposant deux forces ayant un objectif commun : éliminer le potentiel de dissuasion de l’autre par la conquête de territoires et le contrôle technologique…
 
 

Nous avons donc projeté de réaliser un jeu de type "Starcraft-Like " c’est-à-dire un jeu en fausse 3D en vue aérienne (en 2D avec des dessins en 3D fixe) qui proposera au joueur le contrôle des troupes d’une des deux forces présentées ci-dessus. Le but du jeu est d’élaborer une stratégie par la construction de bâtiments spécialisés offrant diverses options et par le contrôle des troupes terrestres et aérienne. Cette stratégie devra être suffisamment élaborée pour que le joueur puisse détruire l’ennemi et ainsi passer de missions en missions.

Buts :

Passionnés par le jeu de stratégie Starcraft, les trois membres du groupe de projet furent immédiatement d’accord pour se lancer le défi de réaliser un tel jeu de stratégie (l’idée d’un scénario solide et de séquences vidéos intégrées au jeu étant oubliée pour cause de temps de réalisation trop court).

Notre but principal est donc de créer un jeu de stratégie muni d’une interface simplifiée pour le joueur. Nous allons également tenter de créer une atmosphère de guerre par l’utilisation de musiques entraînantes et d’effets sonores et graphiques appropriés pour plonger le joueur dans un milieu mélangeant à la fois le chaos et amusement intense.

Intérêts :

Un projet d’une telle envergure n’a jamais été tenté auparavant par les membres du groupe et c’est une excellente occasion pour nous d’élargir nos connaissances en matière de programmation en Delphi.
L’utilisation de Directx pour la création et la gestion du moteur 2D du jeu ainsi que MIDAS pour le traitement sonore est chose nouvelle pour chacun d’entre nous.
L’intervention dans le jeu de l’Intelligence Artificielle (IA) pour les mouvements des troupes dans un décors accidenté et pour une réaction sensée du camp adverse (contrôlé par la machine en mode "un joueur "), va pouvoir nous procurer une solide introduction à une des parties les plus complexes de l’univers des algorithmes…

Descriptions techniques et méthodologiques :
 

Editeur de cartes :

Le jeu fonctionne sur des cartes crées à partir de petites images(Tiles) de 32x32 pixels. Un éditeur de cartes est donc nécessaire pour la création de ces cartes, qui serait une tache difficile a accomplir à la main.
Il sera aussi possible de positionner des unités sur la carte, afin de faire des scénarios.
L’éditeur de cartes sera un programme a part, mais qui utilisera les mêmes ressources images que le jeu.
Interface Graphique : Le jeu se déroulera en plein écran et uniquement en 640x480x16bit pour raison d’optimisation de mémoire et de vitesse de jeu ( l’augmentation de la résolution provoque l’augmentation d’objets et d’unités a dessiner a chaque frame et les performances en seraient vite affectées.)
L’interface graphique sera composée de menus pour le démarrage.
Ensuite la carte sera affichée à l’écran et le joueur pourra scroller dans toutes les directions de l’écran jusqu’aux limites de la carte. Le décor est en fausse 2d, mais les images sont en perspective pour donner l’illusion d’avoir du relief.
L’API de programmation DirectX sera utilise, notamment DirectDraw. Il y aura un écran virtuel sur lequel tout sera dessine avant de le flipper vers l’écran.
Les unités, les bâtiments, et les décors seront dans des fichiers au format bmp et seront compressés dans plusieurs archives.
Gestion du Son : Les sons et musiques seront gères par la librairie MIDAS. La gestion sonore supportera plusieurs canaux, afin de pouvoir entendre plusieurs sons en même temps. Les unités auront tous des bruits (au format wav) appropries associes. Les musiques de fond seront des mods au format xm, s3m, ou mod, et le joueur pourra les changer et les jouer pendant le jeu. Gestion Relationnelle des troupes et des bâtiments : Il faudra définir un arbre de droits de construction pour les unités et les bâtiments. Par exemple, on ne peut pas construire des chantiers aériens avant avoir un bâtiment ingénieur aéronautique, on ne peut pas construire de missiles nucléaires sans avoir des dépôts d’uranium. Gestion Dynamique des troupes et des bâtiments : Les unités pourront se déplacer dans plusieurs directions sur la carte, et réaliser des actions, par exemple, tirer sur l’ennemi, patrouiller des zones spécifies. Elles pourront aussi évidemment se faire tirer dessus et mourir.
Les bâtiments pourront être construits sur certaines parties du terrain et détruits.
Intelligence Artificielle générale :

                    Des algorithmes de parcours de chemins devront être implémentes.
                    Etroitement lié à la gestion dynamique des troupes ; l’IA des unités :
                    Les unités devront avoir un minimum d’auto gestion, histoire de ne pas avoir d’unités qui restent
                    sans bouger et sans tirer alors que l’ennemi est en train de les canarder.
                    Le joueur pourra choisir le mode de combats de ses troupes ; trouillard, défensif, offensif, acharne ou neutre.

Gestion d’un ennemi a intelligence artificielle :

Le joueur doit pouvoir jouer tout seul contre l’ordinateur, donc il y aura une armée entièrement dirigée par une intelligence artificielle. Cette armée sera évolutive et pourra répondre et réagir aux attaques de l’armée du joueur. Elle sera aussi capable d’élaborer des stratégies par rapport aux informations qu’elle traitera pendant la partie. Exemple, si elle voit un nombre élevé d’un certain type d’unité chez le joueur, elle fabriquera plus du type d’unité connu d’être efficace contre ces unités. Réseau : Si temps le permet, une option jeu en réseau sera implémentée. Le code du projet jusqu'à la sera élastique pour pouvoir supporter le réseau sans grand changement de structure. C’est a dire : en implémentant nos algorithmes, on a toujours en tête le futur gestion du mode multijoueur. Répartition Des Taches :

                                               Guillaume : Moteur 2d, Editeur de cartes, graphismes pour les cartes, affichage et gestion des cartes,
                                                 Gestion de DirectDraw, chargement des images, Intelligence Artificielle, Réseau.

Alexandre : Gestion Dynamique et Relationnelle des troupes et bâtiments, graphismes,
Intelligence Artificielle, Réseau.

Documentation : Sources du net et livres traitant de l’IA, la programmation en Delphi et programmation de jeux.
Echéancier
Janvier
Guillaume, Alexandre

Recherche de documentations sur la programmation de jeux 2D. 

Recherche d’aides sur Directx. 

Récupération de graphismes et de sons.

Février
Guillaume : Réalisation du moteur 2D

Alexandre : Gestion des mouvements des troupes.

Mars
Guillaume : Réalisation de l’éditeur de cartes.

Alexandre : Gestion relationnelle des unités et des bâtiments.

Avril
Guillaume, Alexandre :

Recherches sur les algorithmes d’Intelligence Artificielle nécessaires au unités du jeu.

Début de l’IA générale

Mai
Guillaume : Gestion du mode multijoueurs et synchronisation.

Alexandre : Fin de l’IA générale et gestion d’un ennemi en IA.

Juin
Guillaume, Alexandre

Mises au point diverses, debugages…