Délistification du cahier des charges

This commit is contained in:
Mattéo Delabre 2016-04-19 02:32:30 +02:00
parent f773e2631a
commit bc8a8f1186
4 changed files with 72 additions and 78 deletions

View File

@ -1,96 +1,84 @@
\chapter{Introduction} \chapter{Introduction}
\section {Généralités} Dans le cadre du module Projet C.M.I. du second semestre de L1,
Dans le cadre du module Projet C.M.I du second semestre de licence 1,
nous avons développé en équipe un jeu vidéo nommé « Skizzle ». nous avons développé en équipe un jeu vidéo nommé « Skizzle ».
Notre groupe est composé de trois personnes, Mattéo Delabre, Maëlle Beuret Notre groupe est composé de trois personnes~: Maëlle \textsc{Beuret},
et Rémi Cérès. Rémi \textsc{Cérès} et Mattéo \textsc{Delabre}.
L'objectif principal de ce projet est la création d'un jeu vidéo fonctionnel. Le jeu utilise les bases d'algorithmique apprises au premier semestre ainsi que nos connaissances et L'objectif de ce projet est la création d'un jeu vidéo fonctionnel.
recherches personnelles.\\ Le jeu mobilise les bases d'algorithmique apprises au premier semestre ainsi
La création de ce jeu nous a permis d'acquérir des notions de gestion de projet, ainsi que le travail en collaboration et l'apprentissage de la que nos connaissances et recherches personnelles. La création de ce jeu nous
communication au sein d'une équipe. a permis de renforcer nos capacités de travail en collaboration, en
\\ communication et en gestion de projet en général.
Le développement du projet s'est déroulé sur une période d'un mois et une semaine, Le développement du projet s'est déroulé sur une période d'un mois
soit du vendredi 4 mars 2016 au lundi 11 avril 2016 inclus.\\ et une semaine~: du vendredi 4 mars 2016 au lundi 11 avril 2016 inclus.
Chaque vendredi, Chaque vendredi, lors de la séance de trois heures consacrée au projet,
lors de la séance de trois heures consacrée au projet C.M.I, un point était réalisé avec chaque membre de l'équipe. les trois membres de l'équipe se réunissent pour résumer le travail effectué
Une répartition des tâches et des objectifs la semaine passée et planifier celui de la semaine à venir.
à atteindre pour la semaine suivante étaient déterminés. De plus, durant la semaine nous avons communiqué afin de faciliter l'organisation, de nous coordonner et de nous entraider.\\
\section{Choix du jeu}
\section {Sujet} Nous avons d'abord réalisé une étude comparative entre trois jeux
Le projet a pour sujet la réalisation d'un jeu vidéo vidéos possibles. Pour ces jeux vidéos, le choix était libre. Notre choix
fonctionnel en groupe ou en individuel.\\ s'est porté sur un jeu avec un principe original inspiré des jeux de
Le choix du jeu et du langage de programmation est libre; cela peut être une création ou bien un jeu existant.\\ plates-formes, de coopération et de réflexion. Nous l'avons appelé
« Skizzle », à mi-chemin entre l'anglais \emph{skill} et \emph{puzzle.}
Notre choix s'est porté sur un jeu avec un principe original inspiré des jeux de Le jeu se joue à deux joueurs. Chaque joueur est affecté à une balle qu'il
plates-formes, de coopération et de réflexion. Nous l'avons appelé "Skizzle".\\ contrôle par le clavier. Le but est pour ces joueurs de faire traverser leur
balle à travers des niveaux prédéfinis. Pour ce faire, les joueurs doivent
utiliser différents phénomènes physiques et constructions mises en place
à la fois dans le niveau et dans le moteur physique du jeu.
Il sagit pour deux joueurs de faire traverser deux Les niveaux se présentent sous la forme de casse-têtes courts à difficulté
balles à travers un niveau. progressive. Les deux joueurs doivent souvent réfléchir et s'entraider
La conception du jeu sappuie sur des éléments physiques pour proposer des pour pouvoir parvenir à la fin. Ce n'est que lorsque les deux joueurs
niveaux sous forme de casse-têtes, dans lesquels les deux participants doivent franchissent la ligne d'arrivée que la partie est gagnée.
sentraider et réfléchir pour parvenir à la fin.
%Skizzle est constitué d'une suite de niveaux dont le but est de tous les
%terminer. Chaque niveaux est composé de bloc pouvant avoir des interaction avec
%les balle ou sur la physique du jeu, comme par exemple modifié le sens de
%la gravité.\\
%Le ou les deux joueurs contrôle chacun une balle qu'ils peuvent uniquement
%déplacer vers la droite et la gauche de l'écran. Tous les élément du jeux,
%c'est a dire les blocs et les balles peuvent être aimantés.\\
%
%Dans chaque niveaux le ou les joueurs doivent réfléchir et dentraidé en
%sappuyant sur les différentes interaction possible avec la physique du jeu
%pour parvenir a la fin.
\section{Cahier des charges} \section{Cahier des charges}
Le jeu doit fonctionner sur tous les systèmes courants (Linux, OS X, Windows).
À l'ouverture du jeu, un menu doit permettre d'orienter le joueur vers
les différents états de jeu disponibles, notamment le jeu ou l'éditeur.
Avant d'ouvrir le jeu, on doit pouvoir choisir le niveau à jouer. Avant
d'ouvrir l'éditeur, on doit pouvoir choisir le niveau à éditer ou si l'on
veut créer un nouveau niveau.
\subsection{Généralités} Le jeu se joue à deux joueurs qui incarnent chacun une balle contrôlable au clavier.
Une partie doit se présenter sous la forme d'un niveau où les joueurs
ont une position initiale et une position à atteindre pour gagner.
Chaque partie est limitée en temps. La durée limite est définie selon le niveau.
\begin{itemize} Les mécanismes physiques à implémenter sont la force d'attraction chargée
\item \textbf{Fonctionnalités} (coulombienne), la force de gravité, les forces de frottement et les
\begin{itemize} collisions entre objets. La force de gravité est appliquée selon un vecteur
\item Divertir et faire réfléchir les utilisateurs. de norme constante mais de direction et sens modifiables selon les
\item Multi-plateformes (Linux, OS X, Windows). conditions du niveau.
\end{itemize}
\item \textbf{Contraintes} La caméra des joueurs doit être centrée sur la position intermédiaire
\begin{itemize} des deux joueurs et doit s'orienter dans la direction inverse
\item Interface pas adaptée au tactile. de la direction actuelle de la gravité, en tout temps.
\item Présence de deux joueurs.
\end{itemize}
\end{itemize}
\subsection{Menu} Chaque niveau est composé d'objets. Chaque objet possède une masse,
un coefficient de frottement statique et dynamique, un coefficient
de restitution, une charge, une position, une vitesse et un calque d'affichage
(couche). Un objet est soit une balle d'un joueur soit un bloc. Un bloc
peut être neutre ou posséder une particularité.
Les blocs particuliers sont définis complètement dans la section
\ref{sec:manuel-objets}.
\begin{itemize} Dans chaque niveau est définie une zone de jeu. Cette zone est un polygone
\item Permet à l'utilisateur de choisir son mode de jeu (éditer/jouer). contrôlé par un nombre arbitraire de points. Si un objet avec une masse
\item Permet d'afficher la liste des niveaux de manière dynamique et automatique. non-infinie se trouve en dehors de cette zone (notamment un joueur
\item Possibilité d'utiliser aussi bien la souris que le clavier. ou bien un bloc déplaçable), il doit être immédiatement tué. S'il s'agissait
\end{itemize} d'un joueur, la partie se termine.
\subsection{Moteur physique} Les niveaux doivent être éditables par un éditeur. L'éditeur permet
de créer un nouveau niveau ou d'éditer un niveau existant. Il permet
\begin{itemize} de placer des objets prédéfinis sélectionables depuis la barre d'outils.
\item Gestion de la force d'attraction. Il permet notamment de situer les positions initiales des joueurs
\item Gestion de la force de gravité. et du(des) bloc(s) d'arrivée. On doit pouvoir modifier la polarité des objets
\item Gestion des forces de frottement. depuis l'éditeur. Le niveau modifié doit pouvoir être sauvegardé. On doit
\item Gestion des collisions. pouvoir tester le niveau en cours d'édition depuis l'éditeur sans perdre
\end{itemize} son travail. On doit pouvoir modifier la taille de la zone de jeu.
\subsection{Éditeur}
\begin{itemize}
\item Permet de créer un niveau.
\item Permet de modifier un niveau existant.
\item Permet de placer tous les types d'objets.
\item Permet de placer la position initiale des joueurs.
\item Permet de modifier la polarité des objets.
\item Permet de sauvegarder un niveau modifié ou créé.
\item Permet de tester le niveau créé directement dans l'éditeur.
\item Permet de modifier la taille et la forme de la zone jouable.
\end{itemize}

View File

@ -80,6 +80,7 @@ Les touches \fbox{$\longleftarrow$} et \fbox{Échap} permettent de revenir
au menu précédent. au menu précédent.
\section{Objets} \section{Objets}
\label{sec:manuel-objets}
\newcommand{\objectsymbol}[1]{ \newcommand{\objectsymbol}[1]{
\includegraphics[width=23px]{figures/manuel-#1.png} \includegraphics[width=23px]{figures/manuel-#1.png}
} }

View File

@ -4,6 +4,11 @@
howpublished = "\url{http://goo.gl/G0gdWU}" howpublished = "\url{http://goo.gl/G0gdWU}"
} }
@online{analyse-box2d,
author = "Erin Catto",
title = "Box2D : A 2D Physics Engine for Games",
howpublished = "\url{http://goo.gl/uTnXH4}"
}
@online{ptf-Resource-Acquisition, @online{ptf-Resource-Acquisition,
author = "tomdalling", author = "tomdalling",