Précédent   Forum du club des développeurs et IT Pro > Applications > Projets > Projets hébergés > Incubateur_JV > DVP1_Sinuous
DVP1_Sinuous Forum dédié à la reproduction du jeu Sinuous.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/01/2012, 15h24   #1
frenchem67
Nouveau Membre du Club
 
Homme Cédric Bohnert
En auto-formation
Inscription : juillet 2004
Messages : 77
Détails du profil
Informations personnelles :
Nom : Homme Cédric Bohnert
Âge : 34
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : En auto-formation
Secteur : Conseil

Informations forums :
Inscription : juillet 2004
Messages : 77
Points : 31
Points : 31
Par défaut Projet : Sinuous Game

Projet incubateur JV: SINUOUS GAME
I. Objectif du projet :

L'objectif de ce projet sera de développer une version multiplateforme du jeu Sinuous Game. Ce jeu a été créé par Hakim El Hattab et sa règle est simple : diriger un vaisseau spatial et éviter d'entrer en collision avec de petits astéroïdes qui parcourent l'écran.
Le présent message a pour but de tracer l'évolution de ce projet afin de l'appuyer, de la phase de pré-analyse à la phase de programmation.


II. Contexte :

Je me prénomme Cédric a.k.a frenchem67 sur les forums de developpez.com et dans cette section je vais me présenter et décrire le contexte du projet :

J'ai 32 ans et je vis à Strasbourg. J'ai initialement fait des études de chimie dans le but de devenir ingénieur chimiste, mais rapidement une maladie chronique m'a poussé à arrêter les études pour me soigner. Je tiens à le préciser car c'est une maladie difficile qui m'affecte tous les jours et me handicape.

Fin 2009, après quelques années "inactives" j'ai décidé de me reconvertir, j'ai choisi l'informatique : j'ai intégré la formation à distance Licence Professionnelle Qualifications Complémentaires en Informatique de l'Université de Strasbourg.

Au cours de cette formation j'ai pu acquérir des compétences et connaissances en systèmes et réseaux, algorithmique et programmation procédurale, programmation événementielle en C#, programmation orientée objet en Java, développement web (HTML, CSS et PHP) et conception (Merise) des bases de données. Je n'ai pas obtenu le diplôme car j'ai fait une rechute assez sévère durant le stage à effectuer. Cependant je ne le regrette pas et je vais passer sur les détails mais je tiens vous dire que je continue à faire de l'informatique, à essayer de comprendre et apprendre.

Je m'intéresse à l'algorithmique, au web, à la POO (avec conception UML) et bien sur au développement de jeux vidéo. J'ai toujours aimé un bon jeu vidéo, notamment les RPG et j'ai encore cette envie d'en créer un petit pour ma propre satisfaction.

Aussi, lorsque j'ai découvert la proposition de LittleWhite, rédacteur/modérateur, qui consiste en le soutien et l'aide à la création d'un petit jeu vidéo, dénommé Projet Incubateur JV, et pour lequel il y eut deux possibilités de création : Sinuous et Atomix, je n'ai pas hésité à postuler et me voilà après quelques échanges avec LittleWhite à rédiger ce document pour le projet Sinuous.

J'ai choisi ce jeu car il me parait plus simple qu'Atomix et car je suis un vrai débutant dans la création d'un jeu vidéo.

Pour conclure cette présentation de contexte, j'ai relevé le défi lancé par LittleWhite pour quatre raisons :

• N'ayant jamais programmé de jeu vidéo, il s'agira d'analyser et étudier la
"structure" d'un jeu vidéo.

• Étant débutant en POO et en C++, il s'agira donc d'acquérir leurs concepts et de les appliquer dans un petit projet réel.

• Il s'agira d'appliquer au mieux les principes de Responsabilité Unique et d'
Ouvert/Fermé, et connaitre les différents patrons de conception.

• Enfin, il s'agira de connaitre et d'utiliser les différentes bibliothèques graphiques telles que OpenGL et la SDL.


III. Planification du projet :

Le déroulement de ce projet suivra trois phases jalonnées par les points suivants :

a) Analyse du projet et définition du cahier des charges.
b) Conception UML des modules constituant le jeu défini précédemment.
c) Réalisation des modules et leur implémentation en C++.

Afin de concilier la durée mise à ma disposition pour réaliser ce projet avec ma vie privée et mon handicap, je propose de répartir le travail selon le planning suivant :


Janvier 2012 : Analyse du projet et définition du cahier des charges.
Février 2012 : Conception UML des modules constitutifs du jeu.
Mars 2012 : (suite) Conception UML des modules constitutifs du jeu.
Avril 2012 : Réalisation des modules et implémentation en C++.
Mai 2012 : (suite) Réalisation des modules et implémentation en C++.


Bien entendu ce planning n'est pas précis et me permettra d'avoir une vision d'ensemble de l'avancement du projet. L'idéal serait de réaliser un diagramme de Gantt des taches à réaliser lors de chacune des phases.

