Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Unity
  3. Introduction au multijoueur
Extrait - Unity De la création à la publication d'un jeu vidéo en 2D
Extraits du livre
Unity De la création à la publication d'un jeu vidéo en 2D Revenir à la page d'achat du livre

Introduction au multijoueur

Historique du multijoueur

1. Le multijoueur dans les jeux vidéo

Le jeu multijoueur est un élément clé pour la popularité d’un jeu. Le fait de partager l’expérience d’un jeu avec une ou plusieurs personnes la rend encore plus appréciable.

Le jeu multijoueur peut être vécu de plusieurs manières. D’abord, avec les jeux sur consoles et arcades où deux joueurs s’affrontaient sur le même écran dans des jeux de combats tels que Street Fighter ou Mortal Kombat. Les joueurs pouvaient aussi jouer en coopération comme avec les beat ’em up (« frappez-les » en français) aussi appelé beat them all (« frappez-les tous » en français) où il faut progresser dans les niveaux et battre tous les ennemis de chaque zone d’un niveau pour progresser jusqu’au boss. Les jeux comme Street Of Rage, Double Dragon ou Golden Axe ont popularisé ce genre dans les années 1980-1990. Ce type de jeu étant uniquement sur la même console et le même jeu, il ne nécessite que la détection d’un deuxième contrôleur et il suffit d’adapter le comportement et la difficulté du jeu en fonction du nombre de joueurs, ce qui n’est pas aussi complexe que les jeux multijoueurs en ligne.

Là encore, cette catégorie...

Fondamentaux du jeu en réseau

Pour créer un jeu multijoueur, il faut d’abord comprendre le principe de base qui permet à plusieurs joueurs de jouer ensemble.

Le principe de base d’un jeu multijoueur est une communication client/serveur où le client est un joueur et le serveur une machine qui va permettre aux différents joueurs qui s’y connectent de pouvoir communiquer entre eux. Le client (le joueur) possède le jeu localement et envoie des requêtes au serveur pour envoyer et demander des données. Le serveur est un ordinateur distant ou un serveur dédié qui reçoit les demandes des clients, les traite et envoie les réponses appropriées.

Dans un cas concret au jeu vidéo, pour pouvoir voir et interagir avec d’autres joueurs, ces derniers doivent passer par un serveur. Ce serveur va permettre de synchroniser l’état d’un joueur chez les autres, notamment en gérant la position des joueurs (exemple : leurs déplacements), les actions effectuées (exemple : un saut, une attaque), les événements du monde du jeu (exemple : la mort d’un ennemi ou d’un des joueurs).

images/08EI01.png

Cette communication client/serveur est faite grâce à des protocoles dédiés à ce type de communication tels que TCP/IP (Transport Control Protocol/Internet Protocol), UDP (User Datagram...

Netcode for Objects

1. Installation

Pour pouvoir commencer à intégrer les mécaniques d’un jeu multijoueur, il faut tout d’abord installer via le Package Manager le plug-in Netcode for GameObjects

images/08EI02.PNG

Une fois ce package installé, de nouveaux objets seront disponibles dans le projet qui servira à mettre en place tous les éléments nécessaires au fonctionnement d’un mode multijoueur.

2. Composant du mode multijoueur

Le package Netcode for GameObjects ajoute de nouveaux composants afin de mettre en place un serveur et de configurer les clients, ou plus précisément les éléments dont les transformations et les actions seront partagées à tous les autres joueurs.

Avant de configurer ces objets, il faut ajouter à la scène le composant NetworkManager qui contiendra tous les paramètres d’une session de jeu en ligne.

images/08EI03.PNG

Le paramètre Player Prefab va contenir le Prefab qui représentera le joueur lorsqu’il se connectera au jeu. La liste de NetworkPrefab en dessous contiendra tous les Prefabs qui pourront être instanciés par le NetworkManager, par exemple des personnages avec des coloris différents pour différencier tous les joueurs. Dans la partie General, le paramètre Network Transport va contenir le GameObject contenant le composant Unity Transport. Ce composant est le lien qui va permettre...