- En fin de projet vous devrez réaliser une vidéo de 5min de démonstration du jeu. La démo doit démontrer que vous avez respecté les contraintes du projet.
- Les tuteurs testeront le jeu disponible sur le dépôt git.
- Chaque groupe recevra une note en fonction de la qualité de sa réalisation
- Chaque membre du groupe recevra un % de la note du groupe en fonction de son investissement et de la qualité du code qu’il a produit.
- reçoit les évenements clavier et souris,
- déclenche la mise à jour du Model et de la View
- met à jour les entités en demandant à chacune d’effectuer un pas de leur automate
- effectue les actions déclenchées par les automates (mise à jour des positions, calcul des points de vie, création/suppression d’entités,…)
- effectue l’affichage graphique des actions via les avatars associées aux entités.
- Le joueur interagit avec le Controller
- Les entités évoluent dans le Model
- Les avatars sont leur version graphique et s’affichent dans la View
- Le langage GAL de programmation des automates est fourni par les enseignants, ainsi qu’un parseur de fichiers .gal.
- TOUTES les entités du jeu ont un comportement défini par un automate
- le contrôle d’une entité au clavier/souris/joystick est réalisé via des automates player1.gal. player2.gal (en changeant cet automate on peut jeter un sort au joueur en inversant le sens de ses commandes).
- vous devez attribuer un comportement aux obstacles, aux objet, … : par défaut on leur attribue l’automate “ne rien faire” mais ils ont un automate qu’on pourra changer au cours du jeu pour ; par exemple, pour créer un effet de murs qui se rapprochent.
Le langage GAL proposent un certains nombre d’actions et de conditions qui permettent de définir des automates. Le noms des actions et des conditions sont fixées mais leur interprétation est libre.
- Démo: cela vous permettra, en attribuant un automate qui fait des `Move` à un élément du décor, de voir celui-ci se déplacer et ainsi de démontrer que l’entité est effectivement controlée par un automate.
- Si vous avez besoin d’actions non prévues par le langage GAL, vous utiliserez Pop/Wizz en leur donnant l’interprétaton qui vous convient.
L’interprétation est relativement libre mais doit rester en lien avec le nom de l’action
L’action Hit signifie bien sûr “frapper” mais ne précise pas quel type de frappe. Un même automate effectuant l’action Hit aura des effets différents dans chacun des jeux selon l’interprétation :
- comme un coup sur la case voisine
- un laser longue portée
- une poussée pour envoyer l’autre dans le décor (Pengo)
- une déplacement en roulade pour bousculer l’adversaire (Sonic)
L’interprétation est libre mais doit aboutir à la création d’entité : par duplication immédiate, par dépôt d’un oeuf, …
L’objectif pédagogique est de vous faire coder une gestion dynamique du nombre d’entités actives.
- action MOVE
- état () = mort de l’entité
- action EGG = reproduction
Votre jeu doit permettre d’attribuer à des entités un comportement décrit par un fichier `.gal`
- soit sous forme d’un menu
- soit sous forme d’un fichier de configuration
Cela facilitera votre démo en vous permettant de modifier facilement les automates qui contrôlent les entités.
— AUTHOR: Michaël PÉRIN, Polytech’Grenoble, Univ. Grenoble Alpes