Mineure DS4H Jeux Multijoueurs 2020-2021

De $1

Version de 05:46, 20 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Introduction

Dans ce cours nous verrons comment programmer des jeux "d'action" multijoueurs. On commencera en 2D par une approche simple, naïve, pour aller vers des solutions sophistiquées et adaptatives. Nous verrons des exemples simples en 2D puis passerons ensuite à la 3D. De simples algorithmes de "comportements intelligents" seront aussi implémentés pour les entités contrôlées par l'ordinateur (ex: suivre un chemin, suivre le joueur, attaquer, fuir, atteindre un but, marcher en formation etc.)

Séance 1 : rappels sur les bases de la programmation d'un jeu, utilisation naive de websockets pour la synchronisation multi-joueurs

  • Support de cours (slides) mais assortis de live coding en direct, sur la programmation d'un petit moteur de jeu 2D à l'aide du canvas HTML5.
  • Zip d'un premier squelette de jeu mono joueur. 
     
  • Support de cours (slides) sur l'implémentation naïve d'un squelette de jeu à l'aide de NodeJS et de la librairie socket.io (websockets). Dans cette version le serveur a un rôle "passif" il se contente de gérer l'état général du jeu pour accueillir les nouveaux joueurs et joue principalement le rôle d'entremetteur/relayeur d'événements (un jour a bougé, un jour est arrivé, un joueur est parti). 

TP1 : implémentation d'un squelette très simple et naïve de jeu multi-joueurs

Dans ce premier TP vous allez faire fonctionner un premier squelette de jeu très simple à l'aide d'un client basé sur le canvas HTML5. Vous utiliserez une animation à 60 images par secondes pour déplacer un joueur à l'écran à l'aide du clavier ou de la souris.

Dans un second temps vous installerez un serveur NodeJS capable de servir votre jeu (en renvoyant par exemple sa page HTML). 

Dans un troisième temps vous transformerez votre serveur pour qu'il devienne "un serveur de websockets" et permette par exemple aux différents joueurs de "chatter". Enfin, en vous bansant sur le principe du chat, vous échangerez des messages spéciaux contenant la position de chaque jouer. On Modifiera aussi les clients pour qu'ils envoient leur position chaque fois qu'ils bougent, et qu'ils dessinent l'ensemble des joueurs présents dans la partie chaque fois que le serveur renvoie des positions modifiées.

  • SUJET DETAILLE DE CE TP ICI !