Un simple écran d'acceuil qui affiche le nom du jeu, le nom du développeur, les aliens et leurs points correspondants et attend un événement pour commencer une partie, sélection d'un menu (les options ne sont pas encore implémentés).
Le jeu se présente comme ceci :
Le joueur peut tirer des missiles en appuyant sur ESPACE.
Le joueur peut tirer ces missiles sur des aliens afin de les détruire, mais les aliens peuvent contre-attaquer.
Pour ce protéger le joueur dispose d'abris qui peuvent être détruit par des tirs de missiles.
Ici un abris neuf.
Un qui est un peu amoché.
Un qui est presque détruit.
Le joueur possède 3 vies, cela est affiché en HUD en haut à droite. Il en perd un à chaque fois qu'il se fait toucher par un missile d'un alien
Pour chaque aliens tués le score augmente, le score est affiché à côté de la vie.
Lorsque le joueur n'a plus de vie ou que les aliens sont arriver en bas de l'écran c'est un Game Over. Un écran apparaît alors, le joueur a le choix de retenter sa chance ou de retourner au menu.
Le jeu tourne sur un navigateur. Il a été surtout développé pour Firefox.
La bibliothèque qu'utilise ce jeu est THREE.js afin de réaliser des rendu 3D.
Le texte dans les menus est en 3D. Les abris, la barre de limite sont de simples cubes. Ensuite les ennemis et le joueur ont été modéliser sur blender puis importé en format .obj .
(Le fichier .obj contient tout les modèles en même temps)
Le décor 3D est une skybox représentant une vue depuis l'espace près d'une planète. Cette skybox est en faite juste un simple cube placé assez loin et qui tourne autour de la scène.
A chaque fois que l'utilisateur perd ou gagne un niveau un écran le lui signale. Nous avons déjà vu le Game Over. Voici le Game Win :
Cette écran apparaît uniquement une fois que tous les aliens sont morts. On peut voire le score final de la partie et on peut passer au prochain niveau ou revenir au menu principal
Appuyer sur cette touche permet de faire apparaître une petite fenètre d'aide pour les raccourcis.
Différentes caméra ont été mis en place, elles permettent de jouer différement ou d'apprécier la skybox d'un angle différent.
Caméra classique du genre.
Idéal pour des tirs de précision
Pas pratique mais donne une vue différente de la skybox.
Donne plus de challenge, et une autre perspective de la skybox.
La collision est géré par une fonction très simple
Cette fonction regarde simplement si mesh1 et mesh2 se touchent et renvoie vrai si c'est le cas sinon elle renvoie faux.
Les dégats sur les abris sont matérialisé par de la transparence
Ensuite un bruit retentit lors des collisions (voir section Sons).
Pour tirer les aliens attendent que le dernier alien ait finit son action de tirer. Puis le programme choisit aléatoirement parmis les aliens afin de décider qui va tirer ensuite. Ce qui a pour effet d'augmenter la concentration des tirs des aliens.
Pour créer mes effets sonnores j'ai utilisé Chip Tone. Les sons sont utilisés lors des tirs, des collisions, ainsi que pour le moment où le joueur gagne ou perd.
Lors d'une nouvelle partie, cet écran s'affiche :
A partir de là, le joueur peut choisir un psudo de 3 lettres et commencer la partie.
En arrière plan un JSON de ce format : { "name": "JOA","score": 0,"level": 1} vient de se créer dans le stockage local du navigateur. Si le joueur passe le premier niveau, "level" sera égal à 2 et son score sera retenu dans le JSON.
Si par la suite le joueur revient dans le menu principal, il peut alors faire "Charger Partie" et il pourra reprendre depuis là où il s'était arrêté.
Ce projet était sans doute l'un des projets les plus interresant et cool que j'ai pu faire. Je trouve dommage que le très grand nombre de rapports, projets, examens en parallèle provenant des autres matières ne m'ont pas permit de travailler plus sur ce projet.