:: Enseignements :: Licence :: L3 :: 2023-2024 :: Programmation Objet avec Java ::
[LOGO]

The Big Adventure


Objectif général

Le but de ce projet de jouer à un jeu d'aventure et/ou de fabriquer les mondes du jeu d'aventure.
Il s'agit d'un meta-jeu, où l'on peut prendre autant de plaisir à jouer que de plaisir à créer les mondes du jeu. En terme d'expérience de jeu, on veut se rapprocher d'un mode de jeu à la zelda moderne (Breath of the Wild) pas dans son histoire/scénario, mais dans la capacité à créer sa propre histoire.

Condition de rendu

Ce projet est à faire par binôme (2 personnes, ni 1 ni 3) et doit être déposé au plus tard le 19 janvier 2024 à 23h59 sur e-learning.

Une soutenance « bêta » aura lieu la semaine du 11 décembre (la date et l'horaire vous seront précisés). Votre travail ne sera pas noté, mais vous devrez tenir compte des remarques pour améliorer votre projet jusqu'au rendu final.

Cahier des charges

Un niveau du jeu consiste en une carte (map) définie sous forme de grille (grid) contenant des obstacles et éléments décoratifs fixes ainsi que des éléments amis/ennemies, des éléments d'inventaires (dont font parties les éléments nutritifs).
  1. Les éléments décoratifs
    Les ALGAE, CLOUD, FLOWER, FOLIAGE, GRASS, LADDER, LILY, PLANK, REED, ROAD, SPROUT, TILE, TRACK, VINE sont les élements décoratifs de la carte sur lesquels les personnages peuvent marcher.

  2. Les éléments obstacles
    Les BED, BOG, BOMB, BRICK, CHAIR, CLIFF, DOOR, FENCE, FORT, GATE, HEDGE, HOUSE, HUSK, HUSKS, LOCK, MONITOR, PIANO, PILLAR, PIPE, ROCK, RUBBLE, SHELL, SIGN, SPIKE, STATUE, STUMP, TABLE, TOWER, TREE, TREES, WALL sont les élements qui peuvent servir d'obstacle pour éviter qu'un joueur accède à une partie de la carte.

  3. Les éléments intermittents
    Les BUBBLE ou DUST apparaissent lorsque l'on rentre dans une zone déterminée de la carte pour attirer le regard du joueur sur un endroit précis de la carte.

  4. Les éléments amis ou ennemis
    Les BABA, BADBAD, BAT, BEE, BIRD, BUG, BUNNY, CAT, CRAB, DOG, FISH, FOFO, FROG, GHOST, IT, JELLY, JIJI, KEKE, LIZARD, ME, MONSTER, ROBOT, SNAIL, SKULL, TEETH, TURTLE, WORM sont soit des amis, soit des ennemis. Ils peuvent parler avec un joueur, échanger des éléments de l'inventaire, voler des éléments de l'inventaire, faire des dégats au joueur et se transformer en fantôme.

  5. Les éléments d'inventaire
    Les BOOK, BOLT, BOX, CASH, CLOCK, COG, CRYSTAL, CUP, DRUM, FLAG, GEM, GUITAR, HIHAT, KEY, LAMP, LEAF, MIRROR, MOON, ORB, PANTS, PAPER, PLANET, RING, ROSE, SAX, SCISSORS, SEED, SHIRT, SHOVEL, STAR, STICK, SUN, SWORD, TRUMPET, VASE sont les éléments de l'inventaire. Ils peuvent être échangés avec les amis.

  6. Les éléments nutritifs
    Les BANANA, BOBA, BOTTLE, BURGER, CAKE, CHEESE, DONUT, DRINK, EGG, FRUIT, FUNGUS, FUNGI, LOVE, PIZZA, POTATO, PUMPKIN, TURNIP peuvent être mangés pour regagner de la santé. De plus les, BUNNY, CRAB, FISH, FROG et SNAIL peuvent être mangés s'ils sont cuits.

  7. Personnages
    Ce sont les personnages que le joueur peut choisir en début de jeu : BABA, BADBAD, FOFO, IT. Il n'y a pas de différence entre eux, ce sont juste différents "skins".

  8. Les éléments de transports
    PLANE/ROCKET/UFO (CLOUD), CAR (ROAD), TRAIN + CART (TRACK), BOAT (WATER) sont des éléments sur lequel le joueur peut monter pour être transporté d'un endroit de la carte à l'autre. Les PLANES/ROCKET/UFO, CAR et TRAIN se déplacent en suivant respectivement les CLOUD, ROAD et TRACK. Si le joueur se place devant un élément de transport, il se fait écraser. Si un joueur attend en haut ou en bas si la pîste est horizontale (et à gauche ou à droite si la piste est verticale), le moyen de transport s'arrête devant le joueur et le joueur peut monter dessus (dans le cas du train, on ne peut monter que sur les wagons). Un PLANE/ROCKET/UFO se déplace 2 fois plus vite qu'un joueur, un TRAIN se déplace 1.75 plus vite qu'un joueur et un CAR se déplace 1.5 plus vite qu'un joueur, un BOAT se déplace aussi vite qu'un joueur. Pour sortir du PLANE/ROCKET/UFO, TRAIN, CAR, BOAT le joueur utilise les flèches de déplacement. Par défaut, le PLANE/ROCKET/UFO, TRAIN, CAR suit sa piste, arrivé en bout de piste (si la piste n'est pas circulaire), il fait demi-tour (à vous de gérer correctement le demi-tour du TRAIN). Un BOAT reste à son emplacement initial et c'est le joueur qui le déplace.

  9. Les éléments d'armes
    Il existe plusieurs armes. Une fois récupérés soit en passant dessus, soit en l'échangeant, une arme permet de causer des dégats sur les ennemies (elle ne fait rien sur les amis, c'est un jeu pour enfant !).
    • STICK, SHOVEL, SWORD: inflige des dégats aux ennemis qui se trouvent devant le joueur (en fonction de la direction du personnage). Le STICK et SWORD peut être enflammé s'il touche le feu (FIRE, LAVA). Dans ce cas, il reste enflammé tant qu'il ne touche pas de l'eau (WATER). Un STICK/SWORD enflammé permet de faire plus de dégat, de faire fondre la glace (ICE) et de cuire les éléments que l'on peut cuire (pour les manger). Une épée (SWORD) permet aussi de couper du bois (si elle n'est pas enflammé), en transformant les TREE/TREES en BOX. Une pelle (SHOVEL) peut aussi planter une graine (SEED) dans l'herbe (GRASS).
    • BOLT(arme): lancer des éclairs (qui se propage en fonction de la direction du personnage), tues les ennemis, met le feu aux arbres

  10. Les élements pour passer d'une map à l'autre
    Les DOOR, GATE, HOUSE, TOWER si elles sont ouvertes (avec des KEY, LEVER) représentent des passages pour aller d'une map à une autre. Par exemple, pour qu'un joueur puisse aller dans une maison pour rencontrer un ami.

  11. Les éléments de biome
    Les éléments ICE, LAVA, WATER sont des éléments qui sont hostiles au joueur, celui-ci ne peut pas se déplacer dessus. Mais ICE peut être fondu par le feu, et WATER peut être traversé en utilisant soit une BOX, soit un BOAT. Une BOX dérive en fonction du courant tandis qu'un BOAT est contrôlé par le joueur (s'il est dessus).

  12. Les éléments spéciaux
    • BOOK, PAPER: explique le lore/folklore de votre jeu
    • BOX: flotte sur l'eau, est créé à partir d'un arbre, bouge avec le courant
    • BUCKET: prendre de l'eau, éteindre le feu, pour faire pousser un SPROUT
    • FIRE: brule les éléments, se propage doucement, cuit les BUNNY|CRAB|FISH|FROG|SNAIL
    • GHOST: passe à travers les murs (BED, BRICK, DOOR, FENCE, GATE, PILLAR, PIPE, STATUE, TABLE, WALL)
    • KEY, LEVER: ouvre les portes, maisons, gates, locks, tours
    • MIRROR: transforme les personnages fantômes en vrai personnage
    • SEED: planter avec une SHOVEL, se transform en SPROUT
    • SPROUT: se transform en arbre (TREE) si arroser avec un BUCKET plein d'eau.
    • WIND: pousse le personnage dans la direction du vent (avec la propriété flow)

