Jeu Risk Star Wars
Transcription
Jeu Risk Star Wars
Risk Star Wars Antoine BELIN (belin_a) Christopher TAUPIN (taupin_c) Patrice DE SAINT STEBAN (de-sai_p) Thibault ROBIN (robin_t) le 19 novembre 2004 1 Unbound Value Star Wars Risk Première Soutenance Table des matières 1 Aperçu du Projet 1.1 Présentation Générale du Jeu . . . . . . . . . . . . . . . . . . 1.2 Présentation du Travail Collectif . . . . . . . . . . . . . . . . . 2 Règles et Aspects du Jeu Visés 2.1 2.2 2.3 2.4 Menu du Jeu . . . . . . . . . . . . . . Répartition et déplacement des Troupes Phases de Combat . . . . . . . . . . . . Fin de la Partie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constantes, Types et Enregistrements . . . Procédure de Distribution Planétaire . . . Fonction-Procédure d'Achage Planétaire Procédure Génèse . . . . . . . . . . . . . . Répartition des unités . . . . . . . . . . . . Procédure de combat (en cours) . . . . . . Finalité du Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 La Carte Galactique 3.1 3.2 3.3 3.4 Création . . . . . . . . . . . . . Déplacement . . . . . . . . . . . Achage des Calques et Sprites Le Panneau de Contrôle . . . . . . . . . . . . . . . . 4 Les Premières Fonctions 4.1 4.2 4.3 4.4 4.5 4.6 4.7 . . . . 3 3 3 4 4 5 6 6 7 7 9 9 9 11 11 12 13 13 16 16 18 5 Début de création de notre futur site 19 6 Découvertes des Diérent Logiciels Utilisés 20 6.1 6.2 6.3 6.4 6.5 Latex . . . . . . . . . . . . . . . . . . . . . . . . . . . Easy PHP / PHP coder . . . . . . . . . . . . . . . . Photoshop CS / Image Ready CS / Corel Painter IX 3DSMax . . . . . . . . . . . . . . . . . . . . . . . . . Borland Delphi 7 . . . . . . . . . . . . . . . . . . . . 7 Conclusion et prévisions pour la 2e soutenance EPITA 2 . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 20 20 21 22 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance 1 Aperçu du Projet 1.1 Présentation Générale du Jeu Le jeu en cours de développement est une adaptation du célèbre jeu de société Risk en version Star Wars. Il comprend à première vue des règles similaires au jeu de société version Seigneur des Anneaux. En bref, ce jeu doit se dérouler sous forme de jeu de plateau. Le but du jeu est de conquérir les diérents secteurs de la galaxie ou de remplir des missions données en début de partie. La conquète des planétes se fait en lançant aléatoirement des dés par exemple, et le résultat marquera la victoire ou la défaite du joueur, suivant les règes de combat établies. 1.2 Présentation du Travail Collectif Le groupe s'est scindé en deux sous-groupes an de pouvoir avancer plus rapidement sur les principaux points de travail. Cela présente des avantages, mais aussi des inconvénients qu'il nous a fallu maîtriser. Avantages par la rapidité d'exécution et par son ecacité, et inconvénients par la spécialisation des deux sous-groupes dans certains domaines et non dans le tout : ainsi il faut donc que chacun prenne connaissance des parties avec lesquelles il n'est pas familier, et sur lesquelles il n'a pas travaillé. Durant la période précédent la première soutenance, Antoine a réalisé un chier LaTeX sur les visées du jeu, explicitant la forme et les aspects clés. Patrice, qui a avancé plus rapidement que les autres membres du groupe, a mis en place une ébauche de site et a avancé sur la partie programmation du jeu en réalisant quelques fonctions principales de base. Christopher s'est imprégné des diérents logiciels qu'il devra utiliser par la suite, et a cherché du côté de l'implémentation et de l'initialisation de DirectX sous Delphi, par l'intermédiaire de DelphiX. Enn, Thibaut a recréé une belle carte de la galaxie, ce qui nous servira de support principal en arrière plan du jeu, et au niveau de certaines règles indispensables. Le reste fut mis au point en groupe, comme l'accord sur les règles, ou autres réglages, et au niveau de l'organisation du groupe, régulièrement : tous les mardi après-midis. EPITA 3 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance 2 Règles et Aspects du Jeu Visés Nous avons cherché à harmoniser nos points de vue sur les aspects graphiques du jeu. Pour ce faire nous avons décidé de mettre au point un autre chier en format LaTeX. Antoine a rédigé ce chier sur lequel il a exprimé sa propre vision du jeux. Puis ce chier a été révisé par les autres membres du groupe et a été remanié en conséquence. Ce chier permet d'éviter de se poser des questions inutiles et de pouvoir se concentrer sur les questions de fond. Il permet également une progression plus rapide pour toute la partie graphique de notre jeux. 2.1 Menu du Jeu Après le lancement du jeu, le menu principal de commande du jeu s'achera. Il comportera diérents onglets, à savoir : Mode Solo : - Conquète de la Galaxie - Rejoindre l'Alliance Rebelle - Rejoindre l'Empire Galactique - Campagne - Rejoindre l'Alliance Rebelle - Rejoindre l'Empire Galactique - Retour Mode Multijoueurs : - Machine Unique - Rejoindre l'Alliance Rebelle (grisé si déjà choisi) - Rejoindre l'Empire Galactique (grisé si déjà choisi) - Protocole TCP-IP - Rejoindre l'Alliance Rebelle (grisé si déjà choisi) - Rejoindre l'Empire Galactique (grisé si déjà choisi) - Retour Options Quitter le Jeu Deux joueurs seulement ont été prévus lors de la rédaction de ce chier. Néanmoins, la création d'autres joueurs pourrait se faire rapidement si nous avons terminé le jeux pour deux joueurs. EPITA 4 InfoSup B2 Unbound Value 2.2 Star Wars Risk Première Soutenance Répartition et déplacement des Troupes Optionellement, une cinématique s'enclenche lors du choix de l'onglet conquète, puis laisse place au jeu. Le joueur peut alors se familiariser avec la répartition aléatoire des diérentes planètes lui ayant été attribuées. Une fois ceci eectué, il doit cliquer sur un bouton achant Nouvelles Aectations, et le jeu lui donne alors l'obligation de placer le nombre de troupes xées lui étant attribué. Il apparaît alors dans ce que l'on appellera par la suite le cadran 1, une zone comportant le nombre d'unités disponibles, un emplacement modiable par le joueur an d'ajouter ou de soustraire le nombre d'unités voulues au nombre d'unités disponibles (impossible de soustraire plus que le nombre d'unités disponibles), un bouton de validation local, validant une répartition du nombre souhaité d'unités, le transférant vers la planète souhaitée. An de rendre la répartition possible, un seconde cadran du panneau de contrôle doit être présent : celui d'une planète sélectionnée directement sur la carte générale. Lors du transfert d'unités du cadran1 vers la planète, le transfert ne s'eectuera que dans un seul sens (cadran 1 vers cadran 2), pour éviter les téléportations de troupes de la planète vers la répartition, mais une annulation du dernier transfert sera néanmoins possible optionellement. Le joueur ne pourra plus répartir avant le prochain tour, lorsqu'il disposera de nouveau de renforts. Lorsqu'il a ni la phase de répartition, le joueur laisse alors la main à son adversaire. Une fois tous les renforts sans exceptions réparties, la phase se termine et le jeu passe à la phase suivante. Un système similaire sera instauré pour les transferts d'unités pendant le jeu, où les informations de répartition (cadran 1) sera remplacé par une autre série d'informations (les informations de la planète) dans le même cadran : les transferts se feront alors dans les deux sens. Cependant, un compteur interne permettra de geler avant le tour suivant les unités ayant déjà eectué un mouvement, et un autre permettra de garder au moins une unité sur la planète de départ. A chaque nouveau tour, les unités seront dégelées. Il en va de même pour les planètes lorsqu'une unité est sélectionnée : les planètes qu'elle ne peut atteindre seront grisées, et celles qu'il peut atteindre garderont leur teinte normale. Par ailleurs, il est nécessaire de laisser un intervalle, voir une validation de la part du joueur à chaque action de l'ordinateur, si il joue contre une IA. EPITA 5 InfoSup B2 Unbound Value 2.3 Star Wars Risk Première Soutenance Phases de Combat Le système de combat sera similaire à la répartition et au déplacement, à ceci prêt qu'il visera une planète adverse. Au moins une unité devra toujours rester sur la planète de départ, alors que les autres seront engagées dans l'arène des combats. Au terme d'un combat de dés entre les deux eectifs en présence, la planète cible changera ou non d'appartenance. De petites scènes video seront peut-être ajoutées optionellement, et aléatoirement. Par ailleurs, les phases de combat et de déplacement pourront s'entrelacer, car seule la contrainte des unités gelées permettra de mettre un terme aux actions du joueur, lorsqu'il n'aura plus de possibilités de déplacement. L'enchaînement des phases se déroulera de la manière suivante : Déploiement des renforts al- liés, Changement de Main, Déploiement des renforts adverses, Changement de Main, Déplacement et Attaques alliées, Changement de Main, Déplacement et Attaques adverses. 2.4 Fin de la Partie - En mode Conquète, la possession par un joueur de toutes les planètes de la galaxie entraîne la n de la partie. - En mode Campagne, l'accomplissement des objectifs spéciques attribués au joueur (humain ou IA), termine la partie. EPITA 6 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance 3 La Carte Galactique 3.1 Création Bienvenue dans l'univers mythique de Star Wars, alors que la célèbre carte s'ache devant vous, accompagnée des planètes les plus célèbres de la galaxie. La carte comprend une galaxie (pour information la galaxie voisine Andromeda m31x), image de base de 2048 pixels sur 2077. En calques ont été rajoutés les planètes (dont la disposition est tirée des sources ocielles de lucaslm), les secteurs, dessinés arbitrairement an de les faire concorder à l'esprit du jeu, quelques noms des régions les plus connues, les cinq grandes routes commerciales et enn les liaisons entre les planètes. Ainsi, ces calques orent l'énorme avantage de modier rapidement et sans détérioration l'image générale : ils peuvent être supprimés, retouchés, ou insérés à volonté. EPITA 7 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance Voici une miniature de la carte EPITA 8 InfoSup B2 Unbound Value 3.2 Star Wars Risk Première Soutenance Déplacement Le déplacement s'eectuera soit : - En déplaçant le curseur sur les bords de l'écran - En cliquant sur un point spécique de la mini-map située dans un des coins du panneau de contrôle - En utilisant un des raccourcis pour se cibler sur un secteur spécique (optionel) - Dans le panneau de contrôle gureront des liens xés par le joueur vers les points clés de son empire (optionnel). 3.3 Achage des Calques et Sprites Les planètes seront comprises dans le chier racine sous forme de sprite, an d'être achées convenablement suivant les aléas du jeu. Lorsque par exemple une unité sera sélectionnée par le joueur, seules les planètes accessibles par l'unité serotn achées dans leur forme normale, alors que les autres seront grisées. Les noms des planètes existeront sous plusieurs couleurs, pour l'instant rouge pour l'Alliance Rebelle, et bleu pour l'Empire Galactique. Suivant l'appartenance de la planète, ils seront donc achés sous l'une ou l'autre couleur. Les liaisons seront probablement intégrées au fond de carte, n'ayant pour l'instant pas besoin d'être modiables dans le jeu. Ils resteront néanmoins sous forme de calques tant que la carte et le système de jeu ne seront pas dénitifs. Il en ira de même pour les limites de secteurs et les noms de régions pour le moment. 3.4 Le Panneau de Contrôle Résultant des mises au points du groupe concernant les modalités de jeu, une ébauche du concept d'un panneau de contrôle dans le jeu a germé dans nos esprits. Celui-ci comprendra de nombreuses cases dynamiques non modiables directement par le joueur, et d'autres cases achant certains points clés des sélections du joueur. Les cases non modiables serviront à l'achage de données variables apportant certaines indications au joueur, comme le nombre de planètes sous contrôle, ses eectifs... Sera comprise dans ce panneau de contrôle une mini carte représentant la totalité de la galaxie en taille réduite, à partir de laquelle le joueur pourra se déplacer rapidement d'un point à un autre, sans passer par la méthode de base à partir du curseur. EPITA 9 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance D'autre part, ce panneau de contrôle risque de masquer une partie des bords de la carte, c'est à dire que le délement de la carte devrait se stopper une fois un des bords atteints (le bas en particulier, où le principal du panneau de contrôle sera certainement le plus conséquent) : ce bord de carte serait alors masqué à l'écran par le panneau de contrôle, et il n'y aurait pas moyen pour le joueur de le démasquer, étant arrivé au bord . . .An d'éviter ce genre de problème domageable, de plus aggravé par le fait que certaines planètes se situent assez prêt des bords de la carte, nous avons décidé d'encadrer la carte par une bande noire ou de couleur adaptée et peu voyante, susamment large pour laisser une marge entre le panneau de contrôle et les bords de carte. EPITA 10 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance 4 Les Premières Fonctions L'ébauche de jeu programmé jusqu'à maintenant fonctionne sous mode console. Ainsi, les fonctions de base (exposées par la suite dans l'ordre d'implémentation sous Delphi 7) sont faciles à traiter, et à mettre en place, et le travail en est restreint à l'implémentation du code même. De cette manière, le travail a pu être centré sur les diérentes fonctions de départ du jeu sans prendre en compte une quelconque interface graphique inutile pour le moment. Il faut préciser que ces fonctions sont créées indépendament des fonctions d'initialisation graphique à partir de DirectX, qui, elles, permettront de lancer notre propre achage et de le lier par la suite aux autres fonctions du jeu. 4.1 Constantes, Types et Enregistrements Le nombre total de planètes sera xé à 60 : 60 est divisible par 2, 3 et 4, entraînant la possibilité d'une répartition des planètes entre 2, 3 ou 4 joueurs, ce qui conduit le nombre de joueurs maximum à 4. En revanche, nous ne savons pas encore si nous irons ne serait-ce jusqu'à trois joueurs, ni quelles factions pourront incarner les troisième et quatrième joueurs (nous hésitons encore entre le grand nombre de factions présentes dans l'histoire de Star Wars). Le nombre de liaisons par planète est xé à trois, car au delà, la carte devient une véritable toile d'araignée, et en dessous, le jeu risque de se bloquer, notamment dans le noyau galactique, où la concentration de planètes est conséquente. Un type enregistrement a été mis en place pour le moment, qui est le type T-planete. De la sorte, chaque planète se voit associer plusieurs variables, soit plus précisément 6 : - La première concerne le nom de la planète, de type string. - La seconde prend en compte l'abscisse de la planète sur la carte (utile à la sélection de la planète). Type integer. - La troisième prend en compte l'ordonnée de la planète sur la carte (complément à l'abscisse, utile à la sélection de la planète). Type integer. - La quatrième prend en compte un tableau des liaisons vers les planètes voisines désignées. C'est cette variable que suivra la fonction de déplacement des unités, an de savoir vers quelle planètes elles peuvent être EPITA 11 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance transférées. - La cinquième annonce soit le nom du joueur, de type string, ou le numéro du joueur, de type integer. - La sixième variable annonce le nombre d'unités présentes sur la planète. Pour l'instant, dans les fonctions codées jusqu'à maintenant, seules les première et cinquième variables ont été utilisées. Un tableau regroupant les soixante planètes a également été prévu pour la suite (Array of T-planete). T_planete = record //type de donnée pour mettre toutes nom : String; // les information sur les planete x : Integer; y : Integer; liaisons : array[1..NB_LIAISONS] of Integer; joueur : Byte; unite : Byte; end; T_tplanete = array[1..NB_PLANETE] of T_planete; 4.2 Procédure de Distribution Planétaire La procédure de distribution répartit les planètes entre les joueurs. Elle se lance donc dès le début d'une partie, et associe chaque planète à un joueur spcécique. Elle compte le nombre de joueurs, puis passe au joueur 1, lui associe une planète de manière aléatoire, puis passe au joueur 2, fait de même, et recommence jusqu'à ce qu'il ne reste plus de planète à associer. Cette procédure utilise deux boucles : l'une fait alterner les deux joueurs, l'autre, imbriquée, décompte les planètes attribuées. Procedure joueur_init(var Planete: T_tplanete; joueur: Byte); var n: Byte; i: Byte; m: Byte; p: Byte; begin Randomize(); p:= NB_PLANETE div joueur; EPITA 12 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance for n:= 1 to joueur do //boucle sur les joueurs for i:=1 to p do // cette boucle choisis a chaque boucle une planete begin repeat // boucle jusqu'a trouver une planete m:= Random(NB_PLANETE)+1; until Planete[m].joueur=0; Planete[m].joueur:= n; end; end; 4.3 Fonction-Procédure d'Achage Planétaire Cette fonction ache les planètes appartenant au joueur juste après la répartition. Elle boucle les planètes et regarde à quel joueur elles appartiennent, une par une, et les ache le cas échéant. Elle propose ensuite par une procédure au joueur de sélectionner une des planètes lui appartenant. Procedure IHM(var Planete: T_tplanete); var i: Byte; begin writeln('Repartition des planetes'); for i:= 1 to NB_PLANETE do begin writeln(i,') ',Planete[i].nom,'(Joueur ',Planete[i].joueur,')'); end; end; 4.4 Procédure Génèse Cette dernière procédure, qui est en fait la première à agir, crée les planètes et leur associe une place dans le tableau de planètes (T-tab). Ainsi, elle passe la main à la fonction de distribution. Procedure init(); var Planete : T_tplanete; i: Byte; begin Writeln(''); EPITA //variable qui contient toutes les infos //variable de boucle 13 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance Writeln(''); writeln(' ------------------'); Writeln(' - Risk Star Wars -'); writeln(' ------------------'); Planete[1].nom := 'Coruscant'; //initialisation de toutes les Planete[1].liaisons[1] := 2; //Planettes avec leurs liasons Planete[1].liaisons[2] := 3; Planete[1].liaisons[3] := 7; Planete[1].liaisons[4] := 8; Planete[2].nom := 'Tatoine'; Planete[2].liaisons[1] := 1; Planete[2].liaisons[2] := 3; Planete[2].liaisons[3] := 10; Planete[2].liaisons[4] := 5; Planete[3].nom := 'Endor'; Planete[3].liaisons[1] := 1; Planete[3].liaisons[2] := 2; Planete[3].liaisons[3] := 6; Planete[3].liaisons[4] := 12; Planete[4].nom := 'Bakura'; Planete[4].liaisons[1] := 9; Planete[4].liaisons[2] := 11; Planete[4].liaisons[3] := 5; Planete[4].liaisons[4] := 2; Planete[5].nom := 'Dagobah'; Planete[5].liaisons[1] := 3; Planete[5].liaisons[2] := 2; Planete[5].liaisons[3] := 8; Planete[5].liaisons[4] := 6; Planete[6].nom := 'Géonosis'; Planete[6].liaisons[1] := 3; Planete[6].liaisons[2] := 5; Planete[6].liaisons[3] := 9; Planete[6].liaisons[4] := 11; Planete[7].nom := 'Agamar'; Planete[7].liaisons[1] := 1; Planete[7].liaisons[2] := 10; Planete[7].liaisons[3] := 11; Planete[7].liaisons[4] := 12; Planete[8].nom := 'Yavin'; Planete[8].liaisons[1] := 1; EPITA 14 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance Planete[8].liaisons[2] := 5; Planete[8].liaisons[3] := 9; Planete[8].liaisons[4] := 11; Planete[9].nom := 'Naboo'; Planete[9].liaisons[1] := 4; Planete[9].liaisons[2] := 6; Planete[9].liaisons[3] := 8; Planete[9].liaisons[4] := 10; Planete[10].nom := 'Dathomir'; Planete[10].liaisons[1] := 2; Planete[10].liaisons[2] := 7; Planete[10].liaisons[3] := 9; Planete[10].liaisons[4] := 12; Planete[11].nom := 'Dantoine'; Planete[11].liaisons[1] := 4; Planete[11].liaisons[2] := 6; Planete[11].liaisons[3] := 7; Planete[11].liaisons[4] := 8; Planete[12].nom := 'Dath'; Planete[12].liaisons[1] := 3; Planete[12].liaisons[2] := 7; Planete[12].liaisons[3] := 10; Planete[12].liaisons[4] := 0; for i:= 0 to NB_PLANETE do begin Planete[i].joueur := 0; Planete[i].unite := 1; end; joueur_init(Planete,NB_JOUEUR); IHM(Planete); readln; Writeln('Répartition des troupes'); for i:=1 to NB_JOUEUR do begin writeln('Joueur ',i); joueur_unite(Planete,10,i); //repartition inirtial des troupes end; main(Planete); //passe la main à la fonction main end; EPITA 15 InfoSup B2 Unbound Value 4.5 Star Wars Risk Première Soutenance Répartition des unités Cette procédure sera nécessaire pour la partie renfort. Elle nous indique le nombre de troupes disponible, puis passe en revue chaque planète en demandant au joueur combien d'unités il désire positionner sur cette planète. De plus, le nombre d'unités restante est à chaque fois réacher, et l'on ne peut mettre plus d'unités que ce qui nous est permis. Pour le moment, on ne peut revenir sur une planète que nous avons déjà visitée et on ne peut choisir la planète désirée : elle nous est obligatoirement desservie. Elle sera donc bien évidemment révisée pour les besoins du jeu. Procedure joueur_unite(var Planete : T_tplanete; unite , joueur : Word); var i, num : Byte; begin writeln('-------------- Distribution des unite -------------'); for i:= 1 to NB_PLANETE do begin if (Planete[i].joueur = joueur) and (unite > 0) Then begin writeln('Il vous reste ', unite, ' unites a repartir.'); write(Planete[i].nom, ' :',Planete[i].unite,' unites + '); readln(num); if unite <= num then begin Planete[i].unite := Planete[i].unite + unite; unite := 0; end else begin Planete[i].unite := Planete[i].unite + num; unite := unite - num end; end; end; Writeln('Fin de la répartition'); end; 4.6 Procédure de combat (en cours) Elle permet d'attaquer une planète adverse grâce à un eet de randomisation, ce qui remplacera les dés dans le jeu de plateau. EPITA 16 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance procedure joueur_comba(var Planete: T_tplanete; plan_att, plan_def: Byte); var de, unite_att, inute_def : Byte; annul : Boolean; begin Randomize(); annul := True; repeat writeln('Joueur ', Planete[plan_att].joueur, ' : Combien d_unite voulait vous utilisé (1-', Planete[plan_def].unite - 1, ') ?'); readln(unite_att); until unite_att < Planete[plan_att].unite; unite_def := Planete[plan_def].unite; Planete[plan_att].unite := Planete[plan_att].unite - unite_att; while annul AND (unite_att > 0) AND (unite_def > 0) do begin writeln('Attaque de la planete ', Planete[plan_def].nom); de := Random(3); if de = 0 Then begin unite_def := unite_def - 2; writln('Joueur ', Planete[plan_def].joueur, ' pert 2 unite'); end; else if de = 1 Then begin unite_att := unite_att - 2; writln('Joueur ', Planete[plan_att].joueur, ' pert 2 unite'); end; else begin unite_att := unite_att - 1; unite_def := unite_def - 1; writeln('Chacun joueur pert une unite'); end; if unite_att=0 then begin writeln('Joueur ', Planete[plan_att].joueur, ' pert 2 a gagne !'); Planete[plan_def] EPITA 17 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance end; end; end; 4.7 Finalité du Programme Ce petit programme nous a donc permis une approche relative du problème, mais néanmoins signicative. Bien que cette application soit extrêmement limitée, elle nous a permi de poser de solides bases et d'avoir un très net aperçu de ce qui servira de ciment à toute l'implémentation découlant de ces fonctions de base. Ce programme peut s'approcher de la future procédure qui initialisera le début d'une partie de jeu. EPITA 18 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance 5 Début de création de notre futur site Notre site futur comportera dierents aspects, une dite "Tous publics", l'autre "Interne au groupe". La partie interne au groupe permettra de récapituler chaque semaine ce qu'il y a à faire et les problèmes à régler. On pourra aussi s'envoyer des informations entre nous grâce à un systeme de messagerie. Un rapport des tâches permettra de revoir les résumés de nos réunions. Enn, une partie rapport de débugage, très utilisé sur la n du projet, permettra de noter tous les bugs repérés et leur résolution. Dans la partie publics, on retrouvera les news qui donneront toutes les informations sur l'avancement du projet. Deux autres parties, intitulées "présentation du groupe" et "présentation du projet", permettront de mieux nous connaître. Et enn nous mettrons nos chiers et nos liens en ligne pour aider les suivants. Pour le moment, seule la première page et l'envoi de message sont résolus sur la partie "Privé" du site, mais il devrait bien avancer pour la deuxième soutenance. EPITA 19 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance 6 Découvertes des Diérent Logiciels Utilisés 6.1 Latex Oui, en eet, il fallait obligatoirement en passer par LaTex, même si ce n'est pas une surprise. Comme le cahier des charges tapé précédemment sous LaTex, le rapport de soutenance l'est aussi, avec maintenant la maîtrise des entêtes et des pieds-de-page pour appuyer un peu plus le côté LaTex (Il était temps !). Paraissant rébarbatif au départ, on s'aperçoit que suer un peu plus pour découvrir de nouvelles fonctionnalités an de rendre le document plus beau et présentable n'est pas dénué de nalité, et au nal de contentement. 6.2 Easy PHP / PHP coder EasyPHP permet d'installer un serveur Web, PHP et une base de donnée MYSQL. Ce qui sert surtout pour tester tous les scripts php en local. On utilise un logiciel d'edition de texte pour modier les pages PHP : PHP coder qui a la particularité de colorer le code PHP. Le language PHP permet de dynamiser le site, et par la meme occasion simplier les mises à jour. 6.3 Photoshop CS / Image Ready CS / Corel Painter IX Connaissant déjà le fonctionnement de Photoshop CS, et surtout, ayant acquit quelque expérience dans son utilistion (car il est indéniable que l'expérience et l'imagination font le talent sur les logiciels d'imagerie !), Thibaut a assemblé tous les diérents éléments de la carte, et façonné tous les calques. Quelques retouches grâce à Image Ready, mais surtout par Painter IX, la carte peut maintenant se vanter d'être quasiment sous son état nal, son meilleur jour. Il était en eet indispensable de terminer une carte propre pour la suite de l'expérience, sans quoi l'implémentation et le développement du jeu s'en seraint grandement ressentis. Il était nécessaire de pouvoir xer les liaisons inter-planètes, d'avoir une carte propre et nette pour son envergure, et surtout car elle est située au coeur du jeu. Malgré son aspect de nalité, elle constitue en réalité un socle indispensable pouvoir continuer. 6.4 3DSMax Malgré notre intention initiale d'avoir recourt à ce logiciel pour monter le design des modèles d'unités présents dans le jeu, ceci demandait le recourt EPITA 20 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance à Direct 3D, et nous avons préféré simplier notre tâche en nous limitant à l'utilisation de Direct Draw, beaucoup plus adapté à notre idée. 6.5 Borland Delphi 7 Il était indéniable que nous aurions à nous servir de ce logiciel de programmation, parfait pour Delphi et très puissant dans son domaine. Assez simple à prendre en main, ce n'est pas tant le logiciel qui gêne, mais souvent le code. La principale diculté provient donc plus du pascal que de delphi 7 lui-même, qui semble gérer de façon optimale les implémentations fournies. Il nous reste donc à nous perfectionner avant tout en TD. Nous portons de gros espoirs dans ces séances de TD, car sans elles nous ne pourrons avancer plus loin. . . EPITA 21 InfoSup B2 Unbound Value Star Wars Risk Première Soutenance 7 Conclusion et prévisions pour la 2e soutenance La diculté majeure avant cette première soutenance a été de résoudre des problèmes d'organisation, de méthodes et de travail. Ce projet nous a placés devant des besoins très spéciques au jeu que nous n'avions encore jamais rencontrés et auxquels nous avons dû nous adapter. Nous avons tous évidemment fait des TPE en Terminale, un travail de longue haleine, mais il nous était possible de donner des grands coups de travail pour avancer énormément. En revanche on a rapidemment vu que ce projet nécessitait un travail régulier, car on pouvait être confrontés à des problèmes que seul le temps pouvait résoudre. Bien que la fréquence de nos réunions restent très régulières, on ne peut encore armer que le travail suit le même rythme. On peut cependant espérer que la période entre la première et la deuxième soutenance sera plus productive, malgré les partiels et le manque certain de temps. Nous avons cependant déjà bien avancé sur certains points, tels que la création de la carte et du site intranet, l'implémentation de quelques fonctions de base, les premiers achages DirectX, une dénition précise de l'ensemble des règles concernant le jeu et la création de quelques sprites d'unités sous 3DSMax. Les prévisions pour la deuxième soutenance sont les suivantes : création à part entière du site privé ET publique, implémentation de toutes les fonctions principales, écriture du code concernant les congurations (chargement et enregistrement XML) et la partie Joueur du jeu, l'achage graphique et la gestion des périphériques. EPITA 22 InfoSup B2