Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DVP1_Sinuous Discussion :

Projet : Sinuous Game


Sujet :

DVP1_Sinuous

  1. #1
    Membre du Club Avatar de CompuTux
    Homme Profil pro
    Développeur Python et Django
    Inscrit en
    juillet 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Python et Django
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2004
    Messages : 82
    Points : 68
    Points
    68
    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 Images attachées     

Discussions similaires

  1. Réponses: 11
    Dernier message: 29/01/2012, 00h38
  2. [Recrutement] Projet du Jeu « Game of Warrior »
    Par Pixelshop dans le forum Projets
    Réponses: 5
    Dernier message: 04/06/2010, 16h55
  3. Game Business Summit - La rencontre entre porteurs de projets et investisseurs
    Par loka dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 03/09/2009, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo