Sommaire 1.Sommaire 2.Présentation du projet 3.Problématique et Enjeu 4.Cahier des Charges de l équipe 5.Répartition des tâches 6.Mon travail a) Le Menu b) Le Scénario c) Les Graphismes d) Les Collisions avec le décor 9. Intégration et Validation 10. Bilan et Perspectives 11. Diffusion du projet 1
Riddle Blocks Jeu sous Android Membres de l'équipe pédagogique : - Laurent Bernard - Yann Bertrand 2 Membres de l'équipe : - Clément Guihéneuf TS5 - Guillaume Renotton TS4 Lien CV : http://www.webpage.codelab.info/p/r1
Problématique et Enjeu : Créer un jeu accessible à tous Pourquoi ce projet? et utilisable sur tous les appareils Android. Passionnés par le monde ludique et novateur du jeux vidéo, nous avons choisi de réaliser un jeux vidéo simple (graphismes, interaction, scénario) et surtout accessible au plus grand nombre de par le choix de son environnement de travail (Android sur tablette électronique et smartphone). L'univers du jeux vidéo, c'est un marché mondial de 70 milliards d'euro. Les supports sont variés : consoles de salons, consoles portables, jeux offline, jeux online et jeux sur mobile en pleine croissance. En 2011, 46,2 % des foyers français sont équipés d'une console de salon et 90,5 % d'un téléphone portable. Les métiers du jeux vidéo sont divers : Les métiers artistiques : Directeur Artistique, Graphiste, Animateur, Scénariste Les métiers de la création : Directeur Créatif, Game Designer, Lead Designer, Level Designer Les métiers techniques : Programmeur, Bêta testeur, Producer Les métiers de la post-production : Localisation et traduction, Doublage, Compositeur et musicien Les métiers de la communication : Chef Produit, Attaché de Presse, Journaliste Notre jeu : Nous voulions tout d'abord créer un jeu de rôle avec un personnage qui se déplace sur l'écran tout en tuant des monstres et en passant des niveaux. Il y aurait eu un système d'équipements à placer sur le personnage, d objectifs à accomplir, et une histoire. Mais ce projet étant trop difficile à réaliser dans le temps qui nous était imparti, nous avons modifié notre choix. Nous nous sommes tournés vers un jeu plus simple à réaliser, l'idée d'un jeu de casse-tête (labyrinthe) nous est venue à l'esprit. Ce projet étant celui que nous vous présenterons : Riddle Blocks. 3 Solutions existantes : Sur Android il existe une grande quantité de jeu, que ce soit des jeux de rôle ou des casse-tête. Après plusieurs recherches comparatives des différentes solutions existantes (exemples de jeu sur le site Processing.org), nous avons forgé notre propre image de ce projet.
Cahier des charges de l'équipe : Paramètres Choix EDI (Environnement de développement intégré) Processing Compatibilité Appareils Android Type de jeu Casse-tête (Labyrinthe) Difficulté Facile Commandes Ecran Tactile Environnement de travail : Travail sur Processing pour créer une application Android. Moyens mis en œuvres : Travail de groupe en classe. Travail réparti en tâches et fait chacun de notre côté. Mise en commun lors des cours et grâce à etherpad. Idées : Concepts existants et imagination. 4
Répartition des tâches : Tâches Planning (10 séances) Noms Créer les cases du Menu Détecter l appui sur les touches Coder l'action des touches Gestion du bouton Menu et des touches directionnelles 1 séance Clément Guihéneuf 1 séance Guillaume Renotton 1 séance Guillaume Renotton 2 séances Guillaume Renotton Graphismes du jeu 3 séances Clément Guihéneuf Mouvements du personnage 2 séances Guillaume Renotton Collisions 1 séance Clément Guihéneuf Scénario du jeu 1 séance Clément Guihéneuf Le travail en collaboration a été effectué grâce à la plateforme github, en communication téléphonique et avec utilisation d'etherpad. 5 Index: -github : plateforme de déposition de fichier. -etherpad : plateforme de travail en direct.
Mon Travail Le Menu : Durant ce projet pour créer un jeu sous Android, nous sommes partis de la base d'un jeu, le menu. Mon premier problème est alors apparu, comment faire pour que la taille et l emplacement des rectangles crées ne changent pas en fonction de l'utilisation de différents appareils? Après plusieurs essais et quelques recherches, une application de la commande «width/10» (par exemple), m'a permis de faire en sorte que la taille et l emplacement des rectangles soient proportionnels à la taille de l'écran et donc à l'appareil utilisé. Ce premier problème résolu, le menu de notre jeu a vu le jour, avec quatre «boutons», le bouton Jouer qui lance le jeu en lui-même, le bouton Cheat qui permettrait de passer directement au niveau que l on souhaite grâce à l utilisation de mots de passe fournis tout au long du jeu, le bouton Aide où l on trouve l aide nécessaire pour jouer au jeu, et enfin le bouton Quitter qui quitte l application. Je me suis occupé de créer les touches du menu tout simplement en créant des rectangles grâce à la fonction rect(width/4, height/5.5*i, width/2, height/9), j en ai crée 4 grâce à la boucle for : for (int i=1 ; i<5 ; i++). La couleur des rectangles a été définie par la fonction : fill(#bd8d46). Pour le texte présent dans les rectangles j ai utilisé les focntions : textsize(width/10) pour la taille du texte, textalign(center) pour l alignement du texte au centre et text("jouer", width/2, height/3.8) par exemple pour ce qui est écrit. 6
Le Scénario : Pour le scénario, j ai été inspiré par divers jeux auxquels j ai déjà joué, des jeux de casse-tête sur Android par exemple, et l imagination a fait le reste. Le personnage doit donc se déplacer sur l écran, trouver une clé ou un objet, afin de pouvoir sortir de l endroit où il est par une porte pour passer au niveau suivant. J ai également pensé à des cases où il faut aller avant de pouvoir prendre la clé car elles ouvrent des passages ou ferment des pièges par exemple. Ce scénario se veut vraiment très simple et accessible à tous. J ai également rajouté une musique de fond qui se lance dès l ouverture de l application, grâce à ces lignes de codes : player = new PMediaPlayer(this); //Creer un nouveau PMediaPlayer player.setmediafile("sonjeu.wav"); //Définit le fichier son player.start(); //Commence à lire le fichier son player.setlooping(true); //La musique tourne en boucle player.setvolume(0.5,0.5); //Définit le volume du son Les Graphismes : 7 En ce qui concerne les graphismes, j ai tout simplement cherché des images sur internet, et j ai choisis des images d un jeu vidéo que je connais bien, puis j ai modifié ses images afin de répondre aux besoins de notre projet. J ai également crée des images moi-même pixel par pixel, n étant pas graphiste et n ayant aucune expérience en la matière le résultat n est pas digne de graphismes de grands jeux vidéo mais ces images sont quand même utilisées dans notre jeu.
Quelques exemples d images utilisées dans le jeu : J ai également mis une image pour l icône de l application grâce à la ligne de code : frame.seticonimage( gettoolkit().getimage("imagebonhommemap2.png") ) Les Collisions avec le décor : 8 Ce que j appelle les collisions du personnage avec le décor dans un jeu, c est le fait que le personnage ne puisse pas traverser les murs, que si le joueur veut se déplacer sur la gauche et qu il y a un mur, ce déplacement soit impossible et que le personnage ne bouge pas. Je n ai pas eu de problème particulier lors de la réalisation de cette tâche, ayant déjà programmé un jeu avec des collisions sur TI-82 (Calculatrice). J ai donc fais en sorte que lorsque la case où souhaite aller le personnage est un mur ou une case inaccessible, rien ne se passe.
Intégration et Validation : Mon travail et celui de mon partenaire sont complémentaires l'un de l'autre. Dans un jeu tout compte, et le déplacement ne va pas sans les collisions, comme le fait de faire apparaître des touches ne va pas sans le fait qu elles réalisent une action si on les presse. Chacun de nous a fait son travail en fonction de l'autre avec une très bonne entente et chacune de mes parties s'intègrent parfaitement avec les parties de mon équipier. On voit très bien sur cette image le but du jeu, la facilité d'utilisation et les graphismes : 9
Bilan et Perspective : Développements possibles : L'un des premiers développements et certainement le plus important serait de coder le bouton «cheat» afin de pouvoir accéder au niveau voulu. Un autre développement serait la création d'une plus grande quantité de niveaux avec des niveaux de difficultés croissants. La mise à disposition du projet sur le playstore d'android pourrait être un objectif envisageable. La création de graphismes plus attractifs est aussi un développement retenu. Qu'est ce que le projet m'a apporté? La réalisation de ce projet m a permis d apprendre à programmer sur Android, qui est un outil moderne et qui a de l avenir selon moi. Durant ce projet le travail d équipe a été fondamental, ce qui m a amené à faire confiance à mon partenaire, à accepté ses idées plutôt que de rester sur mes positions. Ce projet ne fait que confirmer mon choix d orientation, car je vais être amené à travailler en équipe sur des projets informatiques pendant plusieurs années et cela m a offert un aperçu de ce qui m attend. Ce projet m a donc été très profitable. 10
Diffusion du projet : Lien Github : https://github.com/codelab-info/guiren Lien Diaporama : file:///f:/diaporama%20isn%20clement/index.html#8 Licence de diffusion Creative Commons : Attribution Vous devez attribuer l œuvre de la manière indiquée par l auteur de l œuvre ou le titulaire des droits (mais pas d une manière qui suggérerait qu ils vous approuvent, vous ou votre utilisation de l œuvre). Pas d Utilisation Commerciale Vous n avez pas le droit d utiliser cette œuvre à des fins commerciales. Pas d œuvres dérivées Vous n avez pas le droit de modifier, de transformer ou d adapter cette œuvre. 11