Sujet du projet Nice Evry: jeu vidéo multi-participant

De $1

Version de 10:25, 20 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Introduction 

Vous devrez réaliser un jeu multi-participants en suivant les bonnes pratiques présentées dans le MOOC HTML5 partie 2, à savoir:

  • Modèle objet pour le game framework,
  • Animation basée sur le temps,
  • Gestion des touches/souris/gamepad/touch à l'aide d'une variable d'état,
  • Utilisation de requestAnimationFrame pour l'animation (sauf cas exceptionnel, pas de setInterval ou de setTimeout)
  • Vous commencerez (ou pourrez rester) sur un jeu "géométrique" pour ne pas perdre trop de temps avec les graphismes.

Le jeu est très simple:

  • Les joueurs se connectent sur le site du jeu, ils voient la liste des parties en cours et le nombre de places restantes. Ils peuvent rejoindre une partie non pleine et non en cours à tout instant.
  • Un joueur peut à tout instant créer une partie.
  • Une partie se joue jusqu'à n joueurs simultanés (on commencera par 4 puis, 8 etc... on verra jusq'où le sevreur tient la charge)
  • Une fois dans la partie, soit on attend que le nombre maximum de joueurs soit atteint, soir un chronomètre démarre la partie quoiqu'il arrive au bout de 45 secondes, soit le créateur de la partie peut cliquer un bouton pour démarrer.
  • Quand la partie démarre les joueurs ont un temps limité pour atteindre la sortie. Si le temps est écoulé ou si tout le monde a atteint la sortie on passe au niveau suivant.
  • Les niveaux comportent une ou plusieurs sorties, qui peuvent être mobiles ou immobiles, de taille variable (éventuellement animée), les obstacles peuvent être fixes ou animés.
  • En cas de collision on est ralenti, replacé au début, on est repoussé, tout ceci sera à voir....

Points relatifs au multi joueur:

  • Les joueurs non connectés seront remplacés par des ghosts si il y en a,
  • Les scores seront centralisés (mongoDB à la rescousse)
  • Vous commencerez de manière incrémentale par un jeu se jouant sur une seule machine avec deux joueurs et deux groupes de touches, 
  • Puis vous ferez un jeu à trois, ou à 4, toujours sur la même machine, (vous devrez avoir un tableau de joueurs)
  • Puis vous ajouterez un chat au jeu et vous devrez pouvoir jouer et chatter
  • Puis vous ajouterez la possibilité de jouer à plusieurs en échangeant les positions et scores et états via le chat (Nice a déjà fait ça en TP)

Une fois que vous avez un proto qui marche: on reprends tout à zéro, calmement:

  • On passe en gestion de plusieurs parties simulténées (chat multi room)
  • Modèle objet pour les niveaux, 
  • Code pour la persistence dans MongoDB (scores)
  • Outil de création de niveau,
  • sons, musique, 

Exemple de jeu qui marche et que vous pouvez tester

Le tester depuis chez vous, en tout cas pas depuis le wifi de la fac qui ne laisse pas passer le port 8000: http://jeuweb-amsel.rhcloud.com:8000/

Connectez vous à plusieus sur cet URL, ça se joue avec les touches zqsd. Le jeu correspond à ce que j'attends, mais il a bcp de défauts qu'il faudra corriger (pas d'animation basée sur le temps, de ghosts, de persistence, d'éditeur de niveau, etc...)

jeu1.jpg

jeu2.jpg

jeu3.jpg

jeu4.jpg