2. 2
Dédicace :
Sondes Jaouadi :
Maman, Papa, vous représentez pour moi le symbole de la bonté par excellence, la source
de l’amour et l’exemple du dévouement. Votre prière et bénédiction m’ont été d’un grand
secours pour mener à bien mes études. Aucun dédicace n’ait jamais assez pour exprimer ce que
vous méritez pour tous vos sacrifices depuis ma naissance, durant mon enfance et jusqu'à
aujourd'hui. Que Dieu, le tout-puissant, vous accorde santé, bonheur et longue vie et fait en
sorte que, jamais, je ne vous déçoive.
A mes chers et adorables frères et sœurs :
• Saif, mon idole et source d’inspiration.
• Sofiene le ‘beauty’ de ma vie que j’aime profondément.
• Salma mon âme sœur, l’amie qui m’a accompagné durant mon voyage, la force
qui rassure le plus peureux, la femme au grand cœur.
• Sanouda, prunelle de mes yeux.
Votre joie et votre gaieté me comblent de bonheur. Puisse Dieu vous garder, éclairer votre route
et vous aider à réaliser à votre tour vos vœux les plus chers.
A mes chères cousines Khoukha, Tbibti et, Dadouja merci pour votre support et votre amour.
A mes cher(e)s ami(e)s Amoula source de bonheur, Abir la touche Artistique, Shayma la
folie, Marwa le sourire, Karim, cher Kassou, Saz, Saiyef, Auday, Cherif, Hamidou, Ahmed,
3ak3ouk et Aziz el ‘Chella’ sans vous la vie sera moins belle et moins radieuse, que je vous
aime.
Et finalement à toutes les personnes et les ami (e) s qui ont participé à l’élaboration de ce
travail, à tous ceux que j’ai omis de citer.
3. 3
Mohamed Karin Sakran :
Je dédie ce projet à :
Ma grand-mère, qui a œuvré pour ma réussite, par son amour, son soutien, tous les
sacrifices consentis et ses précieux conseils, pour toute son assistance et sa présence dans ma
vie. Reçois à travers ce travail aussi modeste soit-il, l'expression de mes sentiments et de mon
éternelle gratitude.
Mes amis qui n'ont cessé d'être pour moi des exemples de persévérance, de courage et de
générosité.
Arwa Argoubi :
Je dédie ce travail à :
À ma mère et mon père en témoignage de ma profonde affection et mon infinie reconnaissance.
À ma chère sœur : Amira
À mes chers amis : Saif , Rahma , Amira et Rihem
A tous mes amis
Merci pour ceux qui n’ont jamais cessé de me soutenir tout au long de la réalisation de ce projet.
4. 4
Remerciements
Ce projet est le résultat d'une démarche appuyée par la contribution de plusieurs
personnes.
Nous tenons à remercier le corps administratif et enseignant de « l’Institut Supérieur des
Arts Multimédia de Manouba » pour les divers enseignements qui nous ont permis de réaliser
notre projet de fin d’études.
Nous remercions, plus particulièrement, cher monsieur Mohamed Karim AZIZI notre
encadrant technique et chère madame Dorra MASRI notre encadrante graphique pour nous
offrir les meilleures conditions de travail et pour les précieux conseils prodigués tout le long de
notre projet.
Nous exprimons, également, nos vives gratitudes et nos meilleurs respects, à notre
professeur et encadrant Mohamed Ali CHALBI pour sa disponibilité, sa patience et son aide
précieux ainsi à madame Samia CHELBI pour son accueil chaleureux au sein de la société «
NetInfo »
Finalement, nous tenons à exprimer nos remerciements les plus sincères aux membres
de jury qui ont pris la peine d’évaluer ce travail faisant preuve d’attention et de patience.
5. 5
Table de matière :
INTRODUCTION.......................................................................................................... 8
1. Contexte général du projet :.............................................................................. 9
2. Objectifs du projet : .......................................................................................... 9
3. Environnement de travail : ............................................................................... 9
4. Approche méthodologique : ........................................................................... 10
...................................................................................................................................... 13
...................................................................................................................................... 13
ETAT DE L’ART......................................................................................................... 13
Introduction :............................................................................................................. 14
1. L’univers des jeux vidéo : .............................................................................. 14
1.1 Les types des jeux vidéo : ............................................................................... 14
1.2 Les genres des jeux vidéo : ............................................................................. 17
1.3 Les Modes des jeux vidéo :............................................................................. 22
1.4 Les Types d’univers des jeux vidéo :.............................................................. 24
1.5 Les jeux vidéo à potentiel pédagogique (Serious Game) :.............................. 26
1.6 Le public cible des jeux vidéo :....................................................................... 27
1.7 Bilan et choix : ................................................................................................ 28
2. Etude de l’existant : ........................................................................................ 29
2.1 Etude des jeux similaires................................................................................. 29
Conclusion :.............................................................................................................. 34
Beyond Eden, The Star of Gora ................................................................................... 35
Introduction :............................................................................................................. 36
1. Description et Synopsis du jeu vidéo :.................................................................. 36
1.1 But du produit : ............................................................................................... 36
1.2 Objectifs personnels :...................................................................................... 36
1.3 Clientèle cible : ............................................................................................... 36
6. 6
1.4 Synopsis du jeu : ............................................................................................. 36
1.5 Description visuelle et sonore :....................................................................... 38
1.6 Schémas de navigation :.................................................................................. 38
2. Spécifications des besoins fonctionnelles :........................................................... 39
3. La conception de l’application :............................................................................ 43
4. Spécifications des besoins non fonctionnelles :.................................................... 49
5. Logiciels utilisés : ................................................................................................. 58
Conclusion :.............................................................................................................. 58
Let’s Learn.................................................................................................................... 59
Chapitre 1 : Sprint 2 : Création de l'environnement :................................................... 60
Introduction :............................................................................................................. 60
1. Tableau prévisionnel du sprint : ..................................................................... 60
2. Conception de l’environnement, modélisation et programmation : ..................... 65
2.1 Première mission :........................................................................................... 65
2.2 Deuxième mission :....................................................................................... 70
2.3 Troisième et quatrième mission :.................................................................... 72
2.4 Cinquième mission.......................................................................................... 84
2.5 Sixième mission .............................................................................................. 93
Let’s Fight : .................................................................................................................. 94
Sprint 3 : conceptions des personnages, modélisation et programmation.................... 95
Introduction............................................................................................................... 95
Tableau prévisionnelle du sprint :............................................................................. 95
1. Création des personnages joueurs................................................................... 99
1.1 Mission 1 et 2 : ................................................................................................ 99
1.2 Missions 3/4/5/6 :.......................................................................................... 107
2. Création des personnages non joueurs : ....................................................... 121
2.1 Mission 2 :..................................................................................................... 121
7. 7
2.2 Mission 4 :..................................................................................................... 127
2.3 Mission 5 :..................................................................................................... 132
2.4 Mission 6 :..................................................................................................... 139
Sprint 4 : Création de la charte graphique :................................................................ 147
Introduction :........................................................................................................... 147
Tableau prévisionnelle du sprint :........................................................................... 147
1. Le logo :........................................................................................................ 148
2. Conception et création des GUIs :................................................................ 150
2.1 Interface du Menu Principal :........................................................................ 151
2.2 Interface du Menu Pause :............................................................................. 153
2.3 Interface Game Over:.................................................................................... 154
2.4 Intégration des menus : ................................................................................. 155
2.5 Interfaces du jeu :.......................................................................................... 157
Let’s Win :.................................................................................................................. 160
Sprint 5 : création des cinématiques :......................................................................... 161
1. Tableau prévisionnelle du sprint : ................................................................ 161
2. Création de la cinématique : ......................................................................... 162
Sprint 6 : Achèvement du projet :............................................................................... 175
1. Tableau prévisionnelle du sprint : ................................................................ 175
3. Conception sonore :...................................................................................... 176
4. Exportation du projet :.................................................................................. 184
5. Publication du jeu :....................................................................................... 186
Conclusion :................................................................................................................ 188
1. Bilan du projet : ............................................................................................ 188
2. Bilan personnel :........................................................................................... 188
3. Perspectives : ................................................................................................ 188
Bibliographie :............................................................................................................ 194
9. 9
1. Contexte général du projet :
Le temps accordé aux loisirs prend une place de plus en plus importante dans la vie des
jeunes d’aujourd’hui. En effet, plusieurs observations révèlent la participation massive de la
tendance des jeux vidéo à notre épanouissement quotidien. Notamment, et étant des jeunes
Gamers, nous avons grandi avec ce phénomène qui, actuellement, fait partie de notre culture.
Cependant, les questionnements qui se présentent à ce niveau sont : peut-on faire partie
de ce monde créatif qui uni à la fois la science et l’art ? Comment outiller efficacement nos
connaissances pour affronter la démarche complexe de la conception d’un jeu vidéo ?
Notre projet de fin d’études vise à la conception et la réalisation d’un jeu vidéo 2D avec
une vue isométrique pour clôturer notre cursus universitaire à l’Institut Supérieur des Arts et
Multimédia de la Manouba (ISAMM). D’ailleurs, il constitue une occasion pour déployer nos
perceptions et profiter d’une expérience professionnelle complémentant notre formation à
l’ISAMM.
2. Objectifs du projet :
L’objectif principal de notre projet est de réaliser un jeu 2D permettant d’allier l’aspect
pédagogique et éducatif avec l’aspect ludique. Ainsi, nous visons à offrir un produit capable de
livrer aux joueurs une expérience complète et captivante en termes de scénario, de
fonctionnalités et de graphique. De plus, nous aspirons à tester et améliorer nos compétences
du développement du jeu vidéo, et ce en découvrant et assimilant de nouvelles connaissances.
Enfin, nous soutenons le travail d’équipe qui nous donnera un aperçu sur son importance pour
l’intégration dans la vie professionnelle.
3. Environnement de travail :
Présentation générale de la société :
Dans cette partie, nous présentons d’une manière générale l’environnement dans lequel
nous avons développé notre jeu et l’entreprise qui nous a assistés. Le stage complémentaire de
notre projet a été effectué au sein de « Net Info » pendant une durée de trois mois.
10. 10
Nom : NET-INFO.
Fondateurs : CHELBI Sabeur & CHELBI Samia.
Date de création : 1999.
Lieux : Nabeul et Tunis
NET-INFO (S.A.R.L) : est une école de formation 3D certifiée ISO 9001:2008 et
agréée par le ministère de la formation professionnelle tunisien. Depuis quinze ans,
l’institut offre des formations qualifiantes et certifiées en infographie, techniques de
production de l'image, effets spéciaux visuels, cinéma d'animation et aux jeux vidéo.
Présentation des participants au projet :
Nous sommes une équipe multidisciplinaire de trois membres ; Sondes Jaouadi
(IM), Mohamed Karim Sakran (IM) et Arwa Argoubi (CM) qui cherche à fusionner l’art
et la programmation.
Plusieurs participants ont contribué à la réalisation de ce projet :
4. Approche méthodologique :
Les disciplines adoptées :
La conception de notre jeu « Beyond Eden » nous a exigé de faire recours aux plusieurs
cours étudiés durant les trois dernières années au sein de l’ISAMM. Notre objectif consiste à
employer des connaissances pertinentes et utiles dans la réalisation de ce projet, acquises à
travers les matières suivantes :
Mr. Mohamed Ali Chalbi
Encadrant technique – Net Info
ENetInfoMme. Dorra Masri
Encadrante graphique - ISAMM
ENetInfo
Sondes Jaouadi
Développeur Designer graphique
ENetInfoMohamed Karim Sakran
Développeur
ENetInfoArwa Argoubi
Designer graphique
ENetInfo
Mr. Mohamed karim Azizi
Encadrant technique - ISAMM
ENetInfo
11. 11
Intelligence Artificielle : Nécessaire pour la création des comportements des
personnages, de l’environnement etc.
Modélisation/Animation 2D : Utile pour la modélisation des éléments de
l’environnement, des personnages et leurs animations 2D.
Programmation 2D : Essentiel durant l’utilisation du moteur de jeu Unity 2D.
Conception Orientée Objets et Génie Logiciel : Primordiale pour le cycle de vie et
les phases d’analyse et de conception du projet.
Design et Conception Graphique : Obligatoire pour la création des objets 2D ainsi
que les interfaces du jeu.
Ingénierie logicielle adoptée :
Tout au long de notre projet, Nous avons opté pour l’utilisation d’UML pour la
conception et Scrum en tant que méthodologie agile.
UML : est un langage de modélisation graphique à base de pictogrammes conçu pour
fournir une méthode normalisée pour visualiser la conception des différentes vue
(statiques/dynamiques) d'un système.
Scrum : Scrum est une méthode agile permettant de répondre à des besoins changeants
tout en livrant, de manière productive, des produits de qualité.
Structure du rapport :
Afin de garantir une organisation logique, une hiérarchie cohérente et une possibilité de
traquer l’évolution de notre projet, nous avons fixé une répartition intelligente basée d’une part
sur la méthodologie de Scrum, et d’autre part sur l’idée générale de notre jeu.
Nous avons débuté par l’introduction générale de notre projet, suivi par le chapitre d’Etat
de l’art. Le troisième chapitre nommé « Beyond Eden » englobe trois grandes parties : ‘let’s
learn’, ‘let’s fight’ et ‘let’s win’, avec une nomination fidèle à l’aventure de notre jeu.
Etat de l’art : Comporte les études préalables, présente l’analyse de l’existant et expose
les différentes contraintes et difficultés à surmonter.
Beyond Eden : Comporte la présentation du jeu ainsi que la conception et le processus
que nous avons suivi tout au long du développement du projet.
12. 12
Let’s Learn : Comporte la démarche suivie dans la création des différents
environnements.
Let’s Fight : Comporte les étapes du développement graphique et de la programmation
des personnages ainsi que le développement de la charte graphique, des interfaces et des
menus.
Let’s Win : Comporte les étapes de la création cinématiques, sonore et le test de la
version finale du jeu.
Schéma de la structure du projet.
14. 14
Introduction :
Pour acquérir l’aptitude de créer un jeu vidéo, il est indispensable de mener des
recherches approfondies pour développer une vision globale sur ce domaine diversifié. De ce
fait, la partie ci-après expose quelques éléments fondamentaux de l’univers des jeux vidéo.
Particulièrement, nous nous intéressons d’abord à ses différents types et modes. Ensuite, nous
analysons les jeux qui présentent les sources d’inspiration derrière « BEYOND EDEN : The
Star of Gora ».
1. L’univers des jeux vidéo :
1.1 Les types des jeux vidéo :
Le mot « jeu vidéo » est généralement attribué aux applications de type multimédias
ayant un rôle dévertissant et jouables sur des supports variés. Ces derniers peuvent être de gros
ordinateurs ou bien de petits appareils portables tel que les consoles, les ordinateurs personnels
ou encore les smartphones.
Il existe plusieurs manières de distinguer les différents types de jeux vidéo (la
chronologie, la thématique, l’univers, le style graphique, l’environnement, le Game Play …).
Généralement il existe quatre types de jeux : Les jeux 2D, les jeux 2.5D, les jeux 2D
isométriques et les jeux vidéo 3D.
1.1.1 Jeux vidéo en 2D :
Les jeux en deux dimensions sont les premiers survenus sur l’axe chronologique des jeux
vidéo. Ils sont caractérisés par un style simple, une jouabilité traitable puisque les actions, les
déplacements et les affichages se font uniquement sur deux axes (hauteurs et largeur) et des
interfaces graphiques faciles à gérer.
Les jeux 2D ont été toujours considérés ‘old school’ et préjugés d’ancienneté. Cependant,
de nos jours, les studios qui créent ce type de jeux vidéo cherchent souvent à favoriser l'aspect
artistique et l'originalité de leurs projets afin de s’aligner aux jeux plus modernes actuels. Nous
citons comme exemple « SHANK » [Figure 1].
15. 15
FIGURE 1 : le Jeu vidéo 2D, Shank.
1.1.2 Jeux vidéo en 2.5D :
Les jeux 2.5D, dits aussi ‘demi 3D’, ‘pseudo 3D’ ou ‘fausse 3D’, désignent les
technologies d'imagerie qui se trouvent à mi-chemin entre 2D et 3D. Ils signalent, également,
l'incrustation d'un élément 3D (personnage, objet, etc.) évoluant dans un environnement 2D ou
un jeu totalement modélisé en 3D mais dont le Game Play se base sur des mécanismes 2D.
Nous pouvons se référer au jeu « ASSASSIN’S CREED CHRONICLES » comme exemple
[Figure 2].
FIGURE 2 : Le jeu 2.5D, Assassin’s Creed Chronicles.
16. 16
1.1.3 Jeux vidéo en 2D isométrique :
Le terme "isométrique" indique généralement un effet 3D obtenu en utilisant des sprites
2D. De ce fait, les jeux 2D isométrique sont une représentation en 2D pivotée d’un angle de
quarante-cinq degrés (45°), donnant un effet d’inclinaison, de profondeur et d’obliquité. Pour
ce type, nous mentionnons comme exemple « Crafton & Xunk » [Figure 3].
Figure 3 : Le jeu 2D isométrique, Crafton & Xunk.
1.1.4 Jeu vidéo en 3D :
Les jeux vidéo tridimensionnels sont apparus quelques années plus tard avec l'évolution
des supports matériels. Ce type a annoncé l’apparition d’un nouvel axe autre que les deux
anciens axes du type 2D, ce qui a donné aux jeux un effet très réaliste et constructif. Nous
pouvons citer comme exemple Horizon Zero Dawn [Figure 4].
Figure 4 : Le jeu 3D, Horizon Zero Dawn.
17. 17
1.2 Les genres des jeux vidéo :
1.2.1 Jeux d’action :
Il s’agit d’un genre de jeu vidéo dont le Gameplay est fondé sur des interactions en
temps réel et qui fait principalement appel à la présence d'esprit et aux réflexes du joueur. Pour
ce genre, nous citons l’exemple du jeu « Battelfield 4 » [Figure 5]. D’après une étude réalisée
par des chercheurs de l'université de Rochester à New York, la pratique des jeux d'action
améliore la vision et refaçonne le traitement visuel et informationnel du cerveau.
Figure 5 : Le jeu d’action, Battlefield.
1.2.2 Jeux d’aventure :
C’est Un genre de jeu vidéo crée afin que le joueur sorte du monde dans lequel il vit tous
les jours pour se plonger dans un autre plus mystérieux qu'il va devoir explorer. Nous pouvons
citer en tant qu'exemple clé le célèbre Assassin’s Creed Syndicate [Figure 6].
Figure 6 : Assassin’s Creed Syndicate.
18. 18
1.2.3 Jeux de rôle :
C’est un type connu pour être complexe et addictif, il est basé sur une technique ou une
activité, par laquelle une personne interprète le rôle d'un personnage dans un environnement
illusoire. Le concurrent agit à travers ce rôle par des actions physiques ou narratives. Le style
est connu pour être addictif car le joueur peut finir par s’identifier à son personnage. « Final
Fantasy Online : Realm Reborn » [Figure 7] ou « World Of Warcraft » sont deux titres du
domaine qui connaissent une fidélité des joueurs depuis plusieurs années.
Figure 7 : Final Fantasy Online: Realm Reborn.
1.2.4 Jeux de plateforme:
Le jeu de plate-forme est un type de jeu où le joueur se trouve dans un environnement
instable présentant plusieurs obstacles à surmonter pour atteindre un but donné afin de mettre
l’accent sur l'habileté du joueur à manipuler le déplacement de son avatar. Notons comme
exemple le fameux jeu « OwlBoy » [Figure 8].
Figure 8 : OwlBoy.
19. 19
1.2.5 Jeux de stratégie :
Pour ce type de jeu, la capacité d'un joueur à gérer des ressources, évaluer des risques et
commander une armée est mise en valeur. Nous pouvons mentionner comme exemple la
fameuse saga « Age of Empire » [Figure 9].
Figure 9 : Age Of Empires.
1.2.6 Jeux de tir :
C’est un type dans lequel le personnage possède un pistolet ou une arme à longue portée
qui sont utiles pour tirer sur les adversaires et achever des missions. Le joueur et mis sous la
preuve afin de vérifier sa vitesse et son temps de réponse. « Call of Duty » [Figure 10] est un
parfait exemple de jeu de tir.
Figure 10 : Call of Duty Apocalypse.
20. 20
1.2.7 Jeux de simulation :
Les jeux de simulation servent à essayer de reproduire la sensation forgée dans une
situation réelle. Un jeu peut porter sur une guerre, un évènement populaire, une bataille ou une
histoire réelle comme le cas de « Sims » [Figure 11].
Figure 11 : SIMS.
1.2.8 Jeux de sport :
Dans la même idée que les jeux de simulation, le jeu de sport reproduit la sensation d'une
activité existante mais ne se concentre pas sur la conduite d'un véhicule mais plutôt sur la
reproduction d'un match sportif. Ce genre de jeu offre la possibilité aux joueurs de pratiquer
leurs sports préférés virtuellement. On a ici cité comme exemple pour ce genre, le jeu
« FIFA17 » [Figure 12].
Figure 12 : FIFA 17.
21. 21
1.2.9 Jeux de course :
Le Gameplay de ce type de jeu est basé souvent sur la présence d'un véhicule. Le joueur
est censé atteindre un objectif avant ses adversaires ou avant une limite de temps donnée. Pour
exemple nous notons le jeu « Need for speed » [Figure 13].
Figure 13 : Need For Speed.
1.2.10 Jeux d’horreur:
C’est Un genre de jeu dont le Game Play fait généralement en sorte que le joueur ne se sent
pas aussi fort et solide à cause des fictions d’abomination et de panique. Comme c’est le cas pour
le jeu « Resident Evil » [Figure 14].
Figure 14 : Resident Evil 7.
22. 22
1.2.11 Jeux de réflexion :
C’est Un genre de jeu basé sur la méditation, il amène le joueur à résoudre des
problématiques, des énigmes, ou à sillonner à travers des lieux complexes. Le gameplay oblige
le joueur à approfondir, à réfléchir et à chercher. Nous référons à « Mind : Path to Thalamus »
comme exemple [Figure 15].
Figure 15 : Mind: Path to Thalamus.
1.3 Les Modes des jeux vidéo :
Les jeux vidéo peuvent être aussi classés suivant leurs modes. Ces derniers présentent le
paramétrage de la façon de jouabilité d’un joueur qui peut sélectionner selon le contexte, le
nombre de joueurs simultanés ou bien le type de Gameplay recherché.
1.3.1 Mode Compagne solo :
Le mode compagne solo, appelé encore « mono-joueur » ou « simple joueur », est un
mode où le joueur accomplie une mission seule sans la participation d’autre personnage d’où
parvient le terme “solo”. Le joueur affronte généralement l’intelligence artificielle gérée par le
jeu. Nous exposons pour exemple le jeu « Far Cry Primal » [Figure 16].
23. 23
Figure 16 : Far Cry Primal.
1.3.2 Mode Multi-joueurs :
Ce mode de jeu permet à plusieurs personnes de jouer ensemble simultanément à la même
partie. Cette fonctionnalité peut se produit soit en partageant le même matériel soit par un réseau
local ou encore à travers un réseau internet. Le mode multi-joueurs offre plus de défis que le
mode solo. En effet, chaque joueur doit se mesurer à l'intelligence et aux réflexes d'un autre
joueur qui peut deviner ses intentions. De plus, contrairement au mode histoire en solo dans
lequel le jeu se termine après avoir fini une histoire, le mode multi-joueurs ne se termine jamais.
Ainsi, beaucoup de joueurs préfèrent ce mode pour avoir une durée de vie de jeu plus longue.
Nous citons comme exemple le fameux « League of Legends » [Figure 17].
Figure 17 : League of Legends.
1.3.3 Mode Multi-joueurs coopératif :
C’est un mode de jeu vidéo multi-joueurs dans lequel les joueurs doivent unir leurs
actions dans un objectif commun. Ce mode autorise aux joueurs de s'entraider en passent des
24. 24
armes, se soigner, faire un tir de couverture etc. L’exemple le plus est « Counter Strike » [Figure
18].
Figure 18 : Counter Strike.
1.4 Les Types d’univers des jeux vidéo :
1.4.1 Univers fantastique :
C’est un univers fondé de l'époque moyenâgeuse mais avec un aspect de magie et de
créatures telles que les elfes, les géants, les dragons etc. Le jeu « Heroes of the Storm » [Figure
19] reflète cet univers.
Figure 19 : Heroes of the Storm.
1.4.2 Univers futuriste :
L'univers futuriste est un univers tiré de la science-fiction où les personnages venant
d'autres planètes ont pris contact avec notre civilisation et les histoires passent dans un futur
25. 25
technologiquement très évolué par rapport à notre époque. Un exemple peut être le jeu « Mass
Effect 4 : New Age » [Figure 20].
Figure 20: Mass Effect 4: New Age.
1.4.3 Univers Moderne/Urbains :
Dans ces jeux, l'histoire se déroule dans une époque proche de la nôtre et dans un
environnement tel que nous pouvons en voir dans la vraie vie. Le joueur a l’impression de ne
pas être dans un jeu et a le pouvoir de faire des choses qui lui semblent impossibles dans la vie
réelle. Exactement comme le jeu « GTA V » [Figure 21].
Figure 21 : GTA V.
26. 26
1.5 Les jeux vidéo à potentiel pédagogique (Serious Game) :
Définition de Serious Game :
Un Serious game, ou jeu sérieux, est une activité qui utilise des mécanismes ludiques
pour résoudre des problématiques pédagogiques ou promotionnelles. Même s’il peut être
amusant, son objectif primordial est toujours de faire évoluer son audience. En se basant sur le
fait que les individus se souviennent de 30% de ce qu’ils voient et de 90% de ce qu’ils font, les
serious games deviennent alors des supports privilégiés pour véhiculer l’information car ils
permettent à l’utilisateur de s’impliquer dans un environnement pour expérimenter des
scénarios. Ces jeux se trouvent dans une multitude de milieux professionnels, pour tous publics
et dans divers domaines : Gouvernement, armée, santé, éducation, entreprise, religion, culture,
écologie, politique, humanitaire, développement durable, médias, publicité, sciences, etc.
Les catégories de Serious Game :
L’étude de « Serious games » met en évidence divers catégories :
« Les serious games à message » : Cherchent à diffuser un message (éducatif
(edugame), publicitaire (advergame) éducatif et commercial (edumarketgame)
« Les jeux de simulation » : Permet de visualiser un phénomène réel représenté
dans un univers virtuel.
« Les serious games d'entraînement » : Visent à l'amélioration des performances
et des capacités motrices et cognitives des utilisateurs.
27. 27
1.6 Le public cible des jeux vidéo :
Tableau 1 : les différentes catégories du public cible des jeux vidéo.
Catégorie Age Symbole standard (ancien) Symbole standard (actuel)
EC Enfant en bas
âge
E Tout le monde
E10+ Tout le monde
plus de 10 ans
T Adolescent
M Mature plus
que 17 ans
AO
Adultes
seulement
28. 28
1.7 Bilan et choix :
Voici la combinaison des types choisis pour la réalisation de notre jeu :
Figure 22 : Bilan et Choix du jeu.
« Jeu de plateforme » : Notre personnage aura la possibilité de se déplacer librement,
esquiver les obstacles et récupérer des objets sur son trajet.
« Jeu de combat tir à vue objectif » : Le joueur se mettra en situation de confrontation
armée avec des vaisseaux spatiaux.
« Jeu d’aventure » : Le joueur aura un chemin prédéfini pour atteindre un objectif final
en mettant l’accent sur l’exploration de l’environnement.
« Jeu de réflexion » : Le joueur aura besoin de réflexion, observation, logique et sens
de l'orientation pour trouver des solutions et dépasser des obstacles.
« Jeu de stratégie » : Notre personnage aura besoin d’un avantage stratégique pour
pouvoir augmenter sa domination spatiale ou combattre plusieurs ennemis sur le terrain de jeu.
29. 29
2. Etude de l’existant :
2.1 Etude des jeux similaires
Comme pour toute autre forme de création, il est impossible de créer un jeu vidéo sans
source d’inspiration. De ce fait, nous avons effectué une étude complète des applications
existantes similaires à notre futur produit. Dans cette partie, nous analysons les jeux semblables
au nôtre, les méthodes de créations, les détails graphiques, la jouabilité et les techniques de
développement adaptés.
2.1.1 Etude graphique :
Notre source d’inspiration pour l’aspect graphique a été basée sur les deux jeux suivants :
A. WAKFU :
Figure 23 : Le Jeu d’inspiration, Wakfu.
Wakfu [Figure 23] est un jeu 3D isométrique de type ‘rôle en ligne’ et de mode
‘massivement multi-joueurs’, développé et édité par Ankama, il est sorti en février 2012 après
quatre ans de bêta-test et de développement. Le joueur est un aventurier qui explore le monde
en accomplissant diverses quêtes menant à son évolution. Son parcours le guidera à apprendre
des métiers, combattre des adversaires sans oublier l’obligation d’aider les autres joueurs.
30. 30
Analyse graphique :
Les animations des personnages sont nombreuses au cours du jeu.
La diversité des environnements satisfait la curiosité du joueur et assouvi sa soif pour
la découverte.
La richesse du graphique en couleur.
La présence de plusieurs items décoratifs animés ou non animés.
Inspiration
L’utilisation des plateformes / univers différents [Figure 24].
Le style graphique pour la création de l’environnement [Figure 25].
Figure 24 : les différent univers de Wakfu.
Figure 25 : Style graphique du jeu Wakfu.
31. 31
B. RIVE :
Figure 26 : Le jeu d’inspiration, Rive.
Rive est un jeu 2D hybride de 360 degrés tir / plateforme. Il a été développé par la
société de jeux vidéo néerlandaise Two Tribes pour PlayStation 4, Xbox One, Microsoft
Windows, OS X, Linux, avec une sortie à venir pour Nintendo Switch. Après le changeant
d’une grande partie de son équipe, le studio a dévoilé ce jeu comme premier nouveau projet.
Rive a été dévoilé le 29 juillet 2016, après une longue période de développement.
Analyse graphique :
Variété sans fin des environnements : combattre sur terre, sous l'eau, dans zéro gravité
ou sur un train en mouvement.
Des GUIs fidèles à l’univers du jeu.
Le décor et les effets sonores sont homogènes avec le style des personnages et
l’ambiance du jeu.
Les différentes icônes sont distribuées aux extrémités en haut de l’interface ce que laisse
apparaitre un vaste champ de vision du personnage.
Inspiration
Les interfaces graphiques [Figure 27].
Les différentes attaques du vaisseau spatial [Figure 28].
32. 32
Figure 27 : GUI du jeu Rive.
Figure 28 : Les différentes attaques du vaisseau spatial.
33. 33
2.1.2 Etude technique :
L’aspect technique de notre jeu a été principalement inspiré par les deux jeux suivants :
A. EITR
Figure 29 : Le jeu d’inspiration, EITR.
EITR est un jeu ‘ARPG’ isométrique imprégné de mythologie nordique, réalisé en pixel
art par un petit studio indépendant. Le jeu combine le combat aux armes avec les donjons
isométriques ultra-sombres de l'original Diablo. Actuellement, il existe seulement la version
beta, la sortie de la version finale est prévue en 2018. [Figure 29]
Analyse technique
Le rythme du jeu très rapide donne une jouabilité intéressante et un Gameplay amélioré.
Le fonctionnement du système d’armes est très diversifié. Chaque arme a une sorte de
capacité innée qui offre au joueur de grands avantages spécifiée à chaque ennemie.
Inspiration
Les combats entre les personnages joueurs et les ennemies [Figure 30].
L’environnement.
34. 34
Figure 30: scène de bataille, Eitr.
Conclusion :
Le chapitre précédent résume les différents types, genres, modes et univers des jeux
vidéo. Il récapitule aussi nos sources d’inspiration et analyse leurs aspects techniques et
graphiques. Cette recherche a servi à enrichir nos connaissances et à orienter la vision de notre
jeu.
36. 36
Introduction :
Dans cette partie, et après la collection de suffisamment de connaissance, nous nous
adressons à la conception de notre jeu d’un point de vue technique et graphique. Nous
spécifierons les besoins fonctionnels et non fonctionnels, l’organisation du projet et les
techniques à adopter pour avoir un meilleur rendu.
En ce qui concerne le cycle de vie de notre jeu, nous aurons recourt à la méthodologie de
Scrum qui organisera le travail de chaque membre ainsi que l’avancement du projet tout en
respectant le deadline de chaque tâche.
1. Description et Synopsis du jeu vidéo :
1.1 But du produit :
Le but de notre jeu vidéo est d’offrir au joueur un monde d’évasion où il pourra s’échapper de
la réalité en lui apportant une expérience, à la fois, émotionnelle et intellectuelle.
1.2 Objectifs personnels :
Notre but en tant qu'étudiants est de pouvoir créer un produit de qualité professionnelle et
possiblement le distribuer par la suite.
1.3 Clientèle cible :
Ce jeu s’adresse à toute personne passionnée de jeux vidéo, âgé de 14 ans ou plus, sans
distinction de sexe ou de religion.
1.4 Synopsis du jeu :
Il s’agit d’un jeu sur PC de type « serious game /aventure ». Le joueur incarnera le héros qui
est un capitaine des forces aériennes surnommé « Alec ». Ce dernier a pour but de trouver une
planète habitable afin de sauver la race humaine. Durant son voyage intergalactique « Alec »
aura des missions à compléter, des obstacles à surmonter et des ennemies à confronter.
38. 38
1.5 Description visuelle et sonore :
Plan / Caméra :
La caméra se déplace automatiquement, elle ne change jamais d’angle cependant, elle
attend le joueur.
Habillage sonore :
N’ayant pas reçu des cours en matière de son, nous avons employé des morceaux de
musique simples durant les missions. Cependant, nous avons introduit un enregistrement voix
off du scénario pour initier le jeu. De plus, nous avons inséré des sons caractérisant les actions
des personnages et leurs interactions avec l’environnement.
1.6 Schémas de navigation :
Nous commençons la conception de notre jeu avec le schéma de navigation, celui-ci
devrait être assez simple et compréhensible pour pouvoir guider l’utilisateur. En effet, nous
avons opté pour un schéma de navigation mixte, bidirectionnel, combinant un modèle
hiérarchique et quelques séquences linéaires [Figure 32].
Figure 32: Schéma de navigation.
39. 39
2. Spécifications des besoins fonctionnelles :
Spécification des besoins fonctionnels :
Afin de pouvoir passer à l’étape technique de la phase de spécification nous avons eu
recours à l’utilisation du langage UML :
Diagramme de cas d’utilisation (use case) :
Un diagramme de cas d'utilisation est une représentation de l'interaction d'un joueur
avec le jeu. En d’autres termes, le schéma reflète la relation entre le joueur et les différents cas
d'utilisation dans lesquels il est impliqué.
Pour donner une vision explicite sur notre projet, nous avons créé deux diagrammes de
cas d’utilisation.
Figure 33: diagramme de cas d'utilisation générale.
40. 40
Figure 34 : Diagramme de cas d’utilisation détaillée.
41. 41
Description textuelle de cas d’utilisation « jouer » :
Dans l’intérêt de développer d’avantage le diagramme de cas d’utilisation, nous allons
assimiler une description textuelle au principal cas d’utilisation.
Sommaire d’identification :
Titre : Jouer.
But : Terminer les différents types de missions.
Résumé : Processus d’entrer en jeu.
Acteurs : « Joueurs ».
Responsables : Sondes Jaouadi, Mohamed Karim Sakran, Arwa Argoubi.
Description des enchaînements :
Préconditions : « avoir un PC, avoir démarré le jeu »
Enchainement nominal :
1) Le menu principal du jeu est affiché.
2) Le joueur choisit de jouer.
5) Le joueur est instancié sur la scène du jeu de la mission 1.
6) Le joueur appuie sur la touche « Z » pour déplacer le vaisseau spatial en haut la touche
« D » pour le déplacer à droite et la touche « S » pour le déplacer en bas.
7) En passant par les planètes ’Mars’, ‘ Saturne’ ou ‘Jupiter’ le joueur doit à chaque fois
répondre à un QCM pour achever la première mission.
8) Le joueur est instancié sur la scène de la mission 2.
9) En addition des précédentes touches du déplacement, le joueur utilise les touches « J »
« K » « L » « M » pour contrôler les différentes armes.
11) le joueur est instancié sur la scène de la mission 3
12) Le joueur appuie sur la touche « Z » pour déplacer « Capitaine Alec » en haut, la
touche « D » pour le déplacer à droite et la touche « S » pour un mouvement en bas.
13) Quand les objectifs de la mission 3 sont atteints le joueur passe la 4ème
mission.
14) Mission 4 réussie et objectifs atteints.
15) Le joueur est instancié sur la scène de la mission 5.
16) Le joueur utilise la souris afin de choisir la tourelle convenante pour construction.
42. 42
17) La Mission 5 est achevée, le joueur sera instancié sur la scène de la mission 6.
18) Le joueur appuie sur la touche « Z » pour déplacer « Capitaine Alec » en haut, la
touche « D » pour le déplacer à droite et la touche « S » pour un mouvement en bas. Afin
d’attaquer l’ennemie le joueur utilise les touches « J » « K » « L » « M » « Espace » pour
coordonner les différends sorts valables.
19) L’achèvement de la 6ème
mission entraine la fin du jeu.
Enchainement alternatif n°1 : « Le joueur n’a pas fini la mission »
Le joueur est bloqué et ne peut pas passer à la mission suivante.
Enchainement alternatif n°2 : « Mort du personnage »
Rejouer la mission ou retour à la première étape de l’enchaînement nominal.
Enchaînements d’exception E1 : « Le joueur quitte la partie avant de terminer le jeu »
L’enchaînement démarre après l’étape 5 de l’enchainement nominale :
1. Le joueur presse pause.
2. Le système affiche le menu pause.
3. Le joueur choisi le menu principal.
4. Le système affiche le menu principal.
5. Le joueur quitte le jeu.
Contraintes non fonctionnelles : « Le système doit avoir la capacité minimale pour un
jeu fluide »
43. 43
3. La conception de l’application :
Afin de réaliser une conception solide de notre application, nous avons favorisé
l’exécution des deux parties ci-après : « Conception de la vue statique » et « Conception
de la vue dynamique ».
Conception de la vue statique :
Dans cette étape et pour une meilleure compréhension de la structure globale du jeu,
nous essayons de modéliser sa structure logique moyennant le diagramme de conception
des objets.
Figure 35: Diagramme de conception des objets.
44. 44
Conception de la vue dynamique de l’application :
Nous avons choisi de représenter la partie de la conception de la vue dynamique, par un
diagramme d’activités qui permet de visualiser le déclenchement des événements en fonction
des états du système.
Conception générale de l’application :
A travers le diagramme d’activité, nous présentons tous les chemins possibles cédant au
joueur la possibilité de défiler entre les différentes pages de l’application, ainsi que les moyens
d’y accéder.
En lançant le jeu, le ‘menu principal’ s’affiche pour assurer l’accès soit au ‘menu
paramètres’ ou ‘menue instruction’. Egalement, en sélectionnant l’option ‘jouer’, le joueur est
dirigé vers l’écran du jeu. Aussi, au cours d’une partie, il peut à tout moment accéder soit au
‘menu pause’ où il peut sauvegarder et quitter ou bien continuer à jouer jusqu’à la fin de la
mission.
46. 46
Conception du déroulement des processus de l’application :
Pour une explication approfondie et détaillée de cette partie nous avons eu recours au
diagramme de séquence qui représente graphiquement des interactions entre les acteurs et le
système selon un ordre chronologique dans la formulation UML.
Figure 37: Diagramme de séquence globale.
48. 48
Conception de l’intelligence artificielle :
Les jeux vidéo font depuis longtemps appel à l’intelligence artificielle ‘IA’, et c’est dans
ce domaine qu’elle s’est le plus popularisée. Dans l’idée de créer une interaction toujours de
plus en plus immersive et amusante pour les joueurs, l’IA caractérise toute prise de décision
d'un personnage géré par la machine qui propose une expérience de jeu de qualité.
Dans notre jeu l’intelligence artificielle se manifeste dans plusieurs situations. Nous
citons comme exemple les combats entre les personnages joueurs et les personnes non-joueurs.
Réellement, aucun combat ne peut avoir lieu sans la nécessité d’attaquer ou de se défendre.
Dans ce cas, l’ordinateur doit contrôler les PNJ de manière intelligente. Ainsi, nous avons
évoqué le besoin de détecter une cible ou éviter des obstacles.
Ce diagramme d’activités illustre le fonctionnement de l’intelligence artificielle des PNJ.
Figure 39 : Diagramme d'activité de l’intelligence artificielle.
49. 49
4. Spécifications des besoins non fonctionnelles :
Après avoir défini les exigences fonctionnelles de notre jeu, nous devons,
impérativement, considérer des besoins non-fonctionnels et leurs tests. En effet, ces derniers
présentent les besoins qui caractérisent le système en matière de performance, de type de
matériel ou le type de conception. Ces besoins peuvent concerner les contraintes techniques et
graphiques d'implémentation. Ci-après, nous examinons principalement la qualité externe et
interne du produit.
Qualités internes :
a) Contraintes techniques :
Optimiser un jeu vidéo est considéré une tâche critique. Il est, en effet, possible d’avoir
un aspect graphique et technique décent et un gameplay riche, mais un moindre souci au niveau
de l’optimisation du jeu, un processus non-structuré ou encore un type de programmation non-
adapté peuvent présenter des facteurs capables de prévenir la maintenance, l’évolution ou
l’étude d’un projet.
Pour cela, lors du développement de notre projet, nous avons exigé la présence des contraintes
suivantes :
L’utilisation d’une hiérarchie a différentes couches afin d’organiser nos modèles, nos
scripts, animations etc.
Qualité Interne
Contraintes
Techniques
Contraintes
Graphiques -
Ergonomiques
Qualité Externe
Concerne
l'utilisateur final
50. 50
L’utilisation de l'orienté objets permet de concevoir et de réaliser les fonctionnalités
attendues d’où une programmation optimisée.
Réutilisabilité d'un script sur plusieurs objets.
Opter pour une bonne organisation du code en utilisant les commentaires et l’indentation
et ce pour le rendre bien lisible et facile à comprendre.
b) Contraintes graphiques :
Cette contrainte englobe principalement deux éléments :
La conservation de la charte graphique implique les étapes nécessaires au
développement visuel d’un jeu vidéo qui assurent sa cohérence afin de donner un aspect
harmonieux. Cet élément est consacré pour le choix des couleurs, des formes et des
textures.
La conservation de l’approche sensorielle tente à montrer les sens au point où le joueur
devient entièrement concentré sur le monde du jeu et ses stimuli par les effets
d’éclairage et de son.
Qualité externe :
a) L’ergonomie :
Tandis que le Gameplay exige la présence des énigmes et des obstacles pour enrichir le
divertissement et l’intérêt du joueur, il n’est pas toujours évident de parler d’ergonomie. De ce
fait, cette dernière ne peut pas être assurée que dans les interfaces du jeu. Ainsi, le menu et
l’écran du jeu doivent être bien clairs et intuitifs. En d’autres termes, le joueur aura accès à une
guidance parfaite et claire à l’aide des indications visuelles qui s’affichent en se déplaçant dans
la scène du jeu.
b) La scénarisation :
Avec la nouvelle tendance du jeu vidéo à s'orienter vers du cinéma interactif, le scénario
devient un argument de poids. Un bon scénario doit être fluide avec des articulations cohérentes.
Il doit être aussi articulé autour d’une première phase d’exposition, puis de confrontation et
enfin de résolution. Notre scénario appartient la catégorie où un petit synopsis plante le décor
et donne un objectif au joueur, sans pour autant être omniprésent.
51. 51
Planification et méthodologie de travail :
Dans cette partie nous abordons les étapes de réalisation de ce projet. Nous tenons à
expliquer les démarches, les méthodes et les logiciels que nous avons utilisés pour achever
convenablement notre travail.
a) Méthodologie de travail :
Afin de garantir un déroulement fluide de notre projet, nous avons opté pour la
méthodologie agile Scrum, qui rajoute de la flexibilité et de l’organisation au projet en termes
de temps et de qualité.
Principe de la méthodologie Scrum :
Scrum est une méthode agile dédiée à la gestion de projet introduite « officiellement »
en 2001. Cette méthode de gestion a pour objectif d’améliorer la productivité de son équipe.
Elle met en avant la rentabilité et surtout la satisfaction du client. L'équipe de développement
s'organise elle-même pour trouver la meilleure façon de produire les étapes les plus privilégiés.
En d’autres termes, Scrum consiste à réaliser les tâches petit à petit, par ordre de priorité, avec
des phases de contrôle et d’échange avec le client.
Figure 40 : Cycle de vie d'un produit par la méthodologie de Scrum.
52. 52
Les caractéristiques du Scrum :
Itératif (rythmé par une série d’itérations).
Lié à des processus incrémentaux « Sprints ».
Basé sur l'équipe.
Un moyen d'augmenter la productivité.
Augmente la communication et maximise la collaboration.
Fait pour créer des produits, applications nécessitant une grande modularité.
Protéger l'équipe des éléments externes perturbateurs.
Figure 41: L’équipe Scrum.
b) L’adaptation de la méthodologie Scrum au projet :
Equipe Scrum :
Product owner: M. Med Ali Chalbi.
Scrum Master : Sondes Jaouadi.
Development team: Mohammed Karim Sakran & Arwa Argoubi.
53. 53
Carnet du produit (Product Backlog) :
Le carnet de produit consiste d’une liste ordonnée groupant tous les exigences du projet. Il
présente, en effet, l'unique source des besoins pour tous les changements à effectuer sur le
produit. Il s’agit d’un document qui évolue constamment au cours de la vie de ce dernier
[Tableau 2].
Tableau 2 : Backlog du produit.
User Stories Estimation(h)
Rédaction du rapport (introduction et structure globale du
projet)
20
Planification de la méthodologie de Scrum 20
Rédaction de l’étude de l’art et l’étude d’existant 30
Spécification fonctionnel et conception 20
Développement graphique des environnements (4 scène) 260
Rédaction du rapport (Développement graphique des
environnements)
40
Programmation des environnements 70
Rédaction du rapport (Programmation des environnements) 30
Développement graphique des personnages 100
Rédaction du rapport (Développement graphique des
personnages)
40
Programmation des personnages 80
Rédaction du rapport (Programmation des personnages) 40
Création des interfaces et du logo 80
Rédaction du rapport (Création des interfaces et du logo) 20
Création et conception des quatre cinématiques 100
54. 54
Le Planning des sprints :
Dans cette partie, nous cherchons à aménager les éléments (user Stories) du Carnet de
produit en Sprints. D’ailleurs, un sprint, bien qu'il présente une partie incomplète du projet, doit
être livrable, exécutable et réutilisable. Il est donc indispensable de délimiter les sprints d’une
manière à respecter cette règle. Notre regroupement final a évoqué six sprints à réaliser.
Nous avons considéré qu’un jour de travail est égal à huit heures. [Tableau 3]
Tableau 3 : Planning des sprints.
Numéro du sprint User stories Estimation(h)
Sprint 0
Rédaction du rapport (Introduction et structure
global du projet)
90
Planification de la méthodologie de Scrum
Sprint 1
Rédaction de l’étude de l’art et l’étude d’existant
100Spécification fonctionnel et conception
(technique et graphique)
Développement graphique des environnements
(4 scène)
Rédaction du rapport (Création et conception des quatre
cinématiques)
10
Ajout des effets sonores et visuels 50
Rédaction du rapport (Ajout des effets sonores et visuels) 10
Evaluation du jeu 20
Rédaction du rapport Evaluation du jeu 10
55. 55
Sprint 2 Rédaction du rapport (Développement
graphique des environnements)
300
Programmation des environnements
Rédaction du rapport (Programmation des
environnements)
Sprint 3
Développement graphique des personnages
260
Rédaction du rapport Développement graphique
des personnages)
Programmation des personnages
Rédaction du rapport (Programmation des
personnages)
Sprint 4
Création de la charte graphique
100
Rédaction du rapport (Création de la charte
graphique)
Sprint 5
Création et conception des quatre cinématiques
110
56. 56
Rédaction du rapport (Création et conception
des quatre cinématiques)
Sprint 6
Ajout des effets sonores et visuels
90
Rédaction du rapport (Ajout des effets sonores)
Evaluation du jeu
Rédaction du rapport Evaluation du jeu
Plan des Releases :
Dans cette partie, nous regroupons deux ou plusieurs sprints en un seul thème dénommé
‘Release’.
Tableau 5 : Plan des releases.
Numéro du release Nom de release Les sprints
1 Conception et planification du
projet
Sprint 0
Sprint 1
2
Sprinte 2
57. 57
L'environnement et les
personnages, le monde de
Beyond Eden
Sprinte 3
3
Les interfaces du jeu.
Sprinte 4
Sprinte 5
4 Déploiement et tests finaux Sprinte 6
Enchainement du projet et techniques utilisés :
Gestion du tableau des tâches avec Trello :
« Trello » est une application de gestion de projets basée sur le Web fournissant des
fonctionnalités sur les tâches qui permettent de contrôler l'avancement de notre travail où nous
avons créé les quatre parties suivantes :
58. 58
Catégorie « To Do »
Catégorie « Doing »
Catégorie « Done »
Catégorie “ rendez-vous
5. Logiciels utilisés :
Pour la réalisation du jeu, nous avons eu recours aux logiciels adéquats au projet
suivants :
Unity 2D (version 5.6) : Moteur graphique et physique du jeu pour l’intégration et la
programmation.
VisualStudio : Environnement de développement sur Unity.
Adobe Photoshop : Conception graphique et application de la texture.
Adobe Illustrator : Création des environnements, des personnages, des boutons et des
éléments graphiques de l’interface en 2D.
Adobe Audition : Enregistrement et Mixage du son.
Trello : Application web utilisée pour la gestion du tableau de tâches de Scrum.
Starruml : Logiciel de modélisation UML.
Conclusion :
Ce chapitre était utile en premier lieu, pour la récapitulation des besoins fonctionnels et
non fonctionnels nécessaires pour la réalisation de notre projet. En deuxième lieu, nous avons
détaillé la méthodologie adoptée pour le développement du jeu. Ainsi, nous avons fourni une
conception globale du plan. Cependant, chaque sprint aura une phase de conception et de
réalisation dans les prochaines parties.
60. 60
Chapitre 1 : Sprint 2 : Création de l'environnement :
Introduction :
Ce chapitre présente toutes les étapes de création des environnements, ainsi que leurs
programmations.
1. Tableau prévisionnel du sprint :
Date de début du sprint : Mardi 21 Février 2017
Date de fin du sprint : Jeudi 22 Mars 2017
Temps estimé en heures : 300 heurs
Échelle de mesure : Une journée est équivalente à 10 heures de travail : (De 8h à 13h -
- de 14h à 19h)
Objectifs du sprint : Création de l’environnement du jeu
62. 62
1- Premiére partie du Sprint
User stories Taches Temps 21 22 23 24
Création de
l’environnement
de la mission 1
Conception de
l’environnemet
2 0 0 0 0
Modélisation de
l’environnement
16 8 0 0 0
Programmation
et integration de
l’environnment
8 8 6 0 0
Redaction du
rapport
Redaction de la
partie de la
création de
l’environnement
8 8 8 4 0
2- Deuxieme partie du Sprint
User stories Taches Temps 25
Création de
l’environnement
de la mission 2
Conception de
l’environnemet
2 0
Modélisation de
l’environnement
2 0
Programmation
et integration de
l’environnment
4 0
Redaction du
rapport
Redaction de la
partie de la
création de
l’environnement
2 0
63. 63
3- Troisieme partie du Sprint
User stories Taches Temp
s
2
6
2
7
2
8
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
Création de
l’environnemen
t de la mission
3/4
Conception de
l’environnemet
24 1
8
8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Modélisation de
l’environnemen
t
50 5
0
5
0
4
8
3
8
2
8
1
8
8 0 0 0 0 0 0 0 0 0 0 0 0
Integration et
organisation du
village
10 1
0
1
0
1
0
1
0
1
0
1
0
1
0
8 0 0 0 0 0 0 0 0 0 0 0
Intagration et
création de la
foret
30 3
0
3
0
3
0
3
0
3
0
3
0
3
0
3
0
2
8
1
8
8 0 0 0 0 0 0 0 0
Programation
de
l’environnemen
t de la mission
3
53 5
3
5
3
5
3
5
3
5
3
5
3
5
3
5
3
5
3
5
3
5
3
5
1
4
1
3
1
2
1
1
1
1 0 0
Programmation
de la mission 4
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0
Redaction du
rapport
Redaction de la
partie de la
création de
l’environnemen
t
10 1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
4 0
64. 64
4- quatriéme partie du Sprint
User stories Taches Temps 17 18 19 20 21 22
Création de
l’environnement
de la mission5
Conception de
l’environnemet
10 0 0 0 0 0 0
Modélisation de
l’environnement
18 12 2 0 0 0 0
Programmation
et integration de
l’environnment
30 30 30 22 12 2 0
Redaction du
rapport
Rédaction de la
partie de la
création de
l’environnement
8 8 8 8 8 8 0
5- Sixieme partie du Sprint
User stories Taches Temps 23
Création de
l’environnement
de la mission 6
Conception de
l’environnemet
2 0
Modélisation de
l’environnement
2 0
integration de
l’environnment
1 0
Redaction du
rapport
Redaction de la
partie de la
création de
l’environnement
4 0
65. 65
2. Conception de l’environnement, modélisation et programmation :
2.1 Première mission :
2.1.1 Conception de l’environnement :
Les jeux vidéo ne présentent pas seulement un outil de distraction et de réduction du
stress quotidien du joueur, mais aussi une nouvelle forme d’apprentissage. Pour cette raison,
nous avons opté pour une première mission orientée plus pédagogiques/ludiques que ludiques.
En effet, le jeu commence dans le système solaire de notre monde réel. Le joueur
(contrôlant un vaisseau spatial) possède la possibilité de se déplacer librement dans l’univers.
En passant par trois planètes spécifiques (Mars, Saturne et Jupiter) une fenêtre s’ouvre et des
informations éducatives s’affichent. Ces dernières aideront le joueur qui se trouve devant
l’obligation de répondre à un QCM pour accéder à la mission suivante.
Afin de donner assez de crédibilité à notre environnement, nous avons dessiné nos
planètes [Figure 42] en se référant à des images réelles [Figure 43]. Nous avons tout d’abord
commencé par lister les types d'objets potentiellement utilisables pour créer un univers spatial,
comme par exemple des planètes, des orbites, des comètes, des astroïdes, des étoiles ou encore
des météorites. Ensuite, nous avons adopté des interfaces pour l’affichage des informations
liées aux trois planètes ainsi que le QCM.
Figure 42 : Représentation des images de référence et des croquis
66. 66
2.1.2 Modélisation de l’environnement :
Moyennant Illustrator, nous avons pu concevoir les modèles suivants [Figure 43] :
Figure 43: Modélisation des objets de l'environnement avec Illustrator.
En ce qui concerne l’animation des éléments graphiques, notre but était de donner aux
planètes l’illusion de tourner sur elles-mêmes. Pour cela, nous avons eu recours au « sprites
sheet ». [Figure 44]
Effectivement, l’usage des Sprites est une technique basique dans les jeux vidéo en
deux dimensions. Un Sprite Sheet est un seul fichier (PNG ou autre) qui contient tous les
mouvements des personnages ou le déplacement des objets. Durant le jeu, chacun des Sprites
est censé être sélectionner pour faire des animations.
Pour des raisons d’optimisation de taille, nous avons exploité la règle des puissances
de deux, ou comme on l’appelle «POT : Power of Two» qui a une nécessité fondamentale due
à la façon dont les moteurs de jeu fonctionnent. En effet, elle exige une correspondance entre
la taille des textures des images et des blocs soignés de mémoire binaire, et ce pour assurer
une meilleure performance et une utilisation optimisée de la mémoire. Ainsi, la POT est
nécessaire pour le calcul des textures et leurs compressions dans la mémoire RAM du GPU.
Pratiquement, dans le cas où cette règle n'est pas utilisée l'image ne sera pas compressée et par
conséquent sa taille massive dans la RAM provoquera des « crash » dans le jeu.
67. 67
2.1.4 Intégration des objets et programmation sur Unity :
L’achèvement de la modélisation des planètes et leurs Sprites Sheet est succédé par leur
intégration sur UNITY. [Figure 45]
Figure 45: intégration des objets sur Unity.
Figure 44 : Sprite Sheet des planètes.
68. 68
Programmation sur Unity :
Les éléments modélisés de l’environnement de la première mission sont ensuite
importés et assemblés sur Unity pour enfin donner naissance à une scène conforme à nos
attentes.
Cette mission possède un but pédagogique. De ce fait, le joueur sera guidé tout au long d’une
simulation de notre système solaire et introduit à des informations des planètes Mars, Saturne
et Jupiter. Il est, ensuite, obligé de répondre correctement à un QCM pour accéder à la mission
suivante.
Afin de pouvoir intégrer les informations, les questions et les réponses nous avons eu recours à
des interfaces graphiques (User Interface – UI). Ces derniers, ont nécessité l’utilisation du
Canvas. En effet, un Canvas se présente sous forme d’un carré qui s’adapte à la caméra et qui
exerce un control total sur comment réagi un UI.
Notre mission se compose principalement de trois descriptions des planètes. Nous attribuons à
chacune trois questions d’une façon aléatoire.
Ces composants sont reflétés dans notre développement à travers deux algorithmes principaux ;
« QCMmanager » et « Choicemanager ». Pour faciliter la tâche, prenons la planète Mars
comme illustration.
Figure 46: Hiérarchie du QCM sur Unity.
69. 69
En effet, lors d’une collision entre le vaisseau spatial et Mars une fenêtre contenant des
informations éducatives s’affiche en relayant sur une interface graphique. Le joueur est invité
à lire le texte qui se présente à l’écran puis à appuyer sur le Bouton ‘Next’ pour accéder au
QCM. Nous avons fourni six questions concernant la planète Mars. Chacun de ces derniers
possède une seule réponse correcte. De ce fait, nous avons créé un tableau de six cases contenant
le numéro de la bonne réponse. En d’autres termes, si le deuxième choix de la première question
coïncide avec la bonne réponse, la première case du tableau (présenté par la variable ‘NumQst’)
prend le nombre 2 (présenté par la variable ‘NumChoix’) [ligne 6 – ligne 10].
Dans le cas où le joueur coche la mauvaise réponse, son choix se colore en rouge pour quelques
secondes pour indiquer la nécessité de choisir une autre alternative. Cependant, s’il coche la
bonne réponse, son choix s’illumine en vert et le Gameobject de la question se désactive pour
activer le Gameobject suivant, ce qui entraine le passage à la prochaine question [ligne 12 –
ligne 20].
70. 70
2.2 Deuxième mission :
2.2.1 Conception et modélisation de l’environnement :
La deuxième mission se déroule dans l’espace, est de type Space-Shooter. Le joueur
est instancié dans l’univers du nouveau système solaire.
Afin d’attribuer encore plus de valeur à notre Game Play, nous avons décidé d’utiliser
un environnement simple, d’où le choix de la création d’un arrière-plan sobre et répétitif tout
au long de la mission. [Figure 47]
Figure 47 : Etapes de création de l’arrière-plan.
71. 71
2.2.3 Intégration de l’arrière-plan sur UNITY :
Après sa création, l’arrière-plan est ensuite intégré sur UNITY. Cependant, nous avons
besoin de lui attribuer l’illusion de l’infinité. Par conséquent, nous avons, en premier lieu, créé
un Game Object vide. Puis, nous avons inséré dedans trois copies de l’arrière-plan. Finalement,
nous avons opté pour la création d’une animation de translation sur l’axe des X sans oublier de
cocher la case du « loop time ». [Figure 48].
Figure 48 : intégration de l'arrière-plan.
72. 72
2.3 Troisième et quatrième mission :
2.3.1 Conception de l’environnement :
La troisième et la quatrième mission présentent des changements dans l’environnement
du jeu et même dans sa perspective.
D’ailleurs, nous avons préféré l’usage de la 2D isométrique au lieu de la 2D. Étant donné
que ce style a été popularisé par les jeux de stratégie et les RPG d'action, nous l’avons adopté
pour le Game Play des missions restantes.
En effet, la perspective isométrique permet de créer des volumes et de la profondeur sans
forcément être familiarisé avec le concept des points de fuite. Cette technique est très pratique
dans le cas où nous souhaitons expliquer ou représenter un concept technique d’une manière
plus simple. Il s’agit, en d’autres termes, d’une illustration en trois dimensions qui permettra de
mieux capturer des informations complexes, une méthode d'affichage utilisée pour créer une
illusion de 3D. En ce qui concerne l’environnement des missions, nous nous sommes inspirés
de celui de la planète Terre. Par conséquent, nous avons eu recours à des types d'objets
potentiellement utilisables pour créer un univers forestier, comme en instance des arbres, des
plantes, des champignons, et des roches. Dans le but de retranscrire le scénario dans le jeu, nous
avons opté pour la création d’un village afin d’introduire un peu plus de mouvements. Ainsi,
nous avons pensé à réaliser des objets bâtis par l’homme tel que des tentes, des maisons, ou
encore des petits éléments de décorations botaniques [Figure 49].
Figure 49: conception de l'environnement.
73. 73
2.3.2 Modélisation de l’environnement :
La création des éléments de perspective isométrique était possible en moyennant deux
méthodes ; la grille isométrique et l’outil grille de perspective.
Figure 50 : Utilisation de la grille isométrique pour la modélisation du décor botanique.
En premier lieu, nous nous sommes appuyés sur une version téléchargée de la grille isométrique
qui nous a offert des repères fixes assurant une réalisation précise des décorations botaniques
[Figure 50].
74. 74
Comme constater ci-dessous [Figure 51], la coloration et la décoration des éléments de
l’environnement ajoutent de la valeur à notre travail. De plus, les ombres et les différentes
textures accentuent et aident à distinguer les détails. Éventuellement, il est nécessaire que les
couleurs des éléments soient en harmonie et s’accordent avec le scenario. Il faut, également,
qu’ils évoquent un sentiment vif. La figure ci-après expose notre résultat final :
Figure 51: Composants de L'environnement des Missions 3 et 4.
75. 75
En deuxième lieu, nous avons introduit l’outil grille de perspective pour une meilleure
conception des bâtiments du village.
En réalité, Illustrator nous a assistés dans la création de scènes ayant un effet perspective
réaliste. En utilisant l’outil grille de perspective qui, dès qu’on le sélectionne des grilles
apparaissent par défaut sur le plan de travail ; une bleue indiquant le plan de gauche, une orange
pour celui de droite et finalement la verte représentant le niveau du sol [Figure 52].
Il est notamment important d’indiquer qu’Illustrator met à notre disposition des paramètres
prédéfinis de perspective soit à un, deux ou à trois points de fuite.
En passant à l’étape de dessin des formes, nous avons commencé tout d’abord par sélectionner
la face sur laquelle nous désirons placer notre forme (un rectangle ou un carré dans notre cas
puisque nous souhaitons créer des bâtiments) sur le widget. Ensuite, le traçage des formes prend
place. Ces derniers s’adaptent complétement à la grille, dont l’effet d’illustration réaliste.
Finalement, nous avons révélé les détails de nos éléments en manipulant les couleurs, les
ombres et les textures [Figure 53].
Figure 52 : Modélisation des bâtiments moyennant l'outil grille de perspective.
77. 77
2.3.3 Intégration des objets et programmation de l’environnement sur UNITY :
L’intégration des éléments de l’environnement de la troisième et de la quatrième
mission sur Unity nécessite quelques étapes. Nous avons débuté par créer un ‘Game Object’
vide sous le nom de ‘Village’. Ensuite, nous avons inséré les bâtiments et les objets de la
décoration botanique. Une fois les éléments du village sont intégrés l’enregistrement des
« Prefab » prend place [Figure 54]. Réellement, un « Prefab » s’agit d’un modèle prêt à être
copié et réutilisé plusieurs fois. Ainsi, nous avons eu la possibilité d’instancier de nouveaux
objets ne faisant pas partie du décor initial du village sur la scène. Plus particulièrement, les
arbres, les pierres, les champignons et les animaux sont enregistrés en tant que « Prefab ».
Figure 54 : Intégration des éléments du village dans Unity.
Tous les prefabs sont nommés suivant cette règle :
78. 78
Figure 55 : Enregistrement des Prefabs dans Unity.
Ultérieurement, il est indispensable d’ajouter les « Collider » aux bâtiments et aux décors
botaniques afin que le joueur n’ait pas la possibilité de les parcourir.
Nous avons, également, essayé d'optimiser le nombre de collider. De ce fait, nous avons opté
pour un seul collisionneur pour les différents « Game Object » voisins et nous avons négligé
l’utilisation de collider avec les objets qui ne sont, en aucun moyen, accessibles par le joueur.
79. 79
Programmation des scripts :
La partie suivante récapitule la programmation des éléments créés et intégrés de la troisième et
de la quatrième mission. En réalité, nous avons créé un algorithme ‘PlanetManager.cs’ capable
de générer la forêt d’une façon procédurale, dynamique et aléatoire dans une matrice. Cette
dernière peut organiser la forêt aléatoirement une fois sa hauteur, sa largeur et le pourcentage
de nombre de ses arbres sont déclarés.
Void Start() :
Notre but est de créer un environnement qui a une allure et une architecture naturelle. Par suite,
nous avons tout d’abord commencé par la déclaration d’une matrice nommée ‘Map’. De plus,
nous avons fixé sa hauteur et sa largeur en 1100 mètres. Puis, nous avons y posé le village dans
une position (X,Y) aléatoire entre 201 et 799 [Ligne 50 et 51] qui affectera la valeur 2 aux
cases qui génèrent la surface du village [Ligne57]. Enfin nous avons appelé la fonction ‘void
GenerateForest ()’ [Ligne60]
Void GenerateForest ()
Cette procédure se devise principalement en quatre parties.
80. 80
En premier lieu, la ‘void RandomFillMap ()’ qui a pour rôle de remplir aléatoirement les cases
restantes de la matrice ‘map’ (différents de 2) avec des valeurs entre 0 et 1 et ce suivant un
pourcentage précisé par l’utilisateur moyennant ‘void randomFillPercent’. (Dans notre cas
nous avons consacré une valeur de 43%)
La figure ci-après présente les résultats des tests des différents pourcentages que nous avons
saisis.
Figure 56 : tests des différents pourcentages de ‘void randomFillPercent’.
81. 81
En deuxième lieu, Nous avons eu recours à la procédure ‘void Cellular Automata()’. En effet,
l’automate cellulaire consiste en une grille constante de cellules ne pouvant prendre que deux
états « 0 » ou « 1 », avec un voisinage constitué, pour chaque cellule, d'elle-même et des deux
cellules qui lui sont adjacentes. En réalité, et dans un domaine plus quotidien, les automates
cellulaires peuvent être utilisés comme générateur graphique. Conséquemment, nous l’avons
exploité pour la création aléatoire de notre forêt. De plus, nous avons développé un algorithme
pour adapter le modèle automate cellulaire à nos propres besoins.
Partant de la ligne 116 et jusqu’à la ligne 137, nous avons commencé par tester chaque case de
la matrice pour vérifier si elle est différente de la valeur 2. En outre, nous avons appelé la
fonction ‘NbreDeVoisin()’ qui a pour rôle la sommation des valeurs des cases voisines sauf
celles de la même ligne et la même colonne.
Dans le cas où la fonction ‘NbreDeVoisin()’ retourne la valeur 4, la case originale prend la
valeur de 1, sinon elle prend 0 comme valeur. [Figure 57]
82. 82
Figure 57 : illustration de la fonction ‘NbreDeVoisin’.
Figure 58 : Comparaison entre une forêt avec et sans Cellular Automate.
83. 83
En troisième lieu, nous avons adressé la décoration de la forêt. Pour cela, nous avons regroupé
tous les éléments déjà définis en « prefab » dans un tableau qui est intégré par la suite dans un
autre tableau de chaine de caractères [Figure 59].
Figure 59 : insertion des éléments de décoration du village dans un tableau.
Ligne 17 : Déclarer un tableau ‘Decorationdorest[]’ de gameobject qui prend tous les prefabs
de décoration.
Ligne 18 : Déclarer un tableau ‘NameDecorationdorest[]’ de chaîne de caractère qui prend tous
les éléments du tableau ‘Decorationdorest[]’.
Ligne 19 : Déclarer un gameobjet vide ‘PivotInstantiateObjet’ qui crée tous les objets de la
forêt.
84. 84
Nous avons accordé un arbre à chaque case de matrice de valeur 1. En ce qui concerne les cases
de valeur 0, nous l’avons associé d’une façon aléatoire une pierre, un animal, une plante ou un
ennemi.
2.4 Cinquième mission
2.4.1 Conception de l’environnement :
Pour la cinquième mission, nous avons eu recours à plusieurs jeux de stratégie pour finir
par se décider sur le type « Tower Defense ».
Le « Tower Defense » est un style de jeu vidéo dont l’objectif est d’empêcher le
passage des vagues successives d’ennemis d’une zone de départ vers une zone d’arrivée tout en
construisant graduellement des tours défensives qui éliminent les adversaires au cours de leurs
progression.
L’environnement du jeu possède des spécificités bien déterminées convenables au caractère de
la mission. En effet, le terrain se présente sous la forme d’un plateau se composant de deux
types de cases. Premièrement, un chemin avec une entrée et une sortie consacré pour le passage
des créatures mais interdit pour la construction des tourelles. Deuxièment, des zones destinées
au bâtiment des tours distinguées par des drapeaux rouges mais intraversables par les ennemis.
Aussi, nos tours sont différenciés par leurs coûts, les dégâts qu’ils peuvent produire et leurs
types et vitesses d’attaque.
Notre conception commence par le dessin des différents tours, puis la création de la carte du
jeu [Figure 60].
85. 85
Figure 60: Conception des tourelles.
1.4.2 Modélisation de l’environnement :
Après la validation de la conception, nous avons passé à la modélisation. La figure ci-
dessous présente les étapes et les résultats finals de la modélisation de l’environnement.
86. 86
Figure 61 : Les résultats finals de la modélisation de l’environnement.
87. 87
Figure 62 : Les caractéristiques des différentes tourelles.
88. 88
2.4.3 Intégration des objets et programmation de l’environnement sur UNITY :
Les éléments modélisés de l’environnement de la cinquième mission sont ensuite
importés et assemblés sur Unity pour enfin donner naissance à une scène conforme aux
caractéristiques du Tower Defense.
Les événements de cette mission se déroulent principalement sur une trajectoire qui se présente
comme un chemin avec une entrée et une sortie consacré pour le passage des ennemies. En
effet, le choix de la trajectoire a exigé plusieurs essais pour enfin arriver à créer un terrain
optimal avec la possibilité de gagner la mission ou l’échouer selon la stratégie du joueur.
Ultérieurement, nous avons passé à la création du premier algorithme principal nommé
‘TowerDefanceManager’. Par la suite, nous avons y intégré les déterminants des tourelles.
Plus précisément, les ‘Prefabs’ des tours, le montant d’argent disponible au début de la mission
(1000 pièces de monnaies), le nombre des vagues successives d’ennemies (15 vagues), le HP
du joueur (1000 HP), les boutons de fonction pour chaque tourelle, le coût d’achat des tours
(500, 750 ou 1000 pièce de monnaies) et finalement les trois types de tourelles (Wizard Tower,
Archer Tower, Canon Tower) liés directement à leurs ‘Prefab’ déjà intégrés.
89. 89
Lignes 162, 167 et 172 : La variable ‘Tower’ prend un tour selon le choix du joueur.
Lignes 161,166 et 171 : La variable ‘CostTower’ prend une valeur selon le type de chaque tour.
Ligne 155 à ligne 158 : La fonction ‘GetTowerBuild’ donne la variable Tower.
La figure ci-après expose le résultat du programme précédent.
Figure 63: Résultat de l’algorithme ‘TowerDefanceManager’.
A ce niveau, un deuxième algorithme nommé ‘CaseManager.cs’ prend place. Ce dernier
fourni la programmation nécessaire pour créer les cases de construction des tours. En outre, la
90. 90
cinquième mission précise des positions prédéterminées, marqués par des drapeaux rouges sur
la scène, qui offrent au joueur la possibilité d’y construire une tourelle.
Pour pouvoir construire une tourelle il faut d’abord veiller à ce que le joueur ait assez d’argents.
Pour cela, nous avons testé si la valeur de la variable ‘Money’ qui appartient au premier
algorithme ‘TowerDefanceManager’ et qui représente le montant d’argent disponible chez le
joueur est supérieure au coût du tour désiré [ligne 15].
Egalement, un tour doit faire face à ses adversaires pour pouvoir les attaquer. D’où la nécessité
de pivoter les tourelles selon la position des ennemies sur la trajectoire. Ainsi, nous avons opté
pour la variable ‘TypeRotation’ qui peut prendre la valeur ‘0’ pour afficher l’état initial des
tours ou la valeur ‘1’ pour une rotation de 180° [Ligne 23 et ligne 26].
Ligne 22 : La variable ‘Tour’ prend celle de la fonction ‘GetTowerBuild()’ de l’algorithme
‘TowerDefanceManager’.
La création et l’intégration des cases de construction sont succédés par l’assimilation des trois
types de tourelles. A cet effet, nous avons développé un algorithme bien déterminé pour chaque
tour. Dans la partie qui suit nous examinons une illustration de la programmation de Bombardia,
la tourelle à cannons. Et ce, en élaborant un algorithme nommé ‘TowerCanonManager.cs’.
91. 91
Figure 64: intégrations des trois types de tourelles.
Cet algorithme est composé principalement de deux parties. En premier lieu, la détection des
ennemis les plus proches de la tourelle. Dans ce but, nous avons débuté par grouper tous les
ennemies existants sur scène dans le tableau ‘Enemy[]’ [ligne 26]. Par la suite, nous avons opté
pour parcourir le tableau et comparer la distance entre le tour et l’ennemie. A chaque fois où
cette distance appartient à la zone de détection de tourelle, l’adversaires est affecté à la variable
‘NearEnemy’ [ligne 29 – ligne 47].
92. 92
Pour assurer une localisation optimale des dangers, la procédure antécédente doit être répétitive.
Par ailleurs, la fonction ‘Update’ prédéfinie sur Unity peut exécuter le script trente fois par
seconde. Cependant, pour des raisons d’optimisation nous avons créé la
fonction ‘UpdateDirection’ capable de répéter le script seulement dix fois par seconde [ligne
22].
En deuxième lieu, l’ennemie détecté doit être suivi par le canon et attaqué. Pour atteindre ce
résultat, il faut d’abord tester si l’adversaire est situé sur la zone de tire de la tourelle [lignes 64
et 67]. Ensuite, calculer la différence entre la position du tour et celle de l’ennemie pour
l’intégrer dans la variable ‘Dif’ de type vector2 [ligne 68]. Puis, nous avons eu recours au radian
comme unité de mesure pour pouvoir repérer les positions d’un ennemi et le suivre. Pour cela,
nous avons calculé la valeur d’angle en radians de coordonnées de la variable ‘Dif’ multiplié
par la valeur du constant radian 57.29578. Le résultat est ensuite associé à la variable réel ‘rot_z’
[ligne 69].
Finalement, nous avons intégré un compteur de tire qui à chaque fois que sa valeur est égale à
0 la fonction ‘Fire’ est activée pour attaquer l’ennemie avec un projectile.
93. 93
2.5 Sixième mission
2.5.1 Conception et modélisation de l’environnement :
Etant donné que la sixième mission est considérée comme la dernière, le joueur fera
face à la partie la plus difficile du jeu. En effet, et après avoir confronté tous les ennemies
des missions présidentes, il aura besoin d’affronter le dernier boss « Kahlan » en une bataille
vicieuse. Pour accorder de l’importance à notre gameplay et au mouvement des
personnages, le combat aura lieu sur une scène fixe.
L’environnement du champ de la bataille consiste d’un regroupement des éléments créés
durant la deuxième et la troisième mission [Figure 65].
Figure 65 : Scène de la mission finale.
95. 95
Sprint 3 : conceptions des personnages, modélisation et
programmation
Introduction
Cette partie est consacrée à la création des « Players » : personnages joueurs et des
« ennemies» : personnages non joueurs
Tableau prévisionnelle du sprint :
Date début du sprint : Mercredi 23 Mars 2017
Date fin du sprint : Lundi 17 Avril 2017
Temps estimé en heures : 260 heures
Echelle de mesures : Une journée est équivalente à 10 heures de travail : (De 8h à 13h
-- de 14h à 19h)
96. 96
1- Premiére partie du Sprint
User stories Taches Temps 23 24 25 26 27 28 29 30
Création des
personnages
joueurs (PJ) des
missions 1 et 2
Conception des
personnages
8 0 0 0 0 0 0 0 0
Modélisation
des personnages
10 8 0 0 0 0 0 0 0
Programmation
et integration
des personnages
5 5 3 0 0 0 0 0 0
Redaction du
rapport
Redaction de la
partie de la
création des PJ
des missions 1
et 2
10 10 10 3 0 0 0 0 0
Création des
personnages
joueurs (PJ) des
missions 3,4,5et
6
Conception des
personnages
8 8 8 8 1 0 0 0 0
Modélisation
des personages
30 30 30 30 21 11 1 0 0
Programmation
et integration
des personnages
8 8 8 8 8 8 8 0 0
Redaction du
rapport
Redaction de la
partie de la
création des PJ
des missions
3,4,5 et 6
10 10 10 10 10 10 10 9 0
97. 97
2- Deuxieme partie du Sprint
User stories Taches Temps 31 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17
Création des
personnages
non joueurs
(PNJ) de la
missions 2
Conception des
personnages
10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Modélisation
des
personnages
20 20 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Programmation
et integration
des
personnages
5 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Redaction
du rapport
Redaction de la
partie de la
création des
PNJ de la
mission 2
10 10 10 10 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Création des
personnages
non joueurs
(PNJ) de la
mission 4
Conception des
personnages
8 8 8 8 8 4 0 0 0 0 0 0 0 0 0 0 0 0 0
Modélisation
des
personnages
18 18 18 18 18 18 12 2 0 0 0 0 0 0 0 0 0 0 0
Programmation
et integration
des
personnages
3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0
Redaction
du rapport
Redaction de la
partie de la
création des
PNJ de la
mission 4
8 8 8 8 8 8 8 8 3 0 0 0 0 0 0 0 0 0 0
98. 98
Création des
personnages
non jouaeurs
(PNJ) de la
mission 5
Conception des
personnages
5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 0
Modélisation
des
personnages
15 15 15 15 15 15 15 15 15 13 3 0 0 0 0 0 0 0 0
Programmation
et integration
des
personnages
3 3 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0
Redaction
du rapport
Redaction de la
partie de la
création des
PNJ de la
mission 5
8 8 8 8 8 8 8 8 8 8 8 4 0 0 0 0 0 0 0
Création des
personnages
non joueurs
(PNJ) de la
mission 6
Conception des
personnages
10 10 10 10 10 10 10 10 10 10 10 10 4 0 0 0 0 0 0
Modélisation
des personages
30 30 30 30 30 30 30 30 30 30 30 30 30 24 14 4 0 0 0
Programmation
et integration
des
personnages
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 2 0 0
Redaction
du rapport
Redaction de la
partie de la
création des
PNJ de la
mission 6
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 2 0
99. 99
1. Création des personnages joueurs
1.1 Mission 1 et 2 :
1.1.1 Conception et modélisation des personnages joueurs :
Dans la mesure où la première et la deuxième mission ont pour thème la recherche et la
guerre spatiale, nous avons accordé à notre personnage une apparence de vaisseau spatial de
type explorateur frégate nommé « Thunderbird ».
En effet, la frégate est un navire de guerre de taille moyenne dont les dimensions, les
armes et les équipements lui permettent de naviguer sur larges distances et d’attaquer ou de se
défendre contre d’autres navires. En outre, le vaisseau est faiblement blindé et assez bien armé.
[Figure 66]
Figure 66 : Conception de Thunderbird
100. 100
Du fait que notre personnage est un peu compliqué et dans le but de laisser une voie
libre aux futurs changements nous avons modélisé chaque fraction du vaisseau séparément
[Figure].
En ce qui concerne le choix de couleurs nous avons eu recours principalement à trois :
* Le bleu et ses nuances, puisque c’est une couleur étroitement liée au rêve. Le bleu est l'écho
de la vie, du voyage et des découvertes. Ainsi, il reflète le rôle de Thunderbird qui sillonne entre
les planètes et brise le mystère de chaque univers.
* Le jaune est également associé à la puissance, au pouvoir, mais avant tout, au soleil source
de la vie.
* Le rouge est directement significatif d’action, d’énergie et de détermination.
En regroupant ces couleurs, notre vaisseau spatial symbolise le seul espoir de l’humanité pour
renaitre de ses cendres.
Figure 67 : résultat final de la modélisation de Thunderbird.
101. 101
Thunderbird possède cinq armes distinctes ; Missile à Concussion, Missile Driller,
Bombe à Proton, Turbo-Laser et enfin un Bouclier. Les caractéristiques et les détails de ces
équipements sont illustrés dans la figure ci-après.
Figure 68 : Caractéristiques des armes de Thunderbird.
102. 102
1.1.2 Intégration et programmation de Thunderbird :
L’intégration de notre personnage Thnuderbird nécessite certaines étapes primordiales
sur Unity pour pouvoir utiliser le modèle réalisé dans la partie précédente. Autant dire,
nous avons importé l’image sous le format général ‘PNG’ puis opté pour l’option ‘Sprtie
2D’ [Figure 69].
Figure 69: L’option Sprite 2D.
103. 103
Notre vaisseau spatial confrontera les vaisseaux ennemis en relayant sur des armes variées. De
ce fait, nous avons créé des Gameobjects vides pour y ‘instancier’ les projectiles [Figure 70].
Figure 70: Gameobjects vides pour l’insertion des armes.
Plus précisément, Thunderbird possède cinq différents types de projectiles utilisables sous
certaines conditions. Ainsi, nous avons commencé par élaborer un algorithme nommé
‘SpaceShipMissionManager.cs’.
104. 104
Puis nous avons accordé à chaque projectile un bouton spécifique sur le clavier. Soit la touche
‘K’ pour la Missile Driller, ‘L’ pour le Bouclier, ‘M’ correspond à Turbolaser,
‘Espace’ coïncide avec la Bombe à Proton et enfin ‘J’ stimule le projectile de base Missile à
Concussion.
Afin d’expliquer davantage le code utilisé nous proposons une illustration du projectile Bouclier.
En effet, l’activation de cette arme est soumise à deux conditions. Premièrement, le joueur doit
presser la touche ‘K’. Deuxièmement, le temps de recharge du projectile doit être égal à zéro
[ligne 168].
Les boucliers sont des armes qui effectuent une rotation lors d’une attaque. Pour illustrer ce
détail, nous avons eu recours à la variable ‘I’ de type entier et qui incrémente sa valeur par ‘1’
d’une façon continue toute au long de la mission. Conséquemment, quand le joueur appui sur
le bouton ‘k’ les quatre boucliers s’activent, la variable ‘I’ prend sa valeur initiale ‘0’ et la
variable Boolean ‘Spell’ adapte la valeur ‘Vrai’ pour garantir l’attaque de l’ennemie [ligne 172
– ligne 177]. L’incrémentation de ‘I’ va assurer le changement de la rotation des projectiles sur
l’axe des Z ce qui entraine le mouvement circulaire des Boucliers [ligne 181].
Les attaques de notre vaisseau spatial se diffèrent. D’ailleurs, chaque arme possède une
modélisation, une conception et des caractéristiques variées. De ce fait, et après la création de
leur ‘Prefabs’ tous les projectiles sont identifiés par des chiffres distingués à la fin de leurs noms
et manipulés à travers un script unique nommé ‘SpellManager.cs’.
Pour mieux élaborer, prenons l’exemple suivant :
SPELL 07
Spell 07 correspond aux Bombes à Proton. Pour réaliser une attaque utilisant ce projectile nous
devons tout d’abord créer son ‘Prefab’. Ensuite, nous procédons à son animation. Pour enfin
exécuter son script.
105. 105
Animation du projectile Spell07.
Dans cette partie du scripte de Spell07 nous avons commencé par tester le type de
projectile, et ce selon le chiffre distingué existant à la fin de son nom [ligne 63]. De plus, la
Bombe à Proton est une arme qui augmente de taille progressivement. Pour cela, nous avons
opté pour une variable ‘J’ qui assure l’incrémentation des proportions de l’explosif au cours
du temps. La figure ci-après supporte le résultat de notre code.
107. 107
1.2 Missions 3/4/5/6 :
1.2.1 Conception et modélisation des personnages joueurs :
La conception du « Capitaine Alec » n’obéit pas à la règle des proportions réelles du corps
humain, mais plutôt, aux règles provenant des proportions Japonaises « Chibi ». En effet, les
personnages de type « Chibi » ont souvent des têtes disproportionnellement grandes par rapport
au corps.
En ce qui concerne le choix des costumes, nous avons employé des habits cohérents à un
environnement futuriste et spatial des missions. Ainsi, notre personnage possède une armure
innovante avec un aspect héroïque [Figure 72]. Le capitaine Alec est le seul homme qui peut
mettre fin à la nuisance de la race humaine ce qui explique l’inspiration derrière son nom Alec,
ou en d’autres termes, l'homme défendeur.
Figure 72 : Conception du personnage (CapitaineAlec).
108. 108
Dès la validation des croquis, nous avons passé à la modélisation du Capitaine Alec. Pour y
réussir, nous avons dû passer par plusieurs étapes résumées dans la figure ci-dessous.
Figure 73 : Etapes de la modélisation de Capitaine Alec.
111. 111
1.2.2 Intégration et programmation du Capitaine Alec :
L’intégration de notre personnage ‘Capitaine Alec’ nécessite certaines étapes
obligatoires sur Unity pour pouvoir utiliser le modèle réalisé lors de la modélisation. En outre,
nous avons commencé par importer tous les Sprites Sheets du personnage sous le format général
‘PNG’ puis opter pour l’option ‘Sprtie 2D’ [Figure 74]. Par la suite, nous avons fixé tous les
animations de chaque mouvement dans ‘Animator’ [Figure 75]. Finalement, nous avons intégré
les interfaces graphiques ‘GUI’ du personnage qui comporte l’icône de chaque arme, le HP de
l’héro, le mana, les différents potions, l’arbre de maîtrise, la disponibilité d’argent etc.
[Figure76].
Figure 74: Intégration du Capitane Alec.
112. 112
Figure 75: Animation des mouvements de Capitaine Alec sur Animator.
Figure 76: GUI du capitaine Alec.
Capitaine Alec est un personnage particulier. En effet, il nous a exigé une
programmation riche et diversifié qui a demandé amplement de temps. De ce fait, et comme
tentative de simplifier le code et de couvrir les détails les plus importants, nous présentons les
huit parties suivantes :
113. 113
Gestion du déplacement :
Cette partie est consacrée pour le déplacement du personnage dans les quatre directions ;
haut, bas, droite et gauche.
En effet, notre jeu est de type 2D avec une vue isométrique. Ainsi, pour déplacer notre
personnage il faut incrémenter deux coordonnées en même temps pour pouvoir effectuer un
mouvement suivant un angle de 45° par rapport à l'horizontale ou la verticale.
Prenons comme illustration le déplacement à gauche qui implore une translation
simultanée à gauche et en bas [lignes 392 et 393]. Pour attribuer un effet réaliste au mouvement
du Capitaine Alec, il faut d’une part appeler l’animation [ligne 394] et d’une autre part vérifier
l’affichage des détails du costume selon la position du personnage. Par exemple, dans la ligne
396, nous avons modifié l’ordre du calque de l’épée en 0 puisqu’il n’ait pas entièrement visible
au joueur.
X
Y
45°
114. 114
Gestion des attaques et des sorts magiques :
Lors des troisième, quatrième, cinquième et sixième missions Capitaine Alec aura
besoin de se défendre contre plusieurs ennemies. Pour cela, nous l’avons renforcé d’une variété
d’armes associée chacune à un bouton spécifique sur le clavier. Soit la touche ‘J’ qui correspond
à un sort magique, ‘K’ coïncide avec une épée, ‘L’ synchronise avec un premier projectile et
finalement le bouton ‘M’ pour un deuxième projectile [Figure 77].
Figure 77: Illustration des armes disponibles chez Capitaine Alec.
Ligne 483 : Instancier un sort magique dans la position du Pivot.
Ligne 484 : Supprimer ce sort magique après deux seconde
Gestion du Mana:
Le "Mana" est un terme appartenant au vocabulaire gamer qui désigne l'énergie magique
d'un personnage. Celle-ci se présente sous la forme d'une jauge qui détermine la quantité de
sorts magiques susceptibles d'être lancés par l’héro. Lorsque la réserve de ‘Mana’ est épuisée,
le lanceur de sorts ne peut plus lâcher des incantations et doit remplir ses réserves.
En effet, nous avons attribué à notre personnage 100 points de Mana avec la possibilité
de réduire à chaque utilisation d’une arme. Le premier et le deuxième projectile détruisent dix
points de la jauge attribuée au Mana et le sort magique n’épuise que cinq.
115. 115
Pour assurer le fonctionnement d’une arme un test prend place dans la ligne 508. Ainsi,
le joueur ne peut pas utiliser un sort magique seulement sous les deux conditions suivantes : En
premier lieu, la jauge du mana doit contenir un nombre de points supérieurs à celui nécessaire
pour l’utilisation du sort. En deuxième lieu, le temps de simulation de l’arme doit être égal à
zéro.
La ligne 521 illustre le code derrière la diminution de la réserve de mana lors d’une
attaque magique. En parallèle, la ligne 522 montre l’augmentation du temps d’utilisation du
prochain sort.
Gestion du niveau, des points d’expérience et des points de maîtrise :
Capitaine Alec possède la capacité de gagner de l'expérience à chaque fois qu’il achève
une mission, tue des ennemies ou collecte un inventaire de bois ou de pierres. Lorsque notre
personnage atteint un total spécifique de points d'expérience, il progresse en capacités. Cette
progression s'appelle ‘gagner un niveau’ et elle est illustrée dans le code suivant.
116. 116
Dans cette partie nous examinons le système de maîtrise. En effet, ce dernier est conçu
pour mettre en valeur les efforts stratégiques du joueur. Chaque fois que le personnage attient
un niveau supplémentaire, il gagne des points de maitrise lui offrant la possibilité d’encaisser
des récompenses et d’améliorer ses compétences.
Le système de maitrise se présente sous forme de schéma hiérarchique contenant tous
les bénéfices possible d’une manière progressive. De ce fait, le joueur ne peut déverrouiller une
récompense qu’après le déblocage de sa précédente.
Figure 78: Hiérarchie de points de maîtrises.