wiki:InsiaProgPerlProjetBomber

Sommaire

Projet Perl - Bomberman réseau

Etape 1 Mise en place du décor
Etape 2 Animation des personnages
Etape 3 Protocole réseau
Etape 4 Roadmap

Référence: une version Python partiellement jouable est disponible sur source:/ensta/bombergame

1. Description

Le but de ce projet est de réaliser un jeu multi-joueur de plateau de type "Bomberman", dans lequel les joueurs peuvent être sur des machines distinctes et se retrouver sur un plateau via le réseau.

Il repose sur deux composantes distinctes:

  • la partie graphique et interactive, réalisée à l'aide de SDL-Perl
  • la partie communication, programmée simplement avec IO::Socket (utilisez man)

Le serveur sera fourni et disponible (avec son code), on se concentrera donc sur le développement du client.

2. Méthode de travail

Vous utiliserez Subversion pour travailler en binôme ou trinôme sur votre projet.

Créez un repository sur un espace NFS afin qu'il soit joignable par n'importe quel poste de travail: /morphale/bomberman/<binome>. Autorisez l'accès en lecture/écriture à votre promo pour simplifier la gestion des droits (car vous ne pouvez pas créer de groupe Unix dédié à votre bi/trinôme): chmod -R g+rwX,o+rX <repository>.

La correction du projet se fera à partir de la dernière version disponible dans votre repository. Vous devrez vérifier que vous avez complété les éléments de la Roadmap.

3. Nomenclature

Un serveur de jeu servira a héberger plusieurs "parties". Chaque partie pourra accueillir de 1 à 4 joueurs et sera associée à un design de plateau de jeu particulier. Une partie peut être créée à tout moment par un joueur en le demandant au serveur. Tout joueur peut demander à rejoindre une partie existante si celle-ci peut encore accueillir des joueurs.

Un plateau de jeu est une matrice permettant de positionner les éléments suivants:

  • murs (éléments indestructibles)
  • briques (éléments destructibles)
  • bombes (posées au cours de la partie par les joueur)
  • position initiale des joueurs

Les éléments ne peuvent pas être superposés sur le plateau de jeu (joueur, briques, mur, bombe), y compris les joueurs entre eux (ils ne peuvent pas se croiser).

Description d'un niveau de jeu

Nous allons utiliser une format textuel simple pour décrire un tableau de jeu, sous la forme "clé valeur" ligne par ligne, ex:

name   BomberINSIA 1
width  20
height 14
row    ********************
row    *..................*
row    *.+.+.+.+***.+.+.+.*
row    *.........1*.......*
row    *.+.+.+.+***.+.+.+.*
row    *.......+3.........*
row    *.+.+.+.+***.+.+.+.*
row    *.+.+.+.+***.+.+.+.*
row    *.........4*.......*
row    *.+.+.+.****.+.+.+.*
row    *.......*2.........*
row    *.+.+.+.****.+.+.+.*
row    *..................*
row    ********************
  • les * sont des murs
  • les + des briques
  • les . des éléments vide (image du "sol" du plateau)

Et 1..4 désignent les positions initiales des joueurs, elles correspondent donc à un élément vide (l'assimilerà un . pour la construction du décor).

Last modified 13 years ago Last modified on Apr 21, 2007, 4:39:54 PM

Attachments (3)

Download all attachments as: .zip