Les cartes

Les cartes sont des grilles sur lesquelles le joueur peut se déplacer. Une carte est définie pas un fichier ".map" qui contient une description textuelle d'une carte. Le format d'une carte contient plusieurs sections décrivant, la grille de la carte,

L'esprit du jeu

On souhaite créer un jeu où

Les différentes phases de développement

Le projet a quatre phases de développement : phase0, phase1, phase2 et phase3.
  1. phase0: c'est la phase que vous devez finir pour ne pas avoir 0. Le jeu doit être capable d'afficher une map avec des éléments décoratifs, des obstacles, des ennemis, une épée (donc pas de vrai inventaire). L'affichage n'a pas besoin de scroller avec le joueur. Le système de point de vie doit fonctionner (sans la notion de nourriture). Les ennemis ont juste le comportement stroll.
  2. phase1: on doit avoir des amis avec qui on peut parler et échanger des objets, donc l'inventaire doit fonctionner. La notion de portes et de clés doit fonctionner. Le système de point de vie doit ajouter la notion de nourriture. La carte doit être centrée sur le joueur et scroller lorsque l'on se déplace (sauf dans les coins). Les armes STICK et SWORD doivent fonctionner.
  3. phase2: on doit avoir le feu qui se propage, les trains/voitures/avions/bateau/boite qui fonctionnent, le courant de l'eau qui marche. On doit de plus être capable de planter des choses et de les faire grandir. Les armes SHOVEL, BOLT et stick/sword enflammés doivent fonctionner.
  4. phase3: les mécaniques restantes où celles que vous voulez ajouter si jamais la mécanique a été validé par un enseignant sur le forum discord du projet. Toute amélioration non validée va être considérée comme un non-respect du cahier des charges et le projet sera noté zéro.
Attention, en termes de notation si tous les mécanismes d'une phase ne sont pas implantés, nous ne tiendrons pas compte des mécanismes des phases supérieurs. Vous devez implanter TOUS les mécanismes d'une phase avant de passer à la suivante. Et oui, cela veut dire que vous aurez zéro par exemple, si les portes marchent avec les clés, mais on peut passer à travers les obstacles.

Le programme

Références

Ant Manual pour le fichier build.xml.
How to create an executable jar ?.
JavaDoc.
Les entrées/sorties sur fichier.

Conditions de rendu

Le projet est à rendre au plus tard le 19 janvier 2024. 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 Nom1_Nom2_TheBigAdventure.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 Nom1_Nom2_TheBigAdventure contenant tous les éléments demandés ci-dessus.

Notation