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
© Copyright 2024 ExpyDoc