1. Introduction: Vous avez dit MMORTS ? contexte de notre TER 2. Survol du projet: Les différentes...

Preview:

Citation preview

TER: Toys’R’Bad

N.A.B.O.T.

Encadrant: Patrice Torguet

Sommaire

1. Introduction: › Vous avez dit MMORTS ?› contexte de notre TER

2. Survol du projet:› Les différentes composantes du projet› Le jeu› Organisation du travail

3. Serveur/Client 2D:› Serveur (PHP/MySQL) : La Base de Données› Client JavaScript :

basique : XHTML + PHP Améliorations en JavaScript

› Scénario d’utilisation

4. Client 3D:› connexion et interface 2D (Java)› visualisation 3D (JOGL)

5. Conclusion

Introduction: MMORTS ?

MMOG:Type de jeux vidéo qui se définit par 3 critères:

l’univers n’est accessible que par un réseaul’univers est persistantl’univers est accessible a un très grand nombre de joueurs simultanément

RTS:Type de jeux vidéo qui se définit par:

Gestion d’unités, bâtiments … à l’aide d’une souris et d’un clavierRésolution des combats, des déplacements, de la production … en temps réel

Introduction: MMORTS ?

MMORTS = MMOG + RTS

Cumul des caractéristiques des MMOG et des RTS

pour permettre la persistance de l’univers et le temps réel dans le jeu, on utilise des cartes immenses par rapport aux jeux plus classiques(plusieurs heures pour se déplacer, voir même des jours entiers pour traverser la carte)

Introduction: contexte

Ce TER s’inscrit dans:› Dans un type de jeu en constante progression (MMOG)› Utilisation de notre projet dans le cadre de la thèse de

Mr Muratet› Volonté de reprendre notre ter pour continuer notre

projet, en particulier le client 3D On doit donc produire une base pour un/de futur(s)

projet(s)

=> principal enjeu:Un code et une documentation pour faciliter au maximum

la réutilisation de notre logiciel

Les différentes composantes du projet

Un serveur 2 types de client :

- Intégré dans les pages web (2D)

- Externe (3D)

Client 2D

Serveur

Client 2D

Client 2D

Client 3D

Client 3D

Les différentes composantes du projet

Serveur : - traitement des requêtes - connexion à la base de

données Client 2D : - optimisation des

transferts - facilitation de la

navigation Client 3D : - jouer sans navigateur

- visualisation 3D

Le jeu

Développer ses « villages » :- Produire des ressources- Construire des bâtiments

Entrainer des unités de combat :- Attaquer/Piller- Se défendre- Faire des alliances

Organisation du travail

Conception : réunions fréquentes Développement incrémental Serveur : 4 personnes en même temps,

(utilisation massive de SVN) les 3 premières semaines de développement.

Ensuite scindement de l’équipe en 2 groupes :

- Client 2D : 2 personnes- Client 3D : 2 personnes

Serveur PHP/MySQL :La Base de Données

Serveur PHP/MySQL: client 2D

XHTML +PHP

JavaScript

Serveur PHP/MySQL: client 2DPage d’accueil

Serveur PHP/MySQL: client 2DL’inscription

Serveur PHP/MySQL: client 2DPrésentation de la Ville du Joueur

Serveur PHP/MySQL: client 2DConstruire un Bâtiment

Serveur PHP/MySQL: client 2DConstruire un Bâtiment

Serveur PHP/MySQL: client 2DLes Unités

Serveur PHP/MySQL: client 2DFonctions Unités

Serveur PHP/MySQL: client 2DAttaque d’une autre ville

Serveur PHP/MySQL: client 2DAttaque d’une autre ville

Serveur PHP/MySQL: client 2DTransfert de troupes

Serveur PHP/MySQL: client 2DTransfert de troupes

Serveur PHP/MySQL: client 2DNavigation sur la Carte

Serveur PHP/MySQL: client 2DColoniser un Territoire

Serveur PHP/MySQL: client 2DColoniser un Territoire

Serveur PHP/MySQL: client 2DAutres Fonctionnalités

Client 3D: Java

Reprend les fonctionnalités du client 2D

Client 3D Client

2D Sorte de Navigateur web en Java. Librairie SWING

Client 3D

Utilisation de sockets pour dialoguer avec le serveur.

Client 3D

Librairie SAX et XML pour récupérer les informations du serveur .

Client 3D

Grande généricité facilitant le rajout de contenu.

Client 3D

Utilisation dela librairie JOGLPour afficher laville en 3D ainsique la carte du monde.

Client 3D: JOGL

Visualiser le village de manière plus proche d’un RTS classique

Améliorations prévues : bâtiments cliquables, visualisation des unités, animations…

Graphismes très basiques (on n’est pas des graphistes !)

Client 3D : JOGL

Difficultés : - modéliser (utiliser Blender…)- exporter correctement les

maillages- problèmes liés à JOGL (buffers…)

Client 3D : JOGL

Client 3D : JOGL

Client 3D : JOGL

Conclusion

Quelques points négatifs…› Beaucoup de langages très différents› Premier projet aussi vaste Un départ difficile: pas évident de comprendre

comment commencer mais aussi une grosse « perte » de temps pour apprendre PHP, JavaScript …

› 95% du serveur développé en 3 semaines (SVN + BU) Ajout de fonctionnalités par incréments successifs qui

complexifient le code

Conclusion

… A l’arrivé, un projet positif:› découverte de nouveaux langages (web)› Jeux (MMORTS), donc un projet ludique› Le projet à terme serait une première: un vrai MMORTS

avec un client 3D transformé en vrai RTS› Mais surtout une excellente ambiance!

Recommended