:: Enseignements :: ESIPE :: E4INFO :: 2012-2013 :: Java Avancé ::
[LOGO]

Escape-IR


Escape-IR est un jeu de shoot'em up dont le scénario, c'est la coutume, tient sur un timbre poste.
La principale originalité de ce jeu est que le déplacement du vaisseau se fait en utilisant un principe de 'gesture' que l'on exécute à la souris.

Scénario

Envoyé par le commandant Sirud pour une mission suicide sur une planète alien, notre valeureux héros est capturé par le chef des aliens, le comte Xaroff mais s'échappe en utilisant un vaisseau de technologie alien dont le principe de fonctionnement exact reste un mystère pour notre héros.

Le jeu

Le but est donc de créer un jeu avec 3 missions (jupiter, moon et earth) aux graphismes différents (que vous dessinerez vous-mêmes pour éviter les problèmes de copyrigth). Chaque mission sera d'une difficulté supérieure à la précédente (on vous demandera lors de la soutenance de nous faire une démonstration :) qui devra durée entre 1 minute et 3 minutes de jeu. A la fin de chaque mission, un Boss de fin devra attendre notre valeureux héros. Chaque Boss devra avoir sa propre technique d'attaque.
En plus du héros et des Boss de fin de mission, le jeu devra aussi faire figurer trois autres types de vaisseaux aux comportements différents. Enfin, le vaisseau du héros devra posséder trois types d'armes que le joueur pourra sélectionner à l'envie.

Le système de déplacement

Comme indiqué précédemment, le vaisseau commandé par le héros utilise un principe de gesture pour indiquer la façon dont le vaisseau va se comporter. Une gesture est un mouvement exécuter à la souris en maintenant le doigt appuyer sur le bouton de la souris.
Pour aider l'utilisateur lors d'une gesture, la forme dessinée par l'utilisateur sera aussi dessinée sur l'écran. A la fin de la gesture, si celle-ci est reconnue par le programme celle-ci s'affichera en vert ou en rouge dans le cas contraire.
L'utilisateur peut dessiner une gesture sur tout l'écran pas uniquement à coté du vaisseau du héro.
Voici la liste des gestures que vous devez implanter
  • Left drift, un trait de bas vers le haut en diagonal vers la gauche permet de faire déraper le vaisseau ver la gauche, le vaisseau avancera donc légèrement vers l'avant et se décalera sur la gauche. La longeur du trait indique pendant combien de temps le vaisseau devra déraper.
  • Right drift, même chose que le Left drift mais vers la droite.
  • Left looping, un trait décrivant un cercle dans le sens inverse des aiguilles d'une montre fait faire un looping au vaisseau. Comme cette maneuvre est assez efficace pour éviter les missiles et autres vaisseaux ennemis, le trait du cercle devra se refermer à peu près correctement et avoir la bonne taille (pas trop gros et pas trop petit).
  • Right looping, le même à droite.
  • Backoff, un trait vertical de haut vers le bas permet de faire reculer le vaisseau.
En plus de ces gestures obligatoires, vous devrez aussi inventer 3 gestures qui vous seront propres.

Le système d'armement

Lorsqu'un vaisseau ennemi est détruit, celui-ci peut faire apparaitre un bonus qui permet de recharger les armes disponibles, chaque bonus recharge un seul type d'arme et le nombre de recharges est affiché sur le bonus.
Les armes disponibles sont sélectionnables par l'utilisateur en haut de l'écran de jeu. Une arme est toujours sélectionnée sauf si le vaisseau a épuisé son stock d'armes.
Le vaisseau emprunté par le héro étant un vaisseau alien, les mêmes armes sont aussi disponibles pour les vaisseaux ennemis.
Toutes les armes marchent en deux temps. Dans un premier temps, le missile (ou autre) se forme devant le vaisseau lorsque l'utilisateur clique sur celui-ci puis dans un second temps, l'arme est propulsée vers les vaisseaux ennemis en utilisant une gesture correspondant à un trait indiquant la direction dans laquelle le missile (ou autre) doit se déplacer.
Le clique sur le vaisseau peut servir au début de la gesture si l'utilisateur maintient son doigt appuyé sur la souris.
En fonction des armes, le missile (ou autre) peut se former instantanément, ou alors prend un peu de temps selon que l'arme est plus puissante.
Voici la liste des armes que vous devez implanter
  • Missile: un missile qui apparait instantanément devant le vaisseau prêt à être propulsé.
  • FireBall: une boule de feu grossie devant le vaisseau que l'utilisateur peut lancer.
  • Shiboleet: une bulle qui se forme autour du vaisseau et grossit; lorsque l'utilisateur la lance, celle-ci se sépare en plusieurs parties indépendantes les unes des autres.
En plus de ces armes obligatoires, vous devrez aussi inventer au moins une arme supplémentaire plus puissante que celles déjà proposées.

L'écran de jeu

Le jeu est un shoot'em up avec un scrolling vertical (je ne suis pas contre un petit scrolling utilisant plusieurs plans (layers)) et le vaisseau du joueur se situe toujours dans le tiers inférieur de l'écran. Le haut de l'écran (oui, à l'opposé du vaisseau) doit afficher le score ainsi que les armes disponibles sélectionnables par le joueur.

Le programme doit être écrit en utilisant deux bibliothèques externes.
  • La bibliothèque Zen 2, qui est une bibliothèque d'affichage graphique créée uniquement pour le projet. zen2.zip
    Les sources vous sont données uniquement dans un but pédagogique, votre projet doit utiliser le jar zen2.jar et non pas les sources.
  • La bibliothèque JBox2D, qui est le moteur de rendu physique, c'est en fait un port d'une librairie C++ en Java. Pour éviter les problèmes de compatibilité, vous devrez utiliser la version disponible ici. jbox2d-2.1.2.2.zip

Conditions de rendu

Le projet est à rendre par mail aux chargés de TD et à l'enseignant de cours, au plus tard le 17 novembre à 23h59. Le format de rendu est une archive au format zip (tout rar, tar.gz, 7z et autre ne sera pas ouvert) contenant:

Cette archive Zip (attention à l'encodage) aura comme nom Nom1Nom2_EscapeIR.zip, où les noms sont ceux des membres du binôme par ordre alphabétique. L'extraction de cette archive devra créer un répertoire de nom Nom1Nom2_EscapeIR pour contenir tous les éléments demandés ci-dessus. Elle sera envoyée par mail aux enseignants de la matière, avec dans le corps du message les noms et prénoms de chacun des membres du binôme.

Notation