Cahier des charges - Projet S2

Cahier des charges - Projet S2
Victor COLLETTE - Alexandre FERNANDEZ - Romain AUBRIOT - Erwan DUMORTIER
promo EPITA 2019
1
Table des matières
1 Introduction
1.1 Présentation du projet . . . . . . . . . .
1.2 Présentation du groupe et des membres
1.2.1 VARETM . . . . . . . . . . . . .
1.2.2 Victor Collette (C1) . . . . . . .
1.2.3 Alexandre Fernandez (D1) . . . .
1.2.4 Romain Aubriot (D1) . . . . . .
1.2.5 Erwan Dumortier (D2) . . . . . .
1.3 Objet d’étude . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
3
3
3
3
4
4
4
5
5
2 Technologies
2.1 Moyens Matériels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Outils, Logiciels et Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
6
7
3 Budget
3.1 Côuts prévus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Bénéfices attendus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Estimations sur la rentabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
7
8
4 Découpage du projet
4.1 Les différentes parties du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Répartitions des tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
8
9
5 Conclusion
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Introduction
1.1
Présentation du projet
Ce cahier des charges a pour but de faire découvrir les différents aspects du projet du groupe VARETM .
Vous y trouverez tous les éléments importants de celui-ci, notamment les divers moyens que nous allons
utiliser pour le réaliser.
Nous souhaitons créer un RTS (jeu de stratégie en temps réel) qui se nommera “Tiny Planet”. L’action
se déroulera dans l’espace : le joueur prendra le contrôle d’une planète et devra réaliser différentes actions
afin de l’entretenir et de coloniser ses ennemis pour gagner la partie.
Nous avons pour objectif de faire un jeu qui soit plaisant à jouer pour tous les membres du groupe.
N’ayant absolument pas les même goûts en matière de jeux vidéos, c’est un réel défi que nous nous posons
de répondre aux attentes de chacun.
1.2
1.2.1
Présentation du groupe et des membres
VARETM
Lorsque nous avons formé le groupe de projet, nous étions tous d’accord pour réaliser un jeu, mais les
avis étaient divergents sur son contenu.
Deux membres du groupe voulaient créer un jeu dans l’univers de “Star Wars” (Alexandre et Romain)
tandis que les deux autres n’avaient pas d’idée précise de l’univers dans lequel ils voulaient que le jeu se
déroule. Victor et Erwan voulaient réaliser un jeu addictif et surtout pensaient que le thème de “Star Wars”
allait limiter notre liberté de création. De plus chacun avait ses propres goûts en matière de jeux vidéos dans
le sens où notre imagination allait être limitée par une histoire déjà crée.
Nous nous sommes donc tous accordés sur le fait que le jeu se déroule dans l’espace. De plus nous avons
réfléchi aux moyens que nous pourrions mettre en place pour que notre jeu soit vraiment prenant pour le
joueur. C’est à dire que nous voulons que le joueur joue régulièrement et qu’il ne lance pas seulement une
partie de temps à autres. Sur ce point les quatre membres du groupe sont tombés d’accord sans aucun souci.
Le type de jeu qui nous laissait le plus de liberté pour remplir tous nos objectifs était le jeu de stratégie
en temps réel (RTS). Suite à ces nombreuses discussions autour de notre projet nous avons établi plusieurs
règles que nous voudrions absolument respecter :
• La mise en place de situations réelles, du moins qui se rapproche de la réalité, comme par exemple le
fait que les planètes soient polluées par les habitants.
• Que tout type de joueur, débutant ou confirmé, puisse évoluer facilement dans l’univers “Tiny Planet”.
• Créer notre propre scénario et ne pas s’inspirer de films ou d’autres jeux comme StarCraft (qui est une
référence dans les RTS de nos jours).
3
• Que tous les détails du jeu plaisent à tous les membres du projet.
L’utilisateur se retrouve donc au commandement d’une planète de départ se trouvant au beau milieu de la
galaxie. S’il choisit de jouer en mode “Solo”, le joueur sera entouré de plusieurs joueurs virtuels (Intelligences
artificielles ou “IA”). En revanche il aura la possibilité de s’entourer d’IA et de joueurs réels s’il choisit une
partie en mode “Multijoueur”. Le but d’une partie est donc de détruire la planète mère de tous ses ennemis.
Pour ce faire, le joueur doit récolter des ressources et de l’argent à partir de sa planète mère. Il faut donc
créer plusieurs types de bâtiments comme des usines de recyclage de déchets pour traiter la pollution et pour
permettre aux habitants de sa planète de pouvoir vivre et travailler ; ou encore des satellites pour pouvoir
défendre sa planète. De plus il faut mettre en place une flotte militaire d’attaque pour gagner ou éviter
de perdre la partie. Une multitude de stratégies pourra être mise en place pour gagner une partie, ce qui
poussera le joueur à en essayer de nouvelles.
1.2.2
Victor Collette (C1)
Sorti fraîchement de STI2D, je suis arrivé à l’EPITA. Passionné de programmation depuis un moment, j’ai
suivi naturellement ce cursus. Une STI option SIN (Système d’Information Numérique) m’a permis de réaliser
un projet pour le bac ainsi que d’acquérir un peu d’expérience en travail de groupe et également en gestion de
projet. C’est pour cela que l’équipe m’a désigné chef de projet pour Tiny Planet. En informatique, je suis un
touche-à-tout, pas excellent dans un domaine, mais bon dans beaucoup (Graphisme, Audio, Programmation,
Vidéo). Contrairement à certains membres du groupe, je ne suis pas fan de jeux-vidéos : j’y passe peu de
temps (1-2h par semaine). En revanche, l’occasion de pouvoir créer notre propre jeu vidéo me paraît être
une opportunité qui ne reviendra sûrement pas et donc, à saisir. J’espère que ce projet nous permettra à
tous de repousser nos limites et de voir de quoi nous sommes capables !
1.2.3
Alexandre Fernandez (D1)
Issu d’une Terminale S SVT spécialité Physique-Chimie, je porte un intérêt particulier à l’informatique,
l’infographie. Aussi, je suis un très grand fan de Star Wars et amateur de jeux vidéos. Après mes premières
expériences en modding du jeu Jedi Knight : Jedi Academy (un jeu basé sur le moteur de Quake III), j’ai
commencé à jouer, puis à mapper sur le RTS StarCraft II (Blizzard Entertainment). C’est ce dernier qui m’a
donné envie de développer un RTS dans l’espace dans le cadre de ce projet. J’ai de l’expérience en édition
d’image et en modélisation 3D. Niveau programmation, j’ai des notions basiques en C et en JavaScript, et
une bonne connaissance du PHP (framework CodeIgniter) et du SQL, car j’ai développé un site internet de
stockage de fichiers et d’hébergement d’images.
1.2.4
Romain Aubriot (D1)
Passionné de jeux-vidéos depuis toujours, pouvoir mettre enfin sur pied un jeu répondant à toutes mes
attentes est une occasion en or. Par manque de connaissances et de temps, je n’avais jamais pu me lancer
dans ce genre de projet. Il est vrai que ce projet, inclus dans ma scolarité, m’offre la possibilité de m’investir
dans ce que j’aime, sans pour autant avoir à mettre mes études de côté.
Je n’ai pas de réelles compétences dans le domaine si ce n’est que je pense être celui du groupe qui a
joué au plus de jeux vidéos différents, mon expérience peut être enrichissante pour le groupe, car je connais
beaucoup de petites astuces concernant le gameplay qui peuvent nous servir pour le rendre plus attractif.
Lorsque nous nous sommes rencontrés en début d’année et que nous avons formé le groupe, nous n’étions
pas forcemment d’accord sur le type de jeu que nous allions faire. Étant fan de l’univers "Star Wars" je
voulais absolument partir sur un jeu dans cet univers, mais deux membres du groupe n’étaient pas forcement
d’accord et nous avons fini par trouver un accord sur le fait que le jeu se déroulerait dans l’espace.
Cette première expérience en tant que membre du groupe me montre que le travail va être à la fois
intéressant, mais aussi difficile car il va falloir prendre en compte les avis de tous les membres avant de
prendre une décision. Pour ma part je vais m’occuper du moteur son du jeu et d’une partie des graphismes.
4
Je n’ai pas forcemment les compétences requises dans ces domaines, mais je pense pouvoir les acquérir assez
rapidement grâce à quelques bases que je possède.
1.2.5
Erwan Dumortier (D2)
Tout d’abord, étant le dernier à me présenter, et représentant la dernière lettre du logo VARETM , je
tiens à dire que je suis extrêmement vexé. Cependant, j’essaie de me consoler en me disant que les autres
membres du groupe sont superstitieux et "gardent le meilleur pour la fin".
Trêve de plaisanterie, ne jouant pas ou plus aux jeux vidéos depuis un certain temps maintenant, je pense
que je peux apporter à ce groupe le recul dont il a besoin afin de ne pas foncer tête baissée. Cependant, ce
n’est pas parce que je ne joue pas que je n’ai pas d’idées à soumettre par rapport au jeu.
Aussi, à mon avis, ce projet peut nous donner une idée de ce qu’est le métier d’ingénieur ainsi que le
travail de groupe, qui n’est pas toujours facile : nous avons déjà vu cela dès notre première réunion où tout
le monde n’était pas toujours d’accord sur tous les points. De plus, mener un projet de A à Z sur une longue
durée (par rapport aux travaux que nous avons déjà faits) est un nouveau défi. Encore, ce projet va nous
permettre de toucher un peu à tout et d’apprendre par nous-même : coder, réaliser des graphismes, etc.
Enfin, sur ce projet, je m’occuperai du budget de l’équipe et, étant passionné de musique, de l’audio
avec Romain. De plus, je participerai à l’évolution du site internet. Aussi, je créerai l’installateur dans son
intégralité.
1.3
Objet d’étude
Le premier objectif du projet pour tous les membres du groupe est d’en apprendre plus sur la création
d’un jeu vidéo. Certains d’entre nous étant des personnes qui passent beaucoup de leur temps libre à jouer,
c’est une opportunité pour eux de voir ce qui se passe lors du développement d’un jeu.
Le second objectif qui cette fois-ci est plus scolaire est de consolider nos bases en programmation. Nous
parlons bien évidemment sans avoir commencé la création de notre jeu, mais nous pensons que le temps
passé sur le projet est un temps d’apprentissage qui consolidera considérablement nos bases. De plus, pour
la majorité d’entre nous, les connaissances dans certains domaines utiles pour la création d’un jeu sont
quasi-nulles.
Pour la plupart d’entre nous, c’est la première fois que nous avons un projet nous demandant autant de
travail sur une si longue période. C’est donc l’occasion de tester nos compétences lors d’un travail d’équipe
et surtout d’apprendre vraiment ce qu’est le travail d’équipe. Celui que nous avons désigné comme chef
de projet, Victor, possède déjà cette expérience. L’objectif pour lui est d’apprendre à gérer une équipe,
d’organiser et répartir les différentes tâches entre tous les membres du projet. C’est aussi l’occasion, pour
tous, d’apprendre à travailler selon un planning qui nous a été donné par un tiers.
Le dernier point qui nous paraît primordial est l’aspect amical de notre projet. Avant d’être une équipe
qui travaille sur un projet de jeu vidéo, nous sommes tous amis. Le fait de travailler entre amis sur un projet
tel que celui-ci permet d’éviter parfois certaines tensions et d’oublier le stress que la création du jeu peut
nous apporter.
2
2.1
Technologies
Moyens Matériels
Beaucoup de matériel informatique sera exploité lors de l’élaboration de ce projet. En effet, outre les
éléments principaux, nous utiliserons aussi des ordinateurs portables, et d’autres ordinateurs pour des tests
de compatibilité notamment. L’aperçu fourni ci-dessous est donc non exhaustif.
Voici les compsants principaux de nos ordinateurs respectifs :
5
Composants PC
CPU
Carte Graphique
RAM (Go)
Stockage
OS
Victor Collette
i5 2500k
Radeon HD 6850
8
2 To
Windows 7
Alexandre Fernandez
i7 2600k
Radeon HD 6950
8
1 To
Windows 7
Romain Aubriot
i5 3330
NVIDIA GT 640
8
1 To
Windows 8
Erwan Dumortier
i3 330M
Radeon HD 5470
4
500 Go
Windows 7
Nous utiliserons également :
• Un serveur hébergé par Romain.
• Un serveur internet hébergé par une société spécialisée.
• Les ordinateurs mis à disposition par l’EPITA.
2.2
Outils, Logiciels et Frameworks
Unity Il s’agit d’un logiciel d’édition de scènes, et moteur de jeu puissant. Ce sera
notre arme principale pour l’élaboration de ce projet. C’est le point central vers lequel
convergent tout les scripts et les assets (textures, audio, vidéo, etc...).
Visual Studio IDE pour le développement en C#. Il nous permettra d’écrire les
scripts pour Unity.
Sublime Text Éditeur de texte pour le développement du site internet. Il est riche
en fonctionnalités et en plug-ins, ce qui permet une grande flexibilité ainsi que des
outils adaptés aux frameworks utilisés.
Photoshop Pour l’élaboration de différents logos, textures, jaquettes, etc..., nous
nous servirons éventuellement de Gimp et InkSkape.
Inno Setup
Inno Setup Compiler servira a générer la procédure d’installation.
PHP Langage de programmation impératif interprété, utilisé pour programmer un
site internet dynamique. Le système de gestion de bases de données MySQL sera également exploité pour stocker des informations ordonnées relatives au site internet.
Apache
Serveur HTTP pour le site internet.
Git Logiciel de gestion de version du code. Il facilitera la tâche de partage du code
dans le groupe en offrant des fonctionnalités de synchronisation avancées et intelligentes.
Audacity Utilisé avec FL studio et/ou Adobe Audition, ce logiciel servira à l’édition
audio.
Twitter Bootstrap Framework CSS prêt-à-coder. Il comprend une feuille de style
CSS ainsi que des polices de caractères spécifiques comprenant des icônes vectorielles
en guise de caractères, dont l’utilité est de réduire le nombre de requêtes HTTP lors
du chargement des pages.
6
CodeIgniter Framework PHP orienté objet (avec architecture MVC) facilitant la
création de nouveaux projets en réalisant les tâches les plus basiques et répétitives.
jQuery Framework JavaScript permettant la mise en place facilitée d’animations
client et du système AJAX, dans le cadre du développement du site internet.
Sony Vegas Pro Pour la réalisation de vidéos, éventuellement conjointement utilisé
avec Adobe Première Pro et Handbrake. Les scènes d’introductions ou autres vidéos
de présentation pourront être montées via ces programmes.
Tex Live Pour compiler les sources LATEX. Utile en cas de rapport à rendre.
Blender Pour la création / édition des modèles 3D. Ce logiciel est particulièrement
flexible et possède une compatibilité accrue, capable d’importer et d’exporter des objets
3D dans des formats de tous horizons.
Standards Web Le format de balisage de données HTML5 et le langage informatique de présentation de
documents CSS3 seront les standards utilisés dans le cadre du site internet du projet.
2.3
Méthodes
Nous comptons utiliser l’algorithme de recherche de chemin Dijkstra.
Techniquement, le jeu sera rendu avec l’option 2D de Unity, c’est-à-dire un environnement 3D dont la caméra
de rendu se déplace uniquement sur un plan, et ne permet pas de rotation.
Le Menu sera rendu dans un environnement 3D.
3
3.1
Budget
Côuts prévus
Le tableau ci-dessous n’est, bien sûr, pas exhaustif. En effet, nous aurions pu compter une infinité de
dépenses, mais avons décidé de ne citer que les plus importantes, en examinant le rapport coût/rentabilité,
à quelques exceptions près.
Le prix de mise sur le marché ainsi que le prix du DVD-ROM ne sont pas inclus ici car ils sont directement
répercutés sur les bénéfices de l’entreprise.
Domaine
Transports
Claviers QWERTY
Tablette graphique
Internet
Licences
Mugs
Total
3.2
Prix en e
9
61*4
15*4
60
120*4
1280*4
3*4
5985
Bénéfices attendus
Pay to Win : fixé à 30e pour 100000 crédits (monnaie du jeu) et prix d’achat du jeu fixé à 20e soit un
bénéfice de 3e à l’achat comprenant le prix du DVD-ROM à 15e et le prix de mise sur le marché à 2e.
7
3.3
Estimations sur la rentabilité
Ces estimations sont basées sur un chiffre attendu de 3000 joueurs ayant fait l’acquisition de Tiny Planet,
entre 2 et 3 mois après la commercialisation du jeu sur le marché.
Prix en e
-5985
+90000
+9000
93015
Coûts
Pay to win
Achat
Total
4
Découpage du projet
4.1
Les différentes parties du projet
Pour des questions de répartitions des tâches, le projet à été découpé en grands domaines. En voici la
liste :
• Menu/Options
• Site Web
• Audio
• Gameplay
• Graphisme
• IA
• Réseau
• Installateur
4.2
Répartitions des tâches
Nous avons essayé de repartir les tâches le plus équitablement possible, en plaçant de préférence ceux
qui avaient des facilités sur certains points dans leur domaine de prédilection. Chaque domaine aura un
référent responsable de la tâche en question. Certaines tâches demandent moins de travail que d’autres,
par conséquent, peu de personnes ont été assignées à celles-ci. Vous trouverez, ci-dessous, un tableau de
répartition de ces tâches :
Répartition des tâches
Menu/Options
Site Web
Audio
Gameplay
Graphisme
IA
Réseau
Installateur
Victor Collette
•
•
•
Alexandre Fernandez
F
F
•
•
F
F
Romain Aubriot
Erwan Dumortier
•
•
F
F
•
•
F
•
•
•
F
Légende : F = Responsable de la tâche , • = Travaille sur la tâche
De plus, pour assurer une bonne cohérence et faciliter le travail d’équipe, nous nous sommes mis d’accord
sur le coding-style à suivre, notamment sur les conventions de nommage.
8
4.3
Planning
Nous avons tenté de répartir les tâches dans le temps de manière équitable, pas en terme de complexité,
mais en terme de masse de travail.
Planning
Menu/Options
Site
Audio
Gameplay
Graphisme
IA
Réseau
Installateur/Lanceur
1re soutenance
~
~
~~
~
~
2e soutenance
~~
~~
~
~~~
~~
~~
~
3e soutenance
~~~
~~~
~~~
~~~
~~~
~~~
~~~
~~~
Légende : ~ = Tâche commencée , ~ ~ = Tâche avancée, ~ ~ ~ = Tâche terminée
5
Conclusion
En conclusion, au travers de tous les points que nous avons abordés, nous allons créer un jeu que nous
espérons attractif et surtout addictif. Chaque membre du groupe a décidé de se trouver une spécialité dans
laquelle il va essayer d’apprendre un maximum de choses qu’il pourra ensuite appliquer au jeu. Un planning
plus détaillé est déjà en cours d’élaboration pour que chaque personne puisse répartir son travail comme il
le souhaite afin que le projet soit prêt aux dates échéantes.
Le projet est pour nous le moyen d’apprendre à programmer tout en faisant ce que nous aimons. Il va de
soi que la motivation étant maître mot dans notre groupe, nous allons réaliser le meilleur jeu possible.
“ Ce qui est admirable, ce n’est pas que le champ des étoiles soit si vaste, c’est que l’Homme l’ait
mesuré.” - Anatole France
9
Figure 1 – Coming SoonTM
10