Home

Rapport de soutenance finale Vroom Studios présente Plein

image

Contents

1. 38 2 14 1 Installeur et d sinstalleur Da da a a dc 38 2 14 2 R unification des unit s baudro_p besson_p 38 2 14 3 Manuel d installation et d aide auriau f cadillj 38 Conclusion 39 Annexes A0 Vroom Studios Rapport de soutenance finale 4 Plein Gaz Projet Epita Promo 2009 Introduction Dans le cadre du projet informatique il nous a t demand de faire une application sous Delphi et ventuellement un jeu Nos affinit s concernant le sport automobile nous ont rapidement accord et orient vers un jeu de voiture de type Mario Kart Dans un premier temps nous pensions faire un simulateur de rallye mais apres quelques recherches concernant la programmation et surtout un entretient avec des tudiants de Sp nous nous sommes r orient s vers un jeu arcade plus simple en terme de r alisme automobile et de graphisme Ainsi nous aimerions cr er un jeu de course o il serait possible d int ragir avec les adversaires gr ce des items pr sents sur le circuit projectiles booster Il sera possible pour l utilisateur de cr er ses propres circuits Le jeu comportera un mode multijoueur permettant deux joueurs de s affronter simultan ment sur le m me cran ainsi qu un mode r seau offrant la possibilit de s affronter sur plusieurs machines en m me temps Le mode solo proposera d affronter d autres adversaires contr l s par l ordinateur Ce projet sera
2. jeu existe c est dire jouer Il permettent donc de jouer sur Vroom Studios Rapport de soutenance finale 28 Plein Gaz Projet Epita Promo 2009 la carte de son choix qui peut tre p c demment cr e avec l diteur de carte avec ou sans bot tout seul ou avec un deuxi me joueur humain sachant que le nombre de joueur maximum est de quatre Les r gles du jeu comme prendre tous les checkpoints finir les tours y sont bien videmment appliqu es et les quelques r gles li es au moteur physique aussi 2 8 2 Principe Le principe est assez simple une fois que tous les moteurs ainsi que la structure g n rale du projet sont fait Il va suffire de regrouper toutes les informations donn es par le joueur puis les traiter et ensuite les afficher tout ce travail va tre effectu par une boucle c est la boucle principale du jeu mais elle est aussi la plus simple Dans sa premi re version elle tait diff rente suivant le nombre de joueur humain et ordinateur mais une g n ralisation a t effectuer pour lui permettre de s adapter aux diff rentes configurations possibles gr ce a des param tre que l on lui fait passer Elle se d compose comme ceci elle va s ex cuter tant que le joueur n aura pas dit explicitement de la quitter en appuyant sur la touche chappe le moteur physique va calculer les nouvelles positions de chaque objet en leurs appliquant les modifications li es aux collision
3. avec les objets depos s sur le sol Il centralise les information les traitent et les passe au moteur suivant qui s occupera de sa tache Le moteur physique re oit en entr e toutes les informations concernant l enssemble des entit es c est a dire leurs positions leurs orientations leurs acc l rations mais aussi les actions que les joueurs veulent ex cuter pour cet appel du moteur Le moteur va donc r pondre aux attentes des joueurs en bougeant leur v hicule dans la direction d sir e dans la mesure du possible car il doit aussi tenir compte des d cors qui ne peuvent pas tre travers En effet lors de la rencontre avec un d cor une voiture va subir une force de r pulsion elle va rebondire et de la m me mani re avec les autres voitures De plus le moteur physique g re quelques effets comme l acc l ration la d c l ration Il g re aussi l enssemble des objets leur d placement si besoin pour les missiles par exemple les collisions avec eux et les joueurs 2 4 2 Evolution Pour obtenir notre moteur physique finale nous somme pass s par de nombreuses versions qui se sont am lior es et se sont vu dot e de nouvelles fonctionnalit es au fur et mesure de l avancement du projet Les premi res versions t bas e sur le d placement verticale et horizontale mais cette m thode ne correspondait pas notre type de jeu qui se voulait tre avec une vision suivie ou la troisi me
4. 8 GUI2 Vroom Studios Rapport de soutenance finale 47 Plein Gaz Projet Epita Promo 2009 FIG 9 MoteurPhysiquel Vroom Studios Rapport de soutenance finale 48 Plein Gaz Projet Epita Promo 2009 Fic 10 MoteurPhysique2 Fic 11 MoteurPhysique3 Vroom Studios Rapport de soutenance finale 49 Plein Gaz Projet Epita Promo 2009 APPuyer sur la touChe a assigner tout en Cliquant sur l action voulue V lt S E A gt Retour FIG 12 EntreesSortiesl Configuration Controles Joueur UN peux Avancer x 9 0 x 8 4 Reculer x 8 3 x111 Gauche XI x110 Proite x 1618 x112 Utiliser x132 x 8 2 Retour FIG 13 EntreesSorties2 Vroom Studios Rapport de soutenance finale 50 Plein Gaz Projet Epita Promo 2009 FIG 14 EntreesSorties3 Vroom Studios Rapport de soutenance finale 51 Plein Gaz Projet Epita Promo 2009 Fic 15 IA1 Vroom Studios Rapport de soutenance finale 52 Plein Gaz Projet Epita Promo 2009 Fic 16 IA2 Cible Potentiel Vecteur Direction Bot Fic 17 IA3 Vroom Studios Rapport de soutenance finale 53 Plein Gaz Projet Epita Promo 2009 Fic 18 MonoMultil FIG 19 Modele3D1 Vroom Studios Rapport de soutenance finale 54 Plein Gaz Projet Epita Promo 2009 FIG 20 Modele3D2 PER stw wind
5. cors il va pouvoir connaitre vers quel angle il doit tendre pour sortir de la case et aller vers la suivante une constante sera donc ajout ou retir suivant sont angle actuel pour que celui ci se rapproche de l angle final recherch ensuite le bot va passer a la case suivante et il r p tera cette tape de modification de l angle De plus pour que la voiture soit le maximum au centre de la case on va lui appliquer un petit recentrage qui va modifier via une constante ajout ou retir l angle vers lequel le bot doit aller Vroom Studios Rapport de soutenance finale 25 Plein Gaz Projet Epita Promo 2009 Par exemple si la voiture est trop sur un cot et que sa direction doit tendre vers 7 2 alors on ajoute ou l on soustrait une constante 7 2 la constante est diff rente selon l endroit o le bot se trouve sur la case Une fois revenue au centre de la case la constante est remise a 0 et donc la direction redevient celle donn e par defaut pour la case o la voiture se situe cf IA2 Pour ce qui est de l utilisation des objets ramass s sur le circuit il faut savoir que Vheure du ramassage est enregistr e pour la voiture concern et que quelques secondes Une fois ce temps coul le bot peu utiliser sont objet Si c est un acc l rateur ou une caisse explosive il n y a rien qui l emp che de les utiliser n importe quel moment comme un humain en quelque sorte Mais pour
6. e un bouton sur notre Form delphi elle permet d envoyer le texte contenu dans un Edit dans notre cas Edit3 au serveur La proc dure ClientSocket1 Socket SendText Edit3 Text prend donc en param tre un string qui sera envoy au serveur La proc dureMemol1 Lines Add Informations en voy es au serveur sert uniquement informer l utilisateur que son message a t envoy correctement Cette deuxi me proc dure procedure TForm1 ClientSocket1Read Sender TObject Socket TCustomWinSocket est en fait un v nement du compo sant TClientSocket elle permet de r cup rer les messages envoy s par le serveur La proc dure Socket ReceiveText renvoit le string qu elle a regu du serveur et enfin la proc dure Memol Lines add Socket ReceiveText permet d afficher le string re u dans un Memo dans notre cas Memol Serveur Le serveur sert de relais aux utilisateurs qui veulent communiquer Le serveur va recevoir tous les messages envoy s par les clients et les transmettre tous les autres clients connect s Le serveur doit tre lanc sur un port au choix Il faut tout de m me faire attention ne pas le lancer un port d j utilis par d autres programmes ex Navigateur web sur le port 80 ou encore serveur ftp sur le port 21 Le serveur marche aussi bien en r seau local que sur internet si on veut accepter des connections entrantes depuis internet il faut ouvrir son firewall sur le port du serveur Voici la
7. gt 0 and j lt 8 then begin glPushMatrix glTranslated i 10 5 j 10 5 0 glRotate 90 1 0 0 AffModel mapModel it1 j 1 glPopMatrix end end end for j realToInt Tvoiture 1 posY div 10 2 to to Model 1 Draw Model 1 T3DModel Create Model 1 loadfromfile 1hummer 3ds 3 p_load_model model integer x y z real model_fixe boolean rot real Vroom Studios Rapport de soutenance finale 42 Projet Epita Promo 2009 Plein Gaz AL 9891199119989 SN yy BRL Jae pt tt ty tt EI 1 AA Fic 3 EditMapl 43 Vroom Studios Rapport de soutenance finale Plein Gaz Projet Epita Promo 2009 Nouveau Save Open Fic 4 EditMap2 Vroom Studios Rapport de soutenance finale 44 Plein Gaz Projet Epita Promo 2009 Enregistrer dans a Bureau da c Ed G mes documents O Y Poste de travail Recent J Favoris r seau Q Bureau Mes documents E Poste de travail fi Favoris r seau Nom du fichier Type Fic 5 EditMap3 Petite erreur e A il y a un probleme de depart FIG 6 EditMap4 d X Annuler Petite erreur A le circuit n est pas continue Vroom Studios Rapport de soutenance finale 45 Plein Gaz Projet Epita Promo 2009 Fic 7 GUN Vroom Studios Rapport de soutenance finale 46 Plein Gaz Projet Epita Promo 2009 Fic
8. proc dure principale bri vement expliqu e qui compose le serveur La procedure TForm1 ServerSocket1ClientRead Sender TObject So cket TCustomWinSocket est un v nement du composant TServeurSocket elle permet de r cup rer les messages envoy s par les clients gr ce la fonction So cket ReceiveText qui renvoit un string Une fois le texte envoy par le client r cup r le serveur va l envoyer tous les clients connect s gr ce une boucle For qui part de z ro pour aller jusqu au nombre de clients connect s moins un La fonction permettant de r cup rer le nombre de clients connect s est ServerSocket1 Socket ActiveConnections Vroom Studios Rapport de soutenance finale 32 Plein Gaz Projet Epita Promo 2009 dans notre cas ServerSocket1 Une fois rentr dans la boucle la proc dure Server Socket1 Socket Connections I SendText Socket RemoteHost dit b permet d envoyer chaque clients chaque clients un num ro I le texte re u pr cedemment La proc dure Socket RemoteHost permet de r cup rer le nom de Pordinateur qui vient d envoyer un message Bien videmment le serveur et le client sont dot s d une gestion d erreur Notam ment si les adresses ip entr es sont non valide ou si le serveur tente d envoyer des donn es un client non connect La gestion d erreur sera par la suite am lior e Cr ation d un buffer Pour la cr ation du chat nous avons util
9. 1 3 7 Mode r seau Le mode r seau permettra plusieurs joueurs de s affronter en m me temps Les utilisateurs pourront d finir le nombre de concurrents g r s par l intelligence artificielle 1 3 8 Interface utilisateur L interface utilisateur permettra au joueur de naviguer dans les diff rents menus du jeu Il aura notamment la possibilit de choisir entre le mode Solo ou Multijoueur de r gler le volume sonore du jeu ou encore de cr er ses propres circuits gr ce un diteur de map 1 3 9 Site web Le design du site web ressemblera fortement celui du jeu vid o Ce site sera r alis en PHP nous mettrons la disposition des internautes le cahier des charges les diff rents rapports de soutenance ainsi que les derni res versions du projet Il y aura galement une gestion des news qui tiendra au courant les visiteurs de l avancement du projet des probl mes rencontr s par le groupe etc Vroom Studios Rapport de soutenance finale 8 Plein Gaz Projet Epita Promo 2009 1 4 Distribution des t ches et planning 1 4 1 Distribution des t ches AURIAU BAUDRON BESSON CADILLON Florian Paul Paul Jonas Moteur 3D X X Moteur physique X X X Int gration du son X Editeur de map X X Gestion des entr es sorties X Intelligence artificielle X X X Interface utilisateur GUI X X Multijoueur X X Mod lisation 3D Graphismes X X Mode r seau X X X
10. OEM 4 760 3D Studio Max 6 1 4900 Delphi 7 Entreprise 4 2390 Cinema 4D XL R8 1 2690 Adobe Photoshop CS 1 1790 PC Portable 3 4399 Switch 5 ports 10 100 1 27 99 Total 16956 99 En regardant le tableau ci dessus on constate que ce projet est tr s hon reux pour des d butants Cela repr sente donc une motivation suppl mentaire sa r ussite Cela dit il est normal que des merveilles telles que Photoshop soient payantes afin de remer cier ses cr ateurs m me si c est lentreprise qui en profite N anmoins nous aurons au moins la fiert de n utiliser que des logiciels dont nous poss dons la license 2 La construction du projet point par point 2 1 Moteur 3D baudro_p besson_p 2 1 1 Introduction L affichage graphique est la partie la plus importante du projet car c est la plus visible du jeu Il faut donc implementer des algorithmes rapides pouvant traiter un maximum de donn es De plus il faut donner un style au jeu un univers sp cifique et des couleurs rappelant le monde enfantin conform ment au cahier des charges initial 2 1 2 Avec le style Comme je l ai dit un peu plus haut le jeu doit avoir un style enfantin Nous l avons concus avec des couleurs primaires et des formes simplifi es La recherche stylistique a d but e des la premiere soutenance en cr ant notament les premiers modeles en 3D et le site web On constate que la couleur jaune agr
11. aussi l occasion de travailler en groupe notamment en se fixant des ch ances et en respectant ce cahier des charges Vroom Studios Rapport de soutenance finale 5 Plein Gaz Projet Epita Promo 2009 1 Rappel du cahier des charges 1 1 Pr sentation du groupe Florian Auriau Florian vient de l orne il pratique l informatique depuis qu il a 12 ans ll a quelques connaissances en HTML et PHP mais n a jamais fait que du langage orient WEB Gr ce ce projet il pourra d couvrir une autre vision de l informatique dont il n a t qu un simple utilisateur Paul Baudron Originaire du loiret Paul s int resse l informatique depuis qu il a 13 ans Il n a pour ainsi dire jamais cod mais s est d j pench sur le sujet travers des tutoriaux trouv s sur le net Ce projet sera l occasion pour lui aussi de d couvrir de nouvelles facettes et d acqu rir de nouvelles connaissances dans le domaine des jeux video et plus surtout de la programmation Paul Besson Originaire du Pays d Aix en Provence Paul prend rapidement go t l informatique Il fait ses d buts sur de vielles machines et c est en 1998 qu il obtient son premier ordinateur et d couvre de surcro t l Internet et ses joies Pen dant ces derni res ann es il s adonne la cr ation musicale graphique et de site Web Il d couvre la programmation en r alisant un outil permettant de r cup rer des donn es d un p riph rique sonde
12. ce qui est des missiles il faut que le bot ait une cible dans sa ligne de mire C est une fonction qui va r pondre a cette question Cette fonction prend en param tre l identifiant du bot concern avec sa position et son angle d orientation on peut calculer un vecteur qui serait le vecteur directeur de la droite suivi par le missile il suffit ensuite de regarder si ce vecteur est colin aire avec le vecteur form e par les points ayant comme positions celles du bot et celles de la cible potentiel cf IA3 C est donc une boucle qui va regarder cette condition pour chaque autre joueur et d s que cette condition est verifi e le bot re oit l autorisation de tirer son missile 2 7 R gle du Jeu Principes baudro_p Le jeu est soumis quelques r gles et principes comme le fait de devoir passer sous tous les checkpoints pour valider un tour ou encore les quelques objet que l on peut ramasser ou lacher sur la piste 2 7 1 Les Checkpoints Au chargement de la carte une liste des checkpoints est cr e pour chaque joueur elle sera modifi e quand le joueur passera sous un checkpoint qu il n a pas encore pris et r initialis e quand il passera par la case d part si tous les checkpoints ont t pris Vroom Studios Rapport de soutenance finale 26 Plein Gaz Projet Epita Promo 2009 La liste des checkpoints est donc initialis e une valeur de non pris valeur n gative puis quand le joueur passe sur
13. et lorsque celle ci est termin e on change les deux Donc si on enleve SwapBuffers DC on verra toujours un cran vide tandis qu on dessinera dans un cran non visible Cf cubeblanc et code C est vrai que nous avons un peu de mal faire la distinction entre l une ou l autre face C est pour cela que j ai choisi de mettre des couleurs aux faces Nous en venons la coloration grace cette merveilleuse fonction glColor Comme pour glVertex glColor va de glColor3b R G B sur un octet sign 4 gl Color4usv R G B Alpha sur un pointeur sur short non sign en passant par glColor3d R G B sur un double de 0 0 a 1 0 C est justement cette derni re fonction que nous allons utiliser car pouvoir Vroom Studios Rapport de soutenance finale 13 Plein Gaz Projet Epita Promo 2009 s lectionner l intensit de la couleur entre 0 et 1 est bien pratique Pour les codages sur des valeurs enti res tout l intervalle disponible est utilis En fait quand on appelle glColor la couleur des sommets que l on dessinera apr s l appel de la fonction changera selon le principe de la machine d tat Donc puisqu on veut une couleur unie par face on va appeler glColor 6 fois une fois avant chaque face Cf Cubecouleur et code Les couleurs sont basiques mais l au moins on voit la diff rence entre les faces 2 1 4 Affichage de la map Le moteur d affichage de map est dot d un quad tri permettant de gag
14. l int gration du mode r seau dans notre jeu nous avons conserv la m thode qui utilise un buffer Notre buffer contient ainsi la position de la voiture son angle son acc l ration De plus le buffer peut contenir beaucoup d autre informations le classement du joueur le nombre de tour restant ainsi que le type d objet en possession de la voiture Le joueur peut ainsi choisir d tre client ou serveur le serveur choisi la map sur laquelle les autres joueurs vont jouer Une fois que tous les joueurs sont connect s le serveur peut d cider de lancer la partie sur tous les pc en m me temps Apr s que la partie se soit lancer sur tous les pc les r gles du jeu restent les m mes que dans les autres modes de jeu Cf Serveur et client 2 12 Gestion du son besson_p 2 12 1 Introduction Cette Partie du projet pourtant plus leg re en terme de reflexion algoritmique doit cependant etre realis e avec la m me attention Apr s l affichage 3D le son est la partie la plus visible du projet et ne doit pas tre n glig e Dans notre projet un jeu de voiture il faut faire correspondre des v nements comme des collisions ou le bruit provenant du moteur avec des sons ad quats De plus il faut une musique d ambiance pour le GUI puis pendant la partie et lors de la victoire d un des joueurs La partie concernant la musique a t trait e de maniere telle que les utilisateurs du programme puissent couter leur propres fichiers sonn
15. les objets ainsi que le temps qui d file les commande n y sont pas g r es donc les joueurs sont bloqu s tant que la boucle n est pas finie La condition de sortie de la boucle est que l heure courante soit supp rieur l heure laquelle la boucle a commenc plus Vroom Studios Rapport de soutenance finale 30 Plein Gaz Projet Epita Promo 2009 trois secondes Le temps qui d file est la partie enti re de l heure de d part plus trois secondes moins l heure actuelle Une fois que la boucle est termin e on entre dans la boucle principale du jeu 2 10 Mod les 3D baudro_p Les mod les 3D permettent de doner du volume notre jeu se sont eux qui sont affich s et qui repr sentent tout ce que le joueur fais Ils permettent de le guider grace au modele du circuit de ce voir avec son personnage qu il a choisi et de visualiser les pi ges laiss s sur le sol par ses adversaires ou par lui m me Pour le circuit chaque type de case a deux modeles diff rents pour la repr senter ce choix est accessible dans le l diteur de carte Il y a deux mod les pour les voitures et quelques mod les pour les objets que l on peut lancer et lacher par terre La skybox a t compl tement refaite au cours du projet pour coller avec le style du jeu et donner un peu de relief au paysage La majorit des textures sont faite maison mais d autre comme pour la skybox ou le sol on t r cuper es sur le web
16. personne et c est via l inclusion d un angle que tous les d placement se calculent maintenant 2 4 3 Les diff rentes versions 1 Version Les objets sont caract ris s par leurs positions en x et y 3 ainsi que par leur acc l ration suivant ces deux axes Vroom Studios Rapport de soutenance finale 20 Plein Gaz Projet Epita Promo 2009 Le moteur physique ajoute chaque appel l acc l ration la position sur l axe lui correspondant L acc l ration suivant un axe est augment e ou diminu si l on appuie sur la touche pour aller dans vers le sens positif ou n gatif de l axe x ou y Les rebonds sont simul s en remplacant l acc l ration en x ou y de l objet par son oppos e 1 lorsque l objet d passe une certaine limite rep r avec sa position en x ou y Les collisions entre les objets sont d t ct es gr ce la distance 2 les s parrant si cette distance est trop petite alors on interchange les acc l rations en x et en y des deux protagonistes ce qui simule une force de r pulsion cf MoteurPhysiquel 2 Version Dans cette version nous avons introduit un angle pour chaque entit e qui se d place qui permettra une future gestion des rotations de la cam ra des mod les cf MoteurPhysique2 Pour ce qui est des collisions entre les voiture le principe est toujours le m me une distance qui est calcul e pour savoir si les deux voitures sont en collision Ces testes so
17. 6 2 7 1 Les Checkpoints ste ets a aa 26 A o to s a ras IN 27 2 7 3 Les caisses ramasser ct a a Re 27 2 7 4 Les diff rents objets LAS E e ANA o Be 28 MonoJoueur MultiJoueur baudro_p 28 28 1 Leurs Holey ue Le ds oe SN Roan Ae bs 28 SR EME da a Eta A a RR ds a 29 Effets Visuels Papo ds A a da rd 30 2 9 1 Lumi res auriau_f cadill j baudro_p 30 2 9 2 Brouillard auriau f cadill_j baudro p 30 2 0 3 Cam ra baudro p e da do 30 2 9 4 Le compte teboure baudro p gt ee Pe e 30 Mod les 3D DAudropl oa a ia a ie tra 31 Mode r seau baudro_p auriau_f cadillj 31 2 11 1 R le du mode r seau a Lans o LE Lin do 31 2 11 2 Avancement du mode r seau 31 Gestion du son besson p 0 a E al 35 2 121 BO Le 161 1 1 RE a hee RAR at T E 39 2 12 2 Choix de la Librairie 4 dee Pa ew e e IE 39 2 12 3 Fonctions Principales m4 aa eh ant ee alee het 36 2 TXA ees BM T she ed ck he Oona Ae ie Ne A AT En ed 36 212 9 La KTR Les ead ok a ER 37 2 120 ONE Ost ia Of Sh ee a de a Ge ark eh Ee 37 Vroom Studios Rapport de soutenance finale 3 Plein Gaz Projet Epita Promo 2009 2 13 Site web cadillj auriau f A a ee a As 37 Did Oud R led ssite WED a E ere ee e RA PO A 37 292 Design K A A R EE Se 37 2 13 3 D avancement du site web a aa AR a 38 2 14 Assemblage g n ral du projet auriau f baudro p besson_p cadill j
18. Rapport de soutenance finale Vroom Studios pr sente Plein Gaz AURIAU Florian BAUDRON Paul BESSON Paul CADILLON Jonas Sup Cl 22 juin 2005 Vroom Studios Rapport de soutenance finale Plein Gaz Projet Epita Promo 2009 Table des matieres Introduction 5 1 Rappel du cahier des charges 6 1 1 Pr sentation du groupe aa de a eat BO le Se ms 6 1 2 Pr sentation du projet 2 dae a ee 6 I Oho ody wks e a Gn ot A e ee ee Age 6 EX2 ANGUS erorigme Let A ei Na Ge eos ns 6 12 3 a vane casas E T 1 3 D coupage du projet ca de E SS ES T 1 3 1 Aspect graphique e po RR A EA Bok de 7 13 2 Aspect A eet dee ena the NE eae BA es T 1 3 3 Noter graphique sa ae Stee a ARE T 1 3 4 Gestion physique Lo a 8 1 3 5 Intelligence artificielle os a A A AUS A eS 8 1 3 6 Mode multijoueur 0d a 8 1 3 7 Mode r seau II 8 1 3 8 Interface utilisateur Di aa dm ee ee da 8 1 3 9 Site web E A A ea sd OS 8 1 4 Distribution des t ches et planning 9 1 41 Distribution des t ches 9 1 5 Planning de r alisation 2 ame 6 eA e218 Del trs din 9 Toa Je soutenance R Ne rl E A O N 9 LEA G2 OMIC o T TS e a ta hee 9 170 3 poe OU LGN AIICe pa a is t e Ble e e a Bod 10 1 5 4 Soutenance finale ro ars da nee Mee ig eet e 10 1 6 Moyens mis en uvre saasaa e ge aed tie ee le ee a ds 11 1 6 1 Outils mat riels Be ed ae es ed ct Bee Re pis AU 11 162 Bolton losicielle e si are da Ge abod
19. X Site Web X X Assemblage g n ral du projet X X X X 1 5 Planning de r alisation 1 5 1 1 soutenance Recherches et documentations g n rales sur Delphi OpenGL Ebauche et r flection sur le moteur 3D Ebauche et r flection sur le moteur Physique Ebauche de l diteur de map Site web commenc 1 5 2 2 soutenance Moteur Physique en cours collisions acc l ration items Moteur 3D en cours actions standard vue camera R flection sur L IA Ebauche de la mod lisation 3D Editeur de map en cours de finalisation Ebauche du GUI Pr sentation du site web Gestion des contr les entr es sorties en cours Vroom Studios Rapport de soutenance finale 9 Plein Gaz Projet Epita Promo 2009 1 5 3 3 soutenance Ebauche du mode multijoueur D but d impl mentation de PIA Gestion des contr les entr es sorties achev e Gestion du son Mod lisation 3D en cours de finalisation GUI finalis Editeur de map finalis Ebauche et commencement du mode r seau 1 5 4 Soutenance finale Finalisation des graphismes Finalisation du moteur physique et de la gestion des items Finalisation du mode r seau Fin d impl mentation de VIA Assemblage g n ral du projet D bugage Manuels installeur desinstalleur Vroom Studios Rapport de soutenance finale 10 Plein Gaz Projet Epita Promo 2009 1 6 Moyens mis en uvr
20. _BIT GL_DEPTH_BUFFER_BIT glMatrixMode GL_MODELVIEW gluLookAt 5 5 5 0 0 0 0 1 0 glBegin GL_QUADS glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 1 face ldots glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 6 faces glEnd SwapBuffers DC FIG 1 Cube blanc Vroom Studios Rapport de soutenance finale AO Plein Gaz Projet Epita Promo 2009 glClear GL_COLOR_BUFFER_BIT glClear GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT glMatrixMode GL_MODELVIEW gluLookAt 5 5 5 0 0 0 0 1 0 glBegin GL_QUADS glColor3d 1 0 0 glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 1 face ldots glColor3d 1 0 1 glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 glVertex3i 1 1 1 6 faces glEnd Cette fois j le sens bien ldots SwapBuffers DC glutSwapBuffers pour glut glutPostRediplay Uniquement pour GLUT Fic 2 Cube couleur Vroom Studios Rapport de soutenance finale 41 Plein Gaz Projet Epita Promo 2009 for i 0 to 8 do for j 0 to 8 do begin glPushMatrix glTranslated i 10 5 j 10 5 0 glRotate 90 1 0 0 AffModel 13 glPopMatrix end for i realToInt Tvoiture 1 posX div 10 2 realToInt Tvoiture 1 posX div 10 2 do realToInt Tvoiture 1 posY div 10 2 do begin if i gt 0 and i lt 8 then if j
21. able l il est pr sente dans tout le jeu Les v hicules sont inspir s des jouets en bois pour enfants 2 1 3 Fen tre Opengl Apr s s tre pos la question du choix de la librairie graphique Opengl du jeu il fallait initialiser la fen tre opengl Pour cela nous nous sommes tourn s vers glfw car Vroom Studios Rapport de soutenance finale 12 Plein Gaz Projet Epita Promo 2009 il est tout de m me plus simple que opengl pour l initialisation d une fen tre Il y a aussi glut cependant plus lent que glfw notre choix a donc t glfw Pour coder avec OpenGL sous Delphi nous avons donc choisi les librairies OpenGL Glu surcouche avanc e d OpenGL qui permet la construction d objets complexes la gestion de cam ras par exemple le dimensionnement d images l alpha blending mais aussi la cr ation de mini cartes r cup ration de sa position sur le circuit Glfw pour l initialisation de la fen tre OpenGL Glut qui comme Glu complete la palette des fonctions OpenGL Avant d afficher tout objet sur l cran il faut charger la librairie OpenGL et cr er la fen tre o les objets volueront Nous avons utilis la librairie Glfw qui se charge de cr er la fen tre OpenGL avec une seule fonction glfwInit Il faut aussi sp cifier notamment les dimensions de la fen tre avec glfwOpenWindow qui cr era la fen tre Couleurs Avec OpenGL on applique les couleurs chaque point du polygon
22. arte il souhaite jouer par quelle mod le il veut tre repr sent et le GUI va lancer une partie avec tous les param tres ad quates De la m me mani re il va perm tre de rentrer l adresse IP du server pour s y connecter lors de partie reseau 2 3 2 Principe Le principe g n rale du GUI est rest le m me tout au long de l avancement du projet juste quelques d tails et son aspect graphique ont chang Tout d abord il faut savoir que le GUI est cr par plusieurs fiches ou pages Ces fiches sont dessin es que si l utilisateur l a demand Ses demandes sont faite via des boutons qu il peu cliquer pour naviguer dans le GUI Le GUI est bas sur une boucle tant que qui s ex cute tant que l on a pas cliqu sur le bouton Quitter Pour chaques pages du GUI un bool en lui est assign c est lui qui va nous permettre de savoir si une page doit tre affich e ou non et si les boutons li s cette page doivent tre eux aussi test s ou non Pour afficher la bonne page des conditions sur les bool ens des pages vont tre test es chaque tour de boucle si un bool en est vrai alors la page lui correspondant est affich e et les tests des boutons pour cette page sont effectu s Vroom Studios Rapport de soutenance finale 18 Plein Gaz Projet Epita Promo 2009 lorsque l on clique sur un bouton les bool ens des pages sont modifi s pour afficher la bonne page au prochain tour
23. au jeu Aussi bien la map que les bolides et c est l aide du moteur physique qui chaque tour de boucle incr mente les positions en x y que les objets s animent dans notre fen tre openGL En fait chaque model est en fait stock dans un tableau de T3DModel 2 1 6 Optimisations Suite l ajout important de mod les 3D de textures le taux d images par seconde a beaucoup baiss il a donc fallu trouver un moyen pour pallier ce manque plus que g nant d o l utilisation de listes d affichages pour la skybox qui ne change pas pendant le jeu et d un affichage de la map avec un Quad tri Des fonction inherentes opengl permettent de ne pas afficher les faces non visibles des polygones elles sont utilis e leurs gains en performance est cependant faible 2 1 7 Conclusion Depuis la prem re soutenance notre vision de l affichage pour notre jeu est rest e la m me et est maintenant parfaitement aboutie notamment gr ce aux divers r visions de nos algorithmes et nos optimisations 2 2 Editeur de Carte baudro pl 2 2 1 Son R le L diteur de carte permet de cr er des circuits en 2 dimensions il se pr sente sous la forme d un quadrillage de 9 cases par 9 Il dispose des fonctionnalit s d enregistrement et d ouverture de fichiers qui doivent tre en format texte Pour plus de facilit on pose l extension des fichiers en map ce qui permettra par la suite de les rep rer plus rapidement pour leurs chargement dans l
24. cer tous les appels aux fonctions de d placement sont d sactiv s comme dit pr c demment 2 7 3 Les caisses A ramasser Les caisses que les joueurs peuvent ramasser sont situ es sur les checkpoints au nombre de 2 par checkpoint Le test qui va d terminer si un joueur prend une caisse ou non est effectu quand il passe sur un checkpoint en calculant la distance qui le s pare des caisses pr sente sur celui ci si cette valeur est assez petite il y a collision la caisse dispara t et si le joueur n avait pas d objet ce moment l il en a un apr s Vroom Studios Rapport de soutenance finale 27 Plein Gaz Projet Epita Promo 2009 La caisse dispose d un champ temps qui prend la valeur de l heure o elle est prise et l emp che d tre affich tant que le temps courant n est pas sup rieur au temps de la caisse plus trois secondes Les joueurs ne peuvent bien videmment pas prendre la caisse tant que celle ci n est pas r affich e 2 7 4 Les diff rents objets Lorsque le joueur rammasse une caisse il obtient un objet qui peu tre de trois type un missile une caisse explosive ou un acc l rateur Cette obtention se fait de mani re al atoire Lors de Putilisation d un missile ce dernier est ajout sa place dans le vecteur des missiles un joueur ne peu avoir que un missile de toute facon les missiles sont assez rapides pour disparaitre en dehors de la carte avant que les joueur aient eu le t
25. de boucle et pour faire les nouveau test sur le boutons Les boutons sont g r s comme des zones dans la fen tre OpenGL A chaque tour de boucle on recupere la position de la souris en x et y grace au composant GLFW et lorsque elle se situe dans la zone d un bouton on modifie le celui ci pour montrer Putilisateur qu il se situe sur un bouton comme un rollover puis si il clique tout en tant dans la zone on modifie les bool ens des fiches pour afficher juste celle qu il faut Par exemple pour charger la page de la configuration des touches il faut que la position en x de la souris soit entre x et 2 de m me pour la position en y et si le bouton gauche de la souris est appuyer alors que ses position v rifie les conditions pr c dentes les bool ens sont modifier cf GUN Cette m thode marche tr s bien si la r solution ne bouge pas car les positions des boutons sont enregistr es en dur dans le code Mais partir du moment ou l on change la r solution les positions de la souris sont diff rentes elles peuvent tre beaucoup plus grandes ou plus petites Il a fallu donc changer le type de r cup ration de la position de la souris La position est maintenant calcul e en fonction de la r solution et les boutons sont eux rep r s suivant des position en pourcentage ce qui a pour effet de comparer la position en pourcentage de la souris avec des positions en pourcentage pour les boutons ces tests sont donc toujou
26. donc pourquoi s en priver Le brouillard permet d estomper les d tails qui sont lointain donner une ambience plus calme qui fasse moins agreessive de par les couleurs trop vives 2 9 3 Cam ra baudro_p La cam ra qui suis les voitures a t dot d un temps de retard qui permet de voir la voiture qui commence tourner avant que la camera ne tourne elle m me Il y a donc deux angles diff rents un pour la voiture et un pour la cam ra celui de la cam ra n est pas remis jour quand le joueur tourne sauf si la diff rence entre les deux angles est sup rieur un maximum fix Il continue de ce remettre jour apr s tant que les deux angles ne sont pas en phase Cette m thode permet d avoir une cam ra qui se remet automatiquement derri re la voiture m me si l on change brutalement l angle d acc l ration de celle ci comme par exemple lors de collision avec d autre joueur quand un joueur passe sur une caisse explosive ou est touch par un missile il se met tourner pendant une seconde ce qui modifie son angle d acc l ration 2 9 4 Le compte reboure baudro pl Pour viter que la course commence directement apr s avoir cliqu sur jouer un compte rebour laisse le temps au joueur de se pr parer au d part La dur e de celui ci est de trois secondes et bien videmment les joueurs ne peuvent pas bouger Ce compte reboure est bas sur une boucle qui ne fait que afficher les d cors et
27. e 1 6 1 Outils mat riels AURIAU BAUDRON BESSON CADILLON Florian Paul Paul Jonas Carte m re Asus Asus Msi Asus A7N8X X P4P800 Deluxe KT4 Ultra P4C800 E Deluxe Processeurs AMD Pentium 4e AMD Pentium 4 Athlon Xp 2400 3 Ghz Xp 2800 3 5 Ghz RAM 512 Mo DDR 1024 Mo DDR 1024 Mo DDR 1024 Mo DDR PC 3200 PC 3200 PC 3200 PC 4400 Carte Graphique Ati Ati Nvidia Nvidia Radeon 9600 Pro Radeon 9800 Pro Geforce 5900XT Geforce Ti 4200 Disque Dur 160 Go 160 Go 160 Go 440 Go Moniteur Philips 17 LG Flatron 19 Mitsubishi 19 liyama 19 Portable Oui Non Oui Oui 1 6 2 Solution logicielle En plus de l aspect mat riel que nous avons evoqu pr c demment nous aurons besoin d outils logiciels En effet nous avons choisi de coder notre projet en Delphi 7 avec l aide des librairies OpenGL en ce qui concerne l affichage 3D et Fmod pour ce qui est du son De m me nous int grerons au jeu des mod les 3D probablement modelis s sous Cinema 4D XL R8 et 3DStudioMax Les graphismes 2D seront eux con us l aide de Adobe photoshop CS Le site Web sera realis en PHP l aide de Edit Plus en ce qui concerne le code HTML Bien videmment Delphi reste l outil majeur qui nous permettra de coder le jeu en lui meme Vroom Studios Rapport de soutenance finale 11 Plein Gaz Projet Epita Promo 2009 1 7 Aspect conomique Description Quantit Prix Licences Windows XP Pro
28. e Ge gees aw 11 1 7 Aspect conomique da ia as 12 2 La construction du projet point par point 12 2 1 Moteur 3D baudro p besson pl 2s 25 4 22544 sis a 12 Dela CIAO AUCUON ZE tl ds do e a Sed E 12 2 1 2 Avec le style o A ye cla do eo de a ane nn 12 21 3 Fenetre penal i ciao e a er Sie 12 2 1 4 Affichage de la map 14 2 1 5 Fichiers 3DS et Chargement es de de PRY da o 14 2 1 6 Optimisations tdo it A ty a e did 15 Vroom Studios Rapport de soutenance finale 2 Plein Gaz Projet Epita Promo 2009 22 2 3 2 4 2 9 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2L Cone A II a ee T AA T T 15 Editeur de Carte baudro p 1 as gente oe a aa 15 2251 SSO Role e ud lt he id Sen ae A ee te te 15 2 2 2 Evolutions et Caract ristiques 2 6 2 ea aa ad 16 GUT baudro p eine gt eto bee fh dee ES ee Peg og 18 23 1 OU INOS LES bk eh AN R hk OG a eo ee ed 18 2 HGHG a a O 18 Moteur Physique baudro pl 4424 24 494 44 24 20 2 4 1 Son r le Sp cifications tio Ce MS an ee aE dE 20 2 42 Evoluti NS en A Pee eu 20 2 4 3 Les diff rentes versions ue pde RE EE ORS a a 20 Entr es Sorties baudro p leo dea de 23 2 54 Son r le Sp cifications ees le ao DA hrs de 23 A a A ode T T NRT KS R Bee Ge He 23 Intelligence Artificielle baudro p 24 20 EUROS sa aa o le t ia se Bed 24 02 a A IAN IA 25 R gle du Jeu Principes baudro p rar ets 2
29. e On d termine une couleur avant de mettre les coordonn es du point et l interface 3d de Pordinateur s occupe du tra age Primitives Comme vous le savez s rement si vous avez l gerement touch a la 3D tous les objets sont en fait une association d l ments de base ce sont des faces orgranis es dans un certain ordre dans l espace qui repr sentent l objet Chaque face peut tre d compos e en une s rie de facettes triangulaires Ainsi un rectangle est en fait constitu de deux triangles cons cutifs Ces triangles sont eux m mes compos s de 3 cot s ou 3 lignes et de 3 points ou vertex qui d finissent les extr mit s de ces segments Ces l ments points lignes triangles sont aussi appel s primitives OpenGL est bas sur le principe des primitives c est a dire que pour dessiner un objet il faut dessiner toutes ses primitives Et pour cela on utilise des fonctions tr s simples d utilisation et permettant des dessins tr s pouss s puisque grace ces fonctions on peut dessiner quasiment tout Passons maintenant a la pratique comment dessiner un l ment primitif On appelle glBegin avec comme param tre l l ment on lui envoie les coordonn es des vecteurs cl s via glVertex et on termine avec glEnd Notez que vous ne verrez rien si vous n appelez pas SwapBuffers DC On utilise une technique appel e double buffering qui consiste afficher une image pendant que l on calcule l autre
30. e GUI Cet gestion peut ce r sumer connaitre l tat d une touche un instant pr cis et eff ctuer la ou les action s qui lui sont attribu es par exemple si l on d sire avancer il suffit d appuyer sur la touche correspondante qui a t configur e dans le GUI et Penssemble des proc dures et fonctions qui sont n cessaires pour faire avancer une voiture seront execut es 2 5 2 Principe Depuis le d but du projet c est le composant GLFW qui permet grace une de ses fonctions de connaitre l tat d une touche c est a dire si elle est appuy e ou pas Cette fonction nous renvoit donc un bool en et via une s rie de test on peut connaitre les intentions du joueur pour ce d placer tirer un missile ces actions seront ensuite reprise par le moteur physique pour donner suite aux d placements et aux collisions si n cessaire Pour ce qui est de la configuration des touches dans les GUI deux m thodes ont t impl ment La premi re se voulait semblable la configuration des touches des jeux actuelles sont principe t bas sur une boucle tant que dans laquelle on faisait varier une valeur entre le nombre min et max quivalent aux deux valeurs ordinales la plus basse et la plus haute correspondant aux touches du clavier cette boucle s ex cutait tant que aucune touche n tait appuy de cette mani re il aurait suffit de regarder pour qu elle valeur ont t sortie de la boucle et ainsi connaitr
31. e jeu par exemple Cet diteur nous permet donc de faciliter la cr ation de carte ce qui aurait t tr s fastidieux si il n aurait pas t l Il sera bien videmment utilisable par les utilisateurs finaux de notre jeu si il y en a Vroom Studios Rapport de soutenance finale 15 Plein Gaz Projet Epita Promo 2009 2 2 2 Evolutions et Caract ristiques Au cours de l avancement du projet l diteur c est vu affubler de nouvelles options pour en faciliter son utilisation comme par exemple le chargement et l enregistrement via des fen tres windows des refontes graphique et ergonomique Donc graphiquement la carte est repr sent e par un quadrillage de 81 cases mais en m moire c est un vecteur de chaine de caract re de 81 cases Mais son principe g n ral n a pas changer l diteur fonctionne de la mani re sui vante 1 Il initialise chaque image du quadrillage sur une valeur de case vide 2 Lorsque l on clique sur Tun des objets droite une variable temporaire re oit la valeur du type de la case cliqu 3 Ensuite lorsque l on clique sur une des cases du quadrillage la valeur temporaire est assign e a l l ment du tableau qui correspond la case cliqu e 4 Pour l enregistrement c est une boucle qui passe en revue toutes les valeurs du tableau du 1 l ment au 81 l ment et qui les crient au fur et mesure dans un fichier 5 Pour l ouverture c est au
32. e la touche qui t appuyer donc celle que l on voulait configurer Mais cette m thode bloquait la fonction GLFW ce qui ne donnait pas le r sultat escompt Vroom Studios Rapport de soutenance finale 23 Plein Gaz Projet Epita Promo 2009 NZ 2 12 NX rencontr pr c demment la boucle ne faisait plus qu un ballayage de toute les valeurs des touches et l on pouvait obtenir ainsi la valeur de la touche appuy qui tait ensuite enregistrer dans le tableau des contr le du joueur Il fallait donc appuyer sur la touche que l on voulait lier une action et seulement ensuite cliquer sur le bouton de l action que l on voulait lier pour lancer la recherche de la touche appuy e Ensuite la deuxi me m thode est celle qui est dans la version finale Elle utilise une autre fonction du composant GLFW elle permet de lancer une fonction gr ce a un pointeur sur foction d s que l tat d une touche est modifi par exemple si l on relache ou touche ou si l on appuie dessus Avec cette fonction on peut recup rer la valeur de la touche appuy e ainsi que son nouvelle tat appuy ou relach Cette m thode se rapproche un peut plus des jeux commerciaux mais ce n est pas tout a fais la m me chose Lorsque l on clique sur une action lier une variable retient qu elle action a t choisi et quand on appuie sur une touche la fonction appell e par ce changement d tat va enregistrer cette touch
33. e pour la bonne action dans le tableau de contr le du joueur un ou deux Les contr le sont enregistr et charg s de mani re automatique suivant les derni res touches configur es lors d une pr c dente utilisation du jeu La configuration est charg e via un fichier qui est lu si il existe et est valide ou qui est cr avec des valeurs par defaut si il n est pas pr sent ou invalide Toutes les touches peuvent donc se voir assign es une action et il est d l gu au bon sens de l utilisateur de ne pas cr er des conflits entre les differentes actions et joueur Finalement dans la premi re version les touches qui tait assign n tait pas affich puis les derni res versions se sont vu attribu une refonte graphique ce qui a permis dans un premier temps d afficher la valeur ordinale des touches du clavier puis via une fonction de traduction les noms que l on peu donner au touches les plus utilis es cf EntreesSorties1 EntreesSorties2 EntreesSorties3 2 6 Intelligence Artificielle baudro p 2 6 1 Son R le L Intelligence Artificielle permet de jouer avec des joueurs contr l s par l ordinateur Dans le mode monojoueur et multijoueur en local on peu compl ter le nombre totale Vroom Studios Rapport de soutenance finale 24 Plein Gaz Projet Epita Promo 2009 de participant pour en avoir jusqu quatre en m me temps Ces bots suivent le circuit de mani re fr n tique il utilise les objet un br
34. ef instant apr s les avoir ramass s si ils peuvent toucher quelqu un avec leur missile par exemple 2 6 2 Principe Tout d abord l ajout de PIA a n cessit la traduction de la carte pour l ordinateur Cette traduction c est d roul e de mani re appliquer un ordre simple une case donn e Les ordres sont de quatre types en fait c est la direction que la voiture doit suivre quand elle est sur la case Le principe de traduction de la carte ressemble celui de l diteur pour ce qui est du parcours et de la condition d arr t sur le retour au d part sauf que 1a il n y a pas de bool en pour savoir si le circuit est continue puisqu il a d ja t enregistr il suit donc le circuit grace a la carte cr e par l diteur et inscrit dans la case correspondante de la matrice angle vers lequel la voiture doit tendre pour aller vers le morceau suivant cf IA1 Sachant que chaque morceau de circuit deux entr es ou sorties possible il faut savoir comment on est arriv sur le morceau actuel on garde donc en m moire l angle pr c dent et ainsi on a plus qu une seule sortie possible donc un seul angle possible vers lequelle la voiture doit tendre pour passer la suite Une fois cette traduction achev les bots seront exactement quoi faire pour finir le circuit par exemple quand un bot est sur une case avec ses position il sait o il se trouve de la m me mani re que pour les colisions avec les d
35. emps d en rammaser un autre Quand un missile est cr il prend comme direction celle de son lanceur et comme vitesse une constant qui est plus lev e que l acc l ration maximale des voiture pour pouvoir ainsi les rattraper Le d placement et les collisions ce font gr ce au moteur physique avec une boucle qui d place tous les missiles si ils existent et calcule les distances s parant les joueurs des missiles si il y a collision le joueur concern est bloqu Pour les caisses explosives elles sont elles aussi ajout es leur vecteur un joueur peut placer jusqu a 3 caisses si il en place une 4 elle remplacera une des caisse qu il a d ja plac Les collisions entre les joueurs et les caisses explosives sont trait es via le moteur physique gr ce une boucle qui v rifie la distance s parant une caisse explosive et un joueur Si un joueur percute une de ces caisses le joueur est bloqu pour un petit instant comme pour les missiles Finalement l acc l rateur modifie directement l acc l ration maximale de la voiture qui Putilise ainsi la limite est repouss e et la constante qui est ajouter a l acc l ration lorsque l on appuie sur la touche avancer et elle aussi augment e Pour r sumer la vitesse maximum est augmenter et l acc l ration aussi 2 8 MonoJoueur MultiJoueur baudro_p 2 8 1 Leurs R le Le mode MonoJoueur tout comme le mode Multijoueur permet l utilisateur de faire ce pour quoi ce
36. immersion du joueur dans la partie 1 3 3 Moteur graphique Le moteur graphique affichera l environnement du jeu les v hicules les items de mani re g n rale l ensemble des objets qui doivent appara tre au joueur durant la partie La camera sera plac e par d faut au dessus de la voiture contr l e par le joueur en question style vue la troisi me personne mais l utilisateur pourra choisir d autre vue durant la partie Vroom Studios Rapport de soutenance finale 7 Plein Gaz Projet Epita Promo 2009 1 3 4 Gestion physique Le moteur physique devra g rer tous ce qui concerne les objets en mouvement sur la carte les chocs entre les joueurs ainsi qu avec le d cor la trajectoire des projectiles Il s occupera de la physique propre chaque v hicule c est dire de l acc l ration du freinage des d rapages 1 3 5 Intelligence artificielle L intelligence artificielle devra servir contr ler les adversaires Ils devront avoir un comportement peu pr s coh rent et tre capable de se servir des divers items pr sents sur la piste Les concurrents ne seront pas imbattables c est pourquoi ils pourront parfois commettre des erreurs 1 3 6 Mode multijoueur En mode multijoueur il sera possible d affronter un autre joueur sur le m me cran mais coup en deux L intelligence artificielle devra tout de m me encore contr ler quelques concurrents pour que la course conserve son int r t
37. in s aux bruitages Ces sons sont statiques ils doivent tre tous pr sents et avoir un nom leurs permettant de garder leur ordre class ment dans le r pertoire En somme il ne faut pas y toucher ils font partis des fichiers du jeu Nous avons donc ce stade de l execution du programme un vecteur d enregiste ment renseign et nous sommes capable de lire chacun de ces fichiers Tous les v nements du jeu tels que l acc l ration ou les collisions proviennent du type voiture qui est un enregistrement de toutes les donn es concernant le d placement des bolides impl ment s dans le moteur physique Voici un extrait du type voiture Chaque champ d enregistrement contient l information n cessaire la lecture d un son Le type de v hicule l acc l ration la possession d un item ainsi que la vitesse Selon des valeurs d acceleration un son diff rent sera jou Initialement et lorsque le jouer ne poss de pas d item le champ correspondant de type string vaut la chaine de caract re vide Nous sommes donc ind pendants des touches du clavier et tout passe par le type voiture Vroom Studios Rapport de soutenance finale 36 Plein Gaz Projet Epita Promo 2009 2 12 5 La Musique Pour ce qui est de la musique nous procedons de m me mani re que pour les bruitages si l utilisateur ne souhaite pas ecouter ses propres morceaux musicaus En effet un repertoire destin exclusivment aux fichiers sons de l utilisa
38. ique3 Quand la carte est charg en m moire il est facile de savoir sur quel type de case un joueur se situe avec un div 10 des positions en x et y car une case fais 10 par 10 en taille et ensuite on peut savoir o sur la case il se situe avec un mod 10 des positions en x et y On peut ainsi faire les tests suivant les cases suivant les masques et donc modifier les caract ristiques de la voiture en fonction de sa position sur une case Pour r sumer on se sert de chiffres des dizaine pour savoir sur quelle case la voiture se situe et des chiffres de unit es pour savoir a quelle endroit sur la case la vioture se trouve Vroom Studios Rapport de soutenance finale 22 Plein Gaz Projet Epita Promo 2009 Pour conclure le moteur physique est assez g n rale pour tre appliquer a tous les types d objet par exemple l Intelligence Artificielle utilise le moteur physique de mani re autonome et sans aide autre que ses fonctions ou proc dures propres 2 5 Entr es Sorties baudro_p 2 5 1 Son r le Sp cifications La gestion des entr es sorties est n cessaire l utilisateur pour qu il puisse trans mettre les actions qu il d sire eff ctuer l ordinateur Cette gestion ce fait juste avant le moteur physique ce qui lui permet de savoir exactement ce que le joueur veut faire Les entr es sorties sont limit es au clavier toutes les touches standards sont uti lisables et configurables via une page dans l
39. is des fonctions qui nous permett es d envoyer uniquement du texte Pour notre jeu nous allons avoir besoin d envoyer plusieurs types de donn es la fois C est pourquoi nous allons utiliser un buffer Voici un exemple de buffer de type trame Notre buffer est un enregistrement qui peut contenir plusieurs donn es Client Pour envoyer un buffer le principe est peu pr s le m me que pour envoyer du texte On va d finir une variable dans notre cas buffer de type trame puis on va remplir chaque champ de cet enregistrement avec les valeurs que l on souhaite envoy es Ensuite nous allons stock la taille de ce buffer dans une variable de type integer dans notre cas a en appelant la fonction sizeof buffer Et enfin pour envoyer notre buf fer nous allons utiliser la proc dure ClientSocket1 Socket SendBuf buffer a dans notre cas Socket1 qui prend en param tres un buffer et sa taille Pour recevoir un buffer le principe est lui aussi quivalent celui du chat on utilisera la m me proc dure que pour le chat procedure TForm1 ServerSocket1ClientRead Sender TObject Socket TCustomWinSocket On r cup re tout d abord la taille du buffer re u grace la fonction socket ReceiveLength Puis on va tester si cette taille est inf rieure ou gale a la taille maximum d un buffer Puis on utilise la fonction socket ReceiveBuf b taille b est une variable de type trame et taille corres pond
40. isissons le type de spatialisation du son la fr quence d chantillonnage et le nombre de canaux d sir s pour l application Ces informations peuvent dans un souci de compatibilit tre chang es dans le menu principal du jeu tout comme la r solution d affichage par exemple Nous avons cod trois fonctions de base qui permettent de lire de pauser et de stopper la lecture d un fichier en fait en utilisant le type TSound d fini plus bas Dans un m me temps le statut change d tat selon le type num r suivant Voir annexe pour le code Ainsi nous savons si un fichier est en cours de lecture ou non Nous pouvons par exemple attendre la fin de la lecture d un fichier pour en d buter la lecture d un autre La fonction pListDir cod e par nos soins parcours un r pertoire donn en param tre la recherche de fichier d un type d fini ici des fichiers musicaux Puis nous remplissons un vecteur contenant des l ments du type Tsound que nous avons cod de la mani re suivante Nous pouvons d finir dans l initialisation de la librairie un nombre de cannaux de lecture nous permettant de g rer parfaitement notre liste de lecture en compl ment des tats TMusicState Chaque morceau ne peut pas tre lu plusieurs fois simultan ment et le nombre de fichiers lus simultan ment est connu 2 12 4 Les Bruitages Au lancement du programme un vecteur d enregistrement est rempli grace a la proc dure pListDir avec les sons dest
41. jeu ainsi qu une deuxi me aide qui est inclus avec l installation L aide qui est incluse sur notre CD ROM est au format HLP Les fichiers au format HLP peuvent tre lu sur tous les pc ayant pour syst me d exploitation cr par Microsoft Les deux aides r alis es expliquent clairement comment installer le jeu ainsi que l utilisation compl tes de toutes les options du jeu Vroom Studios Rapport de soutenance finale 38 Plein Gaz Projet Epita Promo 2009 Conclusion Pour conclure nous sommes relativement content de nous dans la mesure o nous avons atteint l objectif que nous nous tions fix au d part c est dire mener ce projet a terme Aussi nous sommes heureux d avoir termin ce projet a 4 ce qui malheure sement n est pas toujours le cas Ce fut surtout une tres bonne exp rience aussi bien au niveau de l acquisition de nombreuses connaissances qu au niveau de la r alisation d un travail en groupe En effet il n est pas toujours simple de faire abstraction des diff rences qui opposent les membres d un groupe dans le but de travailler le plus fficacement possible Vroom Studios Rapport de soutenance finale 39 Plein Gaz Projet Epita Promo 2009 Annexes glBegin GL_QUADS glVertex3f 1 0 1 0 0 0 glVertex3f 0 0 1 0 0 0 glVertex3f 0 0 0 0 0 0 glVertex3f 1 0 0 0 0 0 glEnd Qui dit cube dit 6 faces rectangulaires glClear GL_COLOR_BUFFER_BIT glClear GL_COLOR_BUFFER
42. l angle d acc l ration avec un modulo de 27 pour avancer l acc l ration g n rale de la voiture est augment e et ses positions se lon x et y sont recalcul es en leur ajoutant l acc l ration multipli e par cos angleDeLaVoiture pour les x et l acc l ration multipli e par sin angleDeLaVoiture pour reculer l acc l ration g n rale de la voiture est d cr ment e et les positions sont recalcul es de la m me mani re que pr c demment si aucune touche n est appuyer alors la voiture doit d c l rer ce qui est tra duit pas le fait de diviser l acc l ration g n rale par une constante jusqu ce qu elle soit trop petite et finalement r initialis a z ro Les position sont recalcul es comme pr c demment pour utiliser l objet si la touche correspondante est appuy e et que le joueur a bien un objet a utiliser alors une procedure de cr ation et de lancement est ex cut e Pour le d placement des missiles qui est une action ind pendante du reste une boucle se charge de passer en revue le vecteur de missile et de v rifier si il faut les d placer On utilise leur acc l ration qui est constante pour modifier leur ca ract ristiques comme pour les voitures Finalement une des grosse tape les collisions avec les decors Il faut savoir que lors de l enregistrement avec l diteur de carte chaque case c est vu attribuer un type que Pon pourrai appeller masque cf MoteurP hys
43. la taille du buffer re u pour r cup rer le buffer r u Le buffer est ainsi stock dans la variable b Cf client chat Serveur Tout comme pour le serveur du chat on va utiliser la procedure TForm1 ServerSocket 1ClientRead Sender TObject Socket TCustomWinSocket Comme pour le client on r cupere la taille du buffer recu toujours avec la m me fonction et on teste si la taille du buffer est inf rieure ou gale a la taille maximum d un buffer et on stocke le Vroom Studios Rapport de soutenance finale 33 Plein Gaz Projet Epita Promo 2009 buffer regu dans une variable de type trame voir client ci dessus Ensuite on va se ser vir de la m me boucle que pour le serveur du chat A la difference que la fonction d en voie va tre ServerSocket1 Socket Connections I SendBuf Buffer taille Buf fer est le buffer re u par le serveur et taille est la taille du buffer re u Cf serveur chat Envoi de coordonn es Grace a la r alisation du buffer nous avons r alis un serveur et un client compor tant chacun une fen tre OpenGL Chaque fen tre OpenGl comporte un carr il est possible de faire bouger le carr gr ce au programme client Le client va envoyer au serveur tous les d placements que le carr va faire ainsi la fen tre OpenGL du serveur affichera aussi les d placements du carr Cf cube Vroom Studios Rapport de soutenance finale 34 Plein Gaz Projet Epita Promo 2009 Pour
44. ner environ 1 3 du temps pour afficher une image 35 pourcent de fps suppl mentaires par rapport au moteur initiale sans optimisation Ici on dessine l environnement autour de la map en permanance et au centre on recup re la position du v hicule gr ce au type voiture chaque image et on affiche uniquement les morceaux de circuits concernant la voiture On peut changer le coefficient pour avoir une profondeur de champ supp rieur mais en l tat actuel des choses on gagne d j suffisament d images par seconde pour adopter ce mode d affichage de la map On peut augmenter le coefficient de proximiter jusqu a obtenir une augmentation de la moiti du taux d image par seconde 2 1 5 Fichiers 3DS et Chargement Le convertisseur a pour but d importer des objets 3DSMax et de les transformer en fichier exploitable ensuite par le moteur graphique Cela 2 avantages cons quents La cr ation simple d objets complexes primitives L obtention des donn es selon notre souhait position Voir annexe pour le code Les fichiers d origines sont de type ASCII format d export de 3D studio Max Premi rement le programme va chercher dans ce fichier la liste des faces et l enregistre dans un tableau Ensuite le programme acc de aux coordonn es des vertex de chaque faces qui sont enregistr es dans le fichier r sultat On obtient une liste de coordonn es des vertex La texture appliqu e l objet est stock e dans la
45. nt effectu s pour toutes les voitures qui sont stock es dans un vecteur de voiture Si il y a en effet collision les angles d orientation sont interchang s et les acc l rations aussi Nous avons aussi int gr les collisions avec les objets immobiles si une voiture col lisione avec une bombe pos e sur la piste par exemple un timer est lanc pour que la voiture concern e ne puisse plus rien faire pendant un certain temps ce qui corres pond au malus engendr par la collision Une fois que la collision a eu lieu et que les cons quences on t appliqu es l objet est effac du tableau Et finalement les collisions avec les missiles ce test est aussi r alis via une boucle qui parcours la liste des voitures et des missiles et qui modifie lorsqu il y a collision la vitesse de la voiture concern e et qui la bloc pendant un certain temps de la m me mani re que pour les objets immobiles le missile est effac de la liste pour ne plus interf rer avec les autres voitures aux tours de boucles suivants Vroom Studios Rapport de soutenance finale 21 Plein Gaz Projet Epita Promo 2009 Ensuite la modification des caract ristiques de la voiture du des joueur s est g rer suivant les touches appuy es ou non On regarde si les touches sont appuy es ou non que si la voiture n est pas bloqu e cause d un missile ou d un objet immobile pour tourner si une des touches est appuy es on incr mente ou d cr mente
46. ores mp3 wav etc 2 12 2 Choix de la Librairie Pour le son nous utilisons la librairie FMOD t l chargeable gratuitement sur le site http fmod org Nous avons pr f r utiliser cette derni re plut t qu une autre pour les raisons suivantes Tout d abord celle ci est simple d utilisation et parfaitement fonctionnelle Fmod n utilise pas des milliers de fonctions et est malgr tout tr s performante Elle permet en effet de lire tres simplement des sons que ce soit en mp3 wav ou autres et de leur donner divers effets qui peuvent tre tres int ressants pour un jeu en 3D comme le notre Et ce avec un rendu assez r aliste Ensuite la dll est tres l g re seulement 150 Ko par rapport aux autres dll utilis es par le jeu et m me par rapport aux autres dll de gestion des sons Ensuite la dll est tr s l g re seulement 150 Ko par rapport aux autres dll utilis es par le jeu et m me par rapport aux autres dll de gestion des sons Enfin fmod fonctionne sur n importe quelle plate forme M me si en prepa notre projet n est pas sens fonctionner sur d autres plate formes que Windows cela nous a paru tre preuve de bonne qualit Vroom Studios Rapport de soutenance finale 35 Plein Gaz Projet Epita Promo 2009 2 12 3 Fonctions Principales Pour commencer l initialisation de FMOD avec les param trages de lecture des fichiers Gr ce la procedure pInitFMOD que nous avons cod nous cho
47. ou dans des jeux Par contre tous les mod les 3D sont fait maison et a se voit cf Modele3D1 Modele3D2 2 11 Mode r seau baudro_p auriau_f cadill_j 2 11 1 R le du mode r seau Le mode r seau de notre jeu permet plusieurs utilisateurs les clients se jouer les uns contre les autres via un serveur qui est lui m me joueur Le r seau est int gr au GUI 2 11 2 Avancement du mode r seau Nous avons d buter la cr ation du mode r seau pour la 3 me soutenance Pour cela nous avons commenc la cr ation d un petit chat salon de discussion avec les composants delphi TclientSocket et TClientServer Nous allons d tailler leurs fonction nements Vroom Studios Rapport de soutenance finale 31 Plein Gaz Projet Epita Promo 2009 Client Le client est le programme dont l utilisateur va se servir pour envoyer des messages dans un salon de discussion Avant de commencer tchater l utilisateur doit tout d abord entrer l adresse IP ainsi que le port du serveur auquel il veut se connecter Une fois la connection accept e par le serveur l utilisateur peut envoyer du texte qui sera vu par tous les utilisateurs connect s au serveur Le composant TClientSocket nous a simplifi la cr ation du chat car il comporte de nombreuses fonctions int gr es simples utiliser Voici quelques proc dures bri vement expliqu es qui font partie du programme client Cette premi re proc dure est associ
48. ow MSIE FIG 21 Cube Vroom Studios Rapport de soutenance finale 55 Plein Gaz Projet Epita Promo 2009 FIG 22 Client Chat FIG 23 Serveur Chat Vroom Studios Rapport de soutenance finale 56 Plein Gaz Projet Epita Promo 2009 FIG 24 Serveur FIG 25 Client Vroom Studios Rapport de soutenance finale 57 Plein Gaz Projet Epita Promo 2009 Gae O 9 AG Pr rr O 6 2 A Adresse M http 127 0 0 SITE 202eme 420soutenance ED les gt Fic 26 SITE News BU 19 02 2005 20 27 59 News BU 19 02 2005 15 13 58 Fic 27 Capture News Vroom Studios Rapport de soutenance finale 58
49. premi re ligne du fichier Recherche Nous avons repris les sources d un loader de fichiers trouv sur Internet mais les principaux d fauts de ce loader sont que d une part il est extr mement com plexe il prend en compte tous les effets lumi re ombre etc d autre part il provoquait norm ment de conflits entre les proc dures utilis es pour les textures du projet et celle utilis e par le loader 3ds il y avait aussi des conflits au niveau d enregistrements qui taient d clar s plusieurs fois Afin de faire correctement le loader nous avons du ef fectuer des pas a pas de toutes les fonctions qu il utilise afin de comprendre comment il fonctionne le probl me c est qu il utilise des classes d finies et nous n avons pas encore compris leurs fonctionnements Nous avons du modifier le loader car il est tait con u Vroom Studios Rapport de soutenance finale 14 Plein Gaz Projet Epita Promo 2009 la base pour loader qu un seul mod le ainsi nous avons cr un tableau de mod les T3DModel Ensuite pour placer les mod les aux endroits voulus il n y a juste qu a utiliser la fonction Gltranslate et ventuellement des Glrotate Pratique Nous avons impl ment une proc dure permettant de charger un model de type 3DSMax la position souhait e en x y et z Par la suite il est ais de modifier son orientation avec la fonction glRotate Cette procedure On peut afficher tous les models destin s
50. rs bon quelque soit la r solution Ensuite Le texte affich n est plus statique la premi re version affich e des images mais dynamique une proc dure d affichage de texte a t impl ment pour all ger le code et pour faciliter la gestion du GUI elle lit caract re par caract re et cr e un GL_QUADS avec la bonne partie de la texture qui r capitule les lettres ou les chiffres la texture est d clin e en deux version une pour le texte bleu et une autre pour le texte rouge les chiffres ont une couleur unique Le GL_QUADS ainsi que les espacements sont modifi s en fonction de la taille d affichage demand e en param tre Ce texte ainsi affich peut tre et est utilis en pleine partie pour faire passer des informations aux joueurs La version finale du GUI permet ainsi d ajouter des fiches et des nouveaux boutons de mani re assez rapide et simple elle permet donc d int grer rapidement les ajouts ou les modifications li es au projet tant que celles ci ne sont pas trop importantes dans Parchitecture g n rale du projet Vroom Studios Rapport de soutenance finale 19 Plein Gaz Projet Epita Promo 2009 cf GUI2 2 4 Moteur Physique baudro_p 2 4 1 Son r le Sp cifications Le moteur physique va permetre de fixer des r gles dans le monde que nous avons tent de cr er c est lui qui va s occuper des collisions avec les d cors les voitures pr sentes sur le circuit les missiles ainsi qu
51. rubrique liens on trouve galement une liste de bonnes adresses concernant le d veloppement delphi OpenGL Une gestion des news a t impl ment e pour suivre en direct l avancement du projet Pour finir il est possible de contacter chaque membre du groupe via le site 2 13 2 Design Le design du site ressemble fortement celui du jeu c est dire des couleurs vives rappelant l univers cartoonesque dans lequel nous nous sommes plong s Vroom Studios Rapport de soutenance finale 37 Plein Gaz Projet Epita Promo 2009 2 13 3 L avancement du site web Lors de la premi re soutenance le site tait quasiment dans sa version finale Il restait seulement int grer la gestion des news Cf Capture news Nous devions pr senter le site web pour la deuxi me soutenance ce qui a t r alis La gestion des news a t impl ment e grace a une base de donn e MySql g r e par EasyPhp Cf Site 2 14 Assemblage g n ral du projet auriau_f baudro_p bes son_p cadill_j 2 14 1 Installeur et d sinstalleur A l aide d un programme nous avons cr un installeur et un d sinstalleur Le fichier setup exe se lance directement insertion du CD l aide d un fichier autorun inf 2 14 2 R unification des unit s baudro_p besson_p 2 14 3 Manuel d installation et d aide auriau_f cadill j Nous avons r alis un manuel d installation au format papier qui est fourni dans le boitier du
52. s aux d placements des joueurs touches appuy es v rification des r gles du jeu victoire r cup ration des checkpoints le moteur graphique va se charger de tout afficher leurs bonne positions Avant cette boucle du jeu il y a une petite proc dure d initialisation qui concerne la cr ation de chaque joueur c est a dire leur positionnement sur la case du d part la r initialisation de leurs objets puis le chargement de la carte et des objets pr sent sur celle ci et d autre petits d tails propre chaque partie De m me apr s la boucle du jeu ce trouve la d sactivation de certain fonctions inutile autre part que dans une partie et le nettoyage des diverses choses inutiles cf MonoMultil Vroom Studios Rapport de soutenance finale 29 Plein Gaz Projet Epita Promo 2009 2 9 Effets Visuels 2 9 1 Lumi res auriau f cadill j baudro_p La lumi re est un effet plus que primordiale c est elle qui donne tout le relief aux modeles mais elles ne sont que peu souvent modifiables dans les jeux alors pourquoi ne pas laissez l utilisateur au moins choisir entre un jeu de nuit avec quelques spots ou en plein jour Cette option est modifiable partir du GUI juste avant de lancer la partie 2 9 2 Brouillard auriau f cadill_j baudro_p Le brouillard peut donner un effet plutot sympathique si il est utilis avec parcimonie de plus cet outil est tres facile utiliser sous OpenGL
53. si l diteur n arrive pas se situer lui m me Le chargement des cartes se fait de mani re automatique le jeu charge les cartes qui sont pr sentes dans le dossier map qui est lui m me dans le r pertoire du jeu les cartes doivent avoir une extension en map Si aucune carte n est pr sente dans ce dossier alors le jeu refuse d aller plus loin que le menu g n ral et affiche un message d erreur et la seule chose que l on peut faire et de cliquer sur quitter Vroom Studios Rapport de soutenance finale 17 Plein Gaz Projet Epita Promo 2009 Cet diteur et donc plut t simple utiliser m me si il ne fait que des circuit en 2 dimensions il est complet dans ses fonctionalit es les joueurs pourront ainsi cr s de nombreux circuits et de mani re assez rapide 2 3 GUI baudro_p 2 3 1 Son R le Le GUI General User Interface permet de faciliter le lancement ainsi que la gestion des options pour l utilisateur Il se presente sous forme de bouton cliquer pour passer d une fiche une autre C est lui qui est lanc en premier il permet de naviguer entre les diff rents modes de jeu de configurer les contr les la r solution et finalement de lancer la partie Il centralise toutes les informations du projets et les redistribue pour initialiser une partie par exemple Putilisateur va lui dire combien de joueur contr l par l Intelligence Artificielle il veut avoir dans son jeu sur quelle c
54. ssi une boucle qui lit toutes les lignes du fichier map et qui les stocke dans les l ments du tableau ensuite chaque image du quadrillage recoit la valeur du tableau lui correspondant cf EditMap1 L aspect visuel a beaucoup volu mais le principe de choisir son morceau de circuit a droite et de cliquer sur le cadrillage de gauche pour l appliquer a toujours t le m me De nouvelles options sont apparues ensuite Tout d abord le choix entre 2 modele diff rents pour le m me type de case ce fais grace un ComboBox 1 Ensuite le chargement et l ouverture des cartes se font via des fen tre windows 2 ce qui facilite l utilisation pour les futures joueurs La ComboBox va seulement intervenir lors du cliquage sur les images de selection si l on clique et que le morceau selectionn e est du type 1 se sera une chaine de caract re diff rente qui sera enregistr e dans le tableau et finalement dans le fichier cf EditMap2 EditMap3 Vroom Studios Rapport de soutenance finale 16 Plein Gaz Projet Epita Promo 2009 De plus l diteur poss de une fonction qui empeche les utilisateurs d enregistrer des circuits qui ne tourne pas rond cette fonction est appell e quand on tente d enregis trer le travail si le circuit est mauvais un message nous informe du probl me et l on retourne sous l editeur cf EditMap4 Cette v rification s effectue de la mani re suivante en premier lie
55. teur existe S il est vide ou contient un fichier non valide le programme va utiliser les fichiers par d faut Pendant la partie une musique d ambiance pouvant tre arr t e ou reinitilis e et pendant le GUI un autre Par contre si l utilisateur souhaite ecouter ses fichiers le r pertoire de destination de ses fichiers tant rempli au moins un fichier la proc dure pListDir va scanner le repertoire et cr er une liste de lecture Pendant l execution du jeu l interface permet l affichage de la musique jou e Cette playlist se manipule avec des fonctions telles que mute pause prec suiv et stop 2 12 6 Conclusion D but et en partie achev en ce qui concerne les algorithmes pour la 3 me sou tenance le son est dor navant parfaitement operationel et rempli toutes les fonctions ennonc es dans le cahier des charges L acc s la personnalisation des listes de lecture est un atout pour notre projet M me si l id e du repertoire allou sa playlist est reprise d un cell bre jeu de voiture son application est propre notre jeu 2 13 Site web cadill j auriau f Parallelement au d veloppement du jeu nous avons cr e un site web qui a eu pour but de pr senter le projet aux internautes Son adresse est http lazit free fr 2 13 1 R le du site web Sur ce site on trouve le cahier des charges les diff rents rapports de soutenance ainsi que les versions b ta et la version finale du jeu Dans la
56. thermique et station m t o sur port s rie L ann e pass e Epita lui a permis de comprendre les m canismes de la pro grammation ce qui lui permettra d aborder sereinement ce projet Jonas Cadillon Jonas vient de Dax dans les Landes il a d but l informatique l ge de 12 ans Il a quelques bases de programmation en Delphi ainsi qu en HTML Gr ce ce projet il pourra mieux comprendre le fonctionnement d un moteur physique et de l intelligence artificielle dans un jeu vid o 1 2 Pr sentation du projet 1 2 1 Choix Le choix du projet tant relativement libre comme la plupart des tudiants nous avons choisi de d velopper un jeu vid o Toutefois nous voulons nous baser sur un type de jeu existant tout en ajoutant une touche personnelle 1 2 2 Nature et origine Apr s avoir pass en revue bon nombre de genre de jeux vid o nous nous sommes fix s sur la simulation de course de type arcade c est dire la possibilit d utiliser des Vroom Studios Rapport de soutenance finale 6 Plein Gaz Projet Epita Promo 2009 items tout au long des courses Nous n esperons pas galer les c l bres Mario kart et Crash Team Racing mais nous voulons essayer de cr er un jeu interactif et diver tissant Les graphismes comme les voitures seront simplistes et caricaturaux proche du monde enfantin Ceci nous permettra de nous concentrer particuli rement sur le principe m me du jeu son interacti
57. u on va chercher le d part et v rifier qu il est unique avec une boucle qui passe en revue toutes les cases du vecteur qui repr sente la carte ensuite si le d part et pr sent on va lancer une autre boucle qui va suivre le circuit et qui va v rifier que chaque passage d un bout de circuit un autre et valide Dans cette boucle on va proceder comme cela on retient la position de la case pr cedente avec les position de la case actuelle on connait quelle type de case elle repr sente et donc quelle sortie elle doit avoir 2 sorties par case avec la position pr c dente on sait par o on est arriv on a donc plus qu une sortie qui nous donne la position de la case suivante tester si cette case suivante se raccorde avec la case courante alors on passe la suivante en avan ant aussi la case pr c dente si elle ne peut pas se raccorder alors un bool en de continuiter passe faux et on sort de la boucle tant que la boucle tant que s ex cute tant que l on est pas retomb sur le d part on le test avec les positions de la case ou que le bool en de continuiter et vrai finalement on regarde cause de quoi on est sortie de la boucle et on a notre r ponse Finalement l diteur avez besoin d un param trage manuelle pour connaitre sa position sur le disque ce positionnement ce fait par une demande simple l utilisateur via une fen tre d ouverture windows
58. un checkpoint une boucle v rifie si il l a d ja pris les checkpoints ont un identifiant unique g n r avec leurs positions en x et y et si ce n est pas le cas le checkpoint est enregistr dans la liste du joueur sur une des valeurs n gatives Quand le joueur passe sur la case d part une boucle v rifie si il a pris tous les checkpoints la liste n a plus de valeur n gative et valide le tour si c est le cas Son nombre de tour est diminu de 1 et si il passe 1 alors le joueur est bloqu ses appels aux fonctions pour le d plac sont d sactiv s quand son nombre de tours restant est a 1 2 7 2 Le classement Le classement est affich sur lorsque le joueur a fini tous ses tours de circuits c est a dire quand son nombre de tour est a 1 Il affiche les num ros des joueurs et leurs temps lorsq il ont fini leurs tours Le temps afficher correspond l heure de fin de course sp cifique chaque joueur moins l heure de d part de la course qui est enregistr e lorsque l on d marre juste apres le compte a rebour Le premier joueur qui a sont nombre de tour restant qui passe a 1 est le premier qui est enregistr dans le vecteur classement ensuite des qu un joueur passe a 1 une boucle cherche la premi re place libre dans le classement et l enregistre et ainsi de suite le vectuer se remplis de cette mani re Lorsque le classement est affich le joueur ne peu plus se d pla
59. vit tout en cr ant un univers joyeux 1 2 3 Int r t Ce projet pr sente plusieurs avantages Tout d abord nous apprendrons chercher des informations par nous m me sur la programmation en Delphi et sur l ensemble des outils que nous allons utiliser De plus nous acquierrons des connaissances dans le domaine de la 3D de la cr ation d un moteur physique de la gestion de l intelligence artificielle des ennemis etc C est galement l occasion d apprendre coordonner un projet dans un temps imparti ce qui n est pas toujours une chose simple 1 3 D coupage du projet 1 3 1 Aspect graphique Pour le graphisme en fait ce qui concerne l esth tique du jeu nous allons lui cr er son propre style se rapprochant d un certain point de vue du monde enfantin avec des formes et des couleurs joyeuses agr ables voir Pour garder un m me esprit stylistique tout au fil des mois de r alisation du projet nous allons faire un site se rapprochant du th me graphique du jeu en attendant sa finalisation graphique d finitive du mois de juin 1 3 2 Aspect sonore Peut tre de moindre importance en terme de travail elle devra permettre aux joueurs de se sentir un peu plus immerg s dans la course Il est aussi pr vu de r cup rer dans des banques de sons libres des effets sonores sp ciaux tels que des freinages les klaxons et tous les bruits provenant de la m canique notamment lors des acc l rations accentuant l

Download Pdf Manuals

image

Related Search

Related Contents

Manuale per stampante termica TPR      Estación de purga compacta con conector universal  iPhone Guia do Usuário  Kit de Instalação Manual de instalação do iKey 2000/2032  Instructions for Use  KEF Audio KEF HTB2 User's Manual  Project title - Knowledge-Based and Software Systems  Transcend JetRam 256MB DDR SO-DIMM DDR400 CL2.5  

Copyright © All rights reserved.
Failed to retrieve file