Cependant, après une première et rapide réflexion, il sera nécessaire de créer le moteur 2D du jeu, l'interface au dessus de SDL ou OpenGL et la mise en place des outils fonctionnels du jeu.

J'opte donc pour une méthodologie de développement par cycle en V, qui sera détaillé avec une mesure approximative de l'avancement en % du projet réalisé.


IV. Cahier des charges :

Afin de se placer dans le contexte décrit plus haut, je propose de réaliser un copie de ce jeu de manière simple mais fonctionnelle, portable, évolutive, et à l'implémentation structurée et propre : il s'agira d'une version numéro 1.0.

a) Présentation du jeu de Hakim El Hattab :


Sinuous est donc dans sa version initiale un jeu HTML5 dans lequel notre vaisseau héros (représenté par un rond bleu clair) devra voyager (à l'aide de la souris uniquement) et éviter des groupements d’astéroïdes (représentés par des ronds rouges) qui parcourent l'écran. De temps en temps, à mesure que le vaisseau voyage, des bonus apparaissent et si le joueur dirige le vaisseau sur leurs représentations (des ronds de couleurs différentes avec un lettre), ils s'activent et aident le vaisseau du joueur à contourner plus facilement les astéroïdes et voyager plus longtemps. Bien entendu, plus le vaisseau voyage longtemps autour des astéroïdes, plus le joueur gagne des points. Enfin si le vaisseau entre en collision avec un astéroïde, le joueur perd une vie.



Sur ecran_sinuous_1.png vous voyez le point bleu clair, qui est le vaisseau du joueur, passer à proximité d'une boule bleue, qui est un bonus Champ de Gravitation. Lorsque le joueur active ce bonus, son vaisseau s'entoure d'un halo bleu clair qui repousse les astéroïdes, comme vous pouvez le voir sur ecran_sinuous_2.png : les astéroïdes rouges ont été repoussés par le champ de gravitation du vaisseau ; ce dernier effet ne durant que quelques secondes...



D'autres bonus apparaissent à mesure que le joueur progresse. (cf sinuous_legend.png)



Sinuous propose 9 niveaux. Chacun accélère le mouvement des astéroïdes et rendent plus difficile le voyage mais font gagner plus de points.

Enfin, il est possible de performer, et de se classer parmi les 9 meilleurs joueurs (cf sinuous_score.png)




b) Sinuous version logicielle :

Il s'agira d'une réplique du jeu de Hakim El Hattab qui fonctionnera sous Windows7 et GNU/Linux.

Comme décrit précédemment, il devra posséder les fonctionnalités suivante :


  • débuter une partie
  • consulter les meilleurs scores
  • afficher l'aide
  • consulter l'à propos
  • diriger le vaisseau
  • mettre la partie en pause
  • activer ou désactiver le son
  • revenir au menu principal
  • enregistrer son nom et son score


A tout moment l'utilisateur pourra quitter le jeu. L'interface entre le programme et l'utilisateur sera graphique en 2D, et sera contrôlé par l’intermédiaire de la souris.

L'interface graphique se divisera en plusieurs écrans :
  • Écran de démarrage qui affichera un menu proposant à l'utilisateur.
  • Écran des scores qui affichera la liste des 9 meilleurs scores sauvegardés avec le nom des joueurs.
  • Écran d'aides qui affichera la liste de commandes du jeu, et qui sera accessible via le menu de la fenêtre du jeu.
  • Écran d'à propos qui affichera les informations relatives au logiciel, et qui sera accessible via le menu de la fenêtre du jeu.
  • Écran du jeu qui se divisera en plusieurs parties : la scène spatial, le nombres de vies et de points, ainsi que la durée de jeu.

La souris permettra à l'utilisateur de contrôler le jeu. Pendant une partie, il pourra diriger le vaisseau, mettre en pause, quitter.
La souris permettra à l'utilisateur de naviguer dans le menu de l'écran de démarrage, ainsi que de passer de cet écran aux écrans de jeu, de scores, d'aide et d'à propos.


V. Choix technologiques :

Pour réaliser ce projet, les technologies utilisées seront le langage objet C++ et la
bibliothèque SDL.
Les images utilisées seront créées avec The Gimp.
La modélisation UML sera réalisée avec BOUML.
Le développement sera réalisé en environnement Windows avec Code::Blocks et le projet sera déployé sur les plateformes Windows et GNU/Linux.
Images attachées
Type de fichier : png ecran_sinuous_1.png (15,4 Ko, 133 affichages)
Type de fichier : png ecran_sinuous_2.png (11,5 Ko, 125 affichages)
Type de fichier : png sinuous_legend.png (5,0 Ko, 123 affichages)
Type de fichier : png sinuous_scores.png (16,0 Ko, 122 affichages)
frenchem67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h40.


 
 
 
 
Partenaires

Hébergement Web