Projet Réseau : soutenance. - Un jeu de Bomberman en multijoueur
Transcription
Projet Réseau : soutenance. - Un jeu de Bomberman en multijoueur
Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Projet Réseau : soutenance. Un jeu de Bomberman en multijoueur : specification formelle, protocole réseau et limitations de mon implémentation. Groupe 5 : L. Besson V. Cohen-Addad L. Hosseini MPRI 1-21 ENS de Cachan 7 mars 2013 Ces slides et les sources du projet sont disponibles en lignes 1 http://perso.crans.org/besson/publis/Bomberman/. N’hésitez pas à me contacter : mailto:lilian.besson@ens- cachan.org. 1. Sous licence GPLv3. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 1/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Plan 1 2 3 4 5 Présentation Règles et protocole Précisions sur les règles du jeu Protocole Réseau Types d’échanges Messages échangés (rappel) Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Détails La carte Sémantique du serveur Sémantique du client Une IA ? Conclusion Surtout, n’hésitez pas à m’interrompre ! Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 2/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges À propos À propos des règles On ne re-détaille pas les choix de règles, qui sont précisés dans le sujet. À propos des constantes Nous avons fixé certains paramètres du jeu à des valeurs constantes : taille de la carte et nombre de joueurs (LX = LY = 11, et K = 3) ; nombre max. de PVs, de bombe posées en mêmes temps (3 et 1) ; rayon d’explosion des bombes (4) ; ordre de grandeur du nombre de boucle par seconde (10). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 3/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges À propos À propos des règles On ne re-détaille pas les choix de règles, qui sont précisés dans le sujet. À propos des constantes Nous avons fixé certains paramètres du jeu à des valeurs constantes : taille de la carte et nombre de joueurs (LX = LY = 11, et K = 3) ; nombre max. de PVs, de bombe posées en mêmes temps (3 et 1) ; rayon d’explosion des bombes (4) ; ordre de grandeur du nombre de boucle par seconde (10). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 3/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges À propos À propos des règles On ne re-détaille pas les choix de règles, qui sont précisés dans le sujet. À propos des constantes Nous avons fixé certains paramètres du jeu à des valeurs constantes : taille de la carte et nombre de joueurs (LX = LY = 11, et K = 3) ; nombre max. de PVs, de bombe posées en mêmes temps (3 et 1) ; rayon d’explosion des bombes (4) ; ordre de grandeur du nombre de boucle par seconde (10). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 3/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges À propos À propos des règles On ne re-détaille pas les choix de règles, qui sont précisés dans le sujet. À propos des constantes Nous avons fixé certains paramètres du jeu à des valeurs constantes : taille de la carte et nombre de joueurs (LX = LY = 11, et K = 3) ; nombre max. de PVs, de bombe posées en mêmes temps (3 et 1) ; rayon d’explosion des bombes (4) ; ordre de grandeur du nombre de boucle par seconde (10). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 3/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges À propos À propos des règles On ne re-détaille pas les choix de règles, qui sont précisés dans le sujet. À propos des constantes Nous avons fixé certains paramètres du jeu à des valeurs constantes : taille de la carte et nombre de joueurs (LX = LY = 11, et K = 3) ; nombre max. de PVs, de bombe posées en mêmes temps (3 et 1) ; rayon d’explosion des bombes (4) ; ordre de grandeur du nombre de boucle par seconde (10). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 3/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges À propos À propos des règles On ne re-détaille pas les choix de règles, qui sont précisés dans le sujet. À propos des constantes Nous avons fixé certains paramètres du jeu à des valeurs constantes : taille de la carte et nombre de joueurs (LX = LY = 11, et K = 3) ; nombre max. de PVs, de bombe posées en mêmes temps (3 et 1) ; rayon d’explosion des bombes (4) ; ordre de grandeur du nombre de boucle par seconde (10). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 3/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges Protocole Réseau TCP ou UDP ? On utilise TCP. Économe . . . Notre protocole est conçu pour : être économe en nombre de message. être économe en fréquence des messages (de l’ordre de la dizaine par secondes tout au plus). Moins économe . . . Mais sans chercher à réduire la taille des messages (on pourrait les réduire un peu). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 4/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges Protocole Réseau TCP ou UDP ? On utilise TCP. Économe . . . Notre protocole est conçu pour : être économe en nombre de message. être économe en fréquence des messages (de l’ordre de la dizaine par secondes tout au plus). Moins économe . . . Mais sans chercher à réduire la taille des messages (on pourrait les réduire un peu). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 4/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges Protocole Réseau TCP ou UDP ? On utilise TCP. Économe . . . Notre protocole est conçu pour : être économe en nombre de message. être économe en fréquence des messages (de l’ordre de la dizaine par secondes tout au plus). Moins économe . . . Mais sans chercher à réduire la taille des messages (on pourrait les réduire un peu). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 4/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges Deux types de communications 1 Client −→ Serveur ; 2 Serveur −→ Tous les clients ; Un troisième : non utilisé 1 Serveur −→ 1 Client : pas utilisé ! a a. Mais on pourrait, par exemple pour que le serveur signale à un client qu’il a tenté de tricher. C’est ce qu’on désignait par un serveur pédagogue dans le rapport initial. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 5/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Précisions sur les règles du jeu Protocole Réseau Types d’échanges Deux types de communications 1 Client −→ Serveur ; 2 Serveur −→ Tous les clients ; Un troisième : non utilisé 1 Serveur −→ 1 Client : pas utilisé ! a a. Mais on pourrait, par exemple pour que le serveur signale à un client qu’il a tenté de tricher. C’est ce qu’on désignait par un serveur pédagogue dans le rapport initial. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 5/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Client → Serveur NEW PLAYER(nickname) Message envoyé lors de la connexion d’un client, il contient le pseudonyme du joueur, et signifie au serveur que le client souhaite rejoindre la partie en train d’être construite. MOVE {LEFT|RIGHT|UP|DOWN} Au cours d’une partie, signifie au serveur que le joueur souhaite se déplacer. PLANT BOMB Au cours d’une partie, signifie au serveur que le joueur souhaite déposer une bombe Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 6/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Client → Serveur NEW PLAYER(nickname) Message envoyé lors de la connexion d’un client, il contient le pseudonyme du joueur, et signifie au serveur que le client souhaite rejoindre la partie en train d’être construite. MOVE {LEFT|RIGHT|UP|DOWN} Au cours d’une partie, signifie au serveur que le joueur souhaite se déplacer. PLANT BOMB Au cours d’une partie, signifie au serveur que le joueur souhaite déposer une bombe Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 6/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Client → Serveur NEW PLAYER(nickname) Message envoyé lors de la connexion d’un client, il contient le pseudonyme du joueur, et signifie au serveur que le client souhaite rejoindre la partie en train d’être construite. MOVE {LEFT|RIGHT|UP|DOWN} Au cours d’une partie, signifie au serveur que le joueur souhaite se déplacer. PLANT BOMB Au cours d’une partie, signifie au serveur que le joueur souhaite déposer une bombe Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 6/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Serveur → Tous les clients (1) GAME START(map, players list) Lorsque le serveur à trouvé suffisament de joueurs pour lancer une partie (ici K = 3), il envoie la carte à tous les participants, ainsi que la liste des joueurs (pseudonyme, position initiale, et identifiant numérique). GAME OVER(winner id) Lorsque la partie se termine, le serveur envoie a chaque client l’identifiant numérique du gagnant puis ferme la connexion. Exemple : ”GAME OVER(1)”. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 7/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Serveur → Tous les clients (1) GAME START(map, players list) Lorsque le serveur à trouvé suffisament de joueurs pour lancer une partie (ici K = 3), il envoie la carte à tous les participants, ainsi que la liste des joueurs (pseudonyme, position initiale, et identifiant numérique). GAME OVER(winner id) Lorsque la partie se termine, le serveur envoie a chaque client l’identifiant numérique du gagnant puis ferme la connexion. Exemple : ”GAME OVER(1)”. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 7/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Serveur → Tous les clients (2) PLANT BOMB(pos) Indique qu’une bombe a été déposée. Les positions sont (x,y) : ligne puis colonne. BLOW BOMB(pos, radius) Indique qu’une bombe a explosé (avec un rayon d’action radius). Exemple : ”BLOW BOMB(7,9,3)” une bombe en (x, y ) = (7, 9), et de rayon 3. MOVE PLAYER(player id, pos) Indique la nouvelle position d’un joueur. Exemple : ”MOVE PLAYER(2,11,0)” dit que le joueur numéro 2 va en (x, y ) = (11, 0). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 8/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Serveur → Tous les clients (2) PLANT BOMB(pos) Indique qu’une bombe a été déposée. Les positions sont (x,y) : ligne puis colonne. BLOW BOMB(pos, radius) Indique qu’une bombe a explosé (avec un rayon d’action radius). Exemple : ”BLOW BOMB(7,9,3)” une bombe en (x, y ) = (7, 9), et de rayon 3. MOVE PLAYER(player id, pos) Indique la nouvelle position d’un joueur. Exemple : ”MOVE PLAYER(2,11,0)” dit que le joueur numéro 2 va en (x, y ) = (11, 0). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 8/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Client → Serveur Serveur → Tous les clients (1) Serveur → Tous les clients (2) Messages échangés Serveur → Tous les clients (2) PLANT BOMB(pos) Indique qu’une bombe a été déposée. Les positions sont (x,y) : ligne puis colonne. BLOW BOMB(pos, radius) Indique qu’une bombe a explosé (avec un rayon d’action radius). Exemple : ”BLOW BOMB(7,9,3)” une bombe en (x, y ) = (7, 9), et de rayon 3. MOVE PLAYER(player id, pos) Indique la nouvelle position d’un joueur. Exemple : ”MOVE PLAYER(2,11,0)” dit que le joueur numéro 2 va en (x, y ) = (11, 0). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 8/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Représentation des données : la map Représentation des données : la map Pour les échanges, la carte est représentée par une matrice (pleine) à coefficients dans {0, 1, 2}, où : 1 0 représente une case vide ; 2 1 représente un bloc destructible ; 3 2 représente un bloc indestructible. Dans mon implémentation, la carte est une instance de Board.Board, elle même étant une instance de Matrix.Matrix avec des Board.State dans chaque case. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 9/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Messages échangés : la map Messages envoyés par le serveur : la map La taille de la map est fixée à 11x11. On fixe le nombre de joueurs à 3. Limitation Un joueur doit se reconnaı̂tre dans ce message. Il ne peut le faire qu’avec son pseudo. −→ erreur si deux pseudos identiques ! Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 10/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Messages échangés : la map Messages envoyés par le serveur : la map La taille de la map est fixée à 11x11. On fixe le nombre de joueurs à 3. Exemple : GAME START(1,1,0,...,1,0 ; nickname0,x0,y0 ;nickname1,x1,y1 ;nickname2,x2,y2 ;nickname3,x3,y3) La première séquence de 1,0,2 a une taille 11x11. Le seconde séquence de nickname, yi , yi a une taille 3. Limitation Un joueur doit se reconnaı̂tre dans ce message. Il ne peut le faire qu’avec son pseudo. −→ erreur si deux pseudos identiques ! Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 10/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Messages échangés : la map Messages envoyés par le serveur : la map La taille de la map est fixée à 11x11. On fixe le nombre de joueurs à 3. Limitation Un joueur doit se reconnaı̂tre dans ce message. Il ne peut le faire qu’avec son pseudo. −→ erreur si deux pseudos identiques ! Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 10/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Encodage des données Encodage, décodage “à la main” Nous avons choisi d’échanger des données dans un format ad-hoc après avoir tout d’abord considéré json et les protocol-buffers. Ceci car nos échanges de données vont se réduire à des positions (couples d’entiers), des entiers, et des chaı̂nes de caractères (les pseudos, au début). Lire et écrire J’utilise le couple classique : printf pour écrire ; scanf pour lire. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 11/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du serveur Description du serveur Le serveur fonctionne en temps discret. Le mien est limité à faire moins de 30 boucles par secondes. 1 reçoit une requête d’un client encore vivant ; 2 vérifie sa validité (dépend aussi du temps) ; 3 l’applique localement ; 4 et renvoie la mise à jour aux clients (messages MOVE PLAYER ou PLANT BOMB). Ce qui dépend du temps Puis à chaque fin d’une unité de temps, met à jour la carte (explosion des bombes, puis activation des bombes posées au tour précédent), et envoie les éventuels ordres en résultant : explosion d’une bombe (BLOW BOMB) ou fin du jeu (GAME OVER). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 12/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du serveur Description du serveur Le serveur fonctionne en temps discret. Le mien est limité à faire moins de 30 boucles par secondes. 1 reçoit une requête d’un client encore vivant ; 2 vérifie sa validité (dépend aussi du temps) ; 3 l’applique localement ; 4 et renvoie la mise à jour aux clients (messages MOVE PLAYER ou PLANT BOMB). Ce qui dépend du temps Puis à chaque fin d’une unité de temps, met à jour la carte (explosion des bombes, puis activation des bombes posées au tour précédent), et envoie les éventuels ordres en résultant : explosion d’une bombe (BLOW BOMB) ou fin du jeu (GAME OVER). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 12/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du client Description du client Le client fonctionne en deux phases. 1 2 lancement, connection au serveur, attente de réception de la carte, boucle infinie (limitée à moins de 10 par secondes) : lit le clavier ; en tire des ordres ; les valide, et les envoie ; reçoit des mises à jour depuis le serveur ; les appliques ; change l’affichage. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 13/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du client Description du client Le client fonctionne en deux phases. 1 2 lancement, connection au serveur, attente de réception de la carte, boucle infinie (limitée à moins de 10 par secondes) : lit le clavier ; en tire des ordres ; les valide, et les envoie ; reçoit des mises à jour depuis le serveur ; les appliques ; change l’affichage. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 13/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du client Description du client Le client fonctionne en deux phases. 1 2 lancement, connection au serveur, attente de réception de la carte, boucle infinie (limitée à moins de 10 par secondes) : lit le clavier ; en tire des ordres ; les valide, et les envoie ; reçoit des mises à jour depuis le serveur ; les appliques ; change l’affichage. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 13/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du client Description du client Le client fonctionne en deux phases. 1 2 lancement, connection au serveur, attente de réception de la carte, boucle infinie (limitée à moins de 10 par secondes) : lit le clavier ; en tire des ordres ; les valide, et les envoie ; reçoit des mises à jour depuis le serveur ; les appliques ; change l’affichage. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 13/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du client Description du client Le client fonctionne en deux phases. 1 2 lancement, connection au serveur, attente de réception de la carte, boucle infinie (limitée à moins de 10 par secondes) : lit le clavier ; en tire des ordres ; les valide, et les envoie ; reçoit des mises à jour depuis le serveur ; les appliques ; change l’affichage. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 13/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Sémantique du client Description du client Le client fonctionne en deux phases. 1 2 lancement, connection au serveur, attente de réception de la carte, boucle infinie (limitée à moins de 10 par secondes) : lit le clavier ; en tire des ordres ; les valide, et les envoie ; reçoit des mises à jour depuis le serveur ; les appliques ; change l’affichage. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 13/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion La carte Sémantique du serveur Sémantique du client Une IA ? Une IA ? Un client jouant seul ? Je voulais faire un client automatique : qui se connecte et joue seul. Le programme IA Bomberman.py est là pour ça. une surcouche au client ; pas d’heuristique très développée : tout est aléatoire ! une fréquence de prise de décision réglable (entre 1 et 30 par secondes). Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 14/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Pour résumer Des limitations Quelques faiblesses, dues au protocole, qu’on a voulu le plus simple possible. Des améliorations encore possibles Notamment : le système de bonus ; une meilleure signalisation des joueurs (empêcher l’overlapping ) ; une IA plus maline. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 15/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Pour résumer Des limitations Quelques faiblesses, dues au protocole, qu’on a voulu le plus simple possible. Des améliorations encore possibles Notamment : le système de bonus ; une meilleure signalisation des joueurs (empêcher l’overlapping ) ; une IA plus maline. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 15/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Pour résumer Des limitations Quelques faiblesses, dues au protocole, qu’on a voulu le plus simple possible. Des améliorations encore possibles Notamment : le système de bonus ; une meilleure signalisation des joueurs (empêcher l’overlapping ) ; une IA plus maline. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 15/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Pour résumer Des limitations Quelques faiblesses, dues au protocole, qu’on a voulu le plus simple possible. Des améliorations encore possibles Notamment : le système de bonus ; une meilleure signalisation des joueurs (empêcher l’overlapping ) ; une IA plus maline. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 15/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Pour résumer Des limitations Quelques faiblesses, dues au protocole, qu’on a voulu le plus simple possible. Des améliorations encore possibles Notamment : le système de bonus ; une meilleure signalisation des joueurs (empêcher l’overlapping ) ; une IA plus maline. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 15/16 Présentation Règles et protocole Messages échangés (rappel) Détails Conclusion Fin ! Y a-t-il des questions ? Si oui, n’hésitez pas à les poser, c’est le moment ! Figure: Artwork Bomberman. Lilian Besson Projet Réseau : un jeu de Bomberman en multijoueur. 16/16