Ninja Online PROJET TUTEURÉ N3 Clément BAERT Alexis BEAUREPAIRE Nathan DAMIE Laurent LAPLACE Valentine MAILLART Emmanuel PERRIN Tuteur : Jean CARLE DUT Informatique 2009 / 2010
2 Introduction MMORPG : Massive Multiplayer Online Role-Playing Game Trois critères principaux : - Univers accessible uniquement par un réseau - Univers persistant - Univers accessible à un grand nombre de joueurs simultanément Exemple de MMORPG : World of Warcraft, Dofus, Aion...
3 Introduction Problématique : Quelles techniques, dans un jeu vidéo en ligne du type MMORPG, permettent de gérer efficacement les flux de données nécessaires à un monde persistant ?
4 Plan I. Organisation et besoins techniques II. Le réseau III. L'interface graphique IV. La base de données
5 Plan I. Organisation et besoins techniques II. Le réseau III. L'interface graphique IV. La base de données
6 I. A) Présentation du jeu (1/2) Nom du jeu : Ninja Online Histoire : Japon médiévale/fantastique Classes des personnages : ninja, samouraï, moine Shaolin... Licence libre : GNU General Public License.
7 Écrit en Java : - portabilité - langage bien connu à l'IUT Un programme serveur et un programme client. - serveur → gère le monde - client → connecte au serveur et permet de jouer I. A) Présentation du jeu (2/2)
8 I. B) Fonctionnement (1/2) Plusieurs programmes client se connectent à un seul programme serveur (le monde). Client Serveu r
9 I. B) Fonctionnement (2/2) client Partie réseau du côté client. network display Partie graphique. Internet server Partie réseau du côté serveur. network calculation, map, mobs, players Partie calcul. db Partie base de données. Base de données MySQL La base de données.
10 I. C) Organisation de l'équipe (1/2) Réseau Interface graphique Connexion Réseau / Interface graphique Personnage s Monstres Gestion des coordonnées de chaque objet dans le monde Base de données Connexion Programme / Base de données (création de comptes et personnages) Temps Ressources Répartition des tâches dans l'équipe
11 I. C) Organisation de l'équipe (2/2) ● Sources à jour et disponibles à toute l'équipe via Subversion (SVN) ● Mise en place d'un forum pour l'avancement du projet et les discussions sur le jeu.forum
12 Plan I. Organisation et besoins techniques II. Le réseau III. L'interface graphique IV. La base de données
13 II. A) Technologies utilisées (1/3) Réalisation d'un chat non graphique → dialogue entre plusieurs clients via Internet géré par un serveur. java.net : API Java pour le réseau Connexion par TCP ou UDP ? Réponse → TCP : relativement lent mais vérification de l'acheminement des données
14 II. A) Technologies utilisées (2/3) TCP : Mode connecté Client Serveur « Bonjour Serveur, moi c'est Client, je peux me connecter ? »
15 II. A) Technologies utilisées (2/3) TCP : Mode connecté Client Serveur « Bonjour Client, oui tu peux te connecter »
16 II. A) Technologies utilisées (2/3) TCP : Mode connecté Client Serveur Connexion établie ! Client et Serveur peuvent maintenant dialoguer 1;login;motDePass e 1;connexionAutoris ée
17 II. A) Technologies utilisées (3/3) UDP : Mode non connecté Client ? Client envoie ses messages sans savoir si Serveur les a bien reçu (et dans le bon ordre) 1;login;motDePass e
18 II. B) Fonctionnement (1/5) Le serveur : - gère les coordonnées de chaque objet - envoie les données nécessaires à chaque client pour l'affichage → Utilisation d'un tableau à 2 dimensions - chaque case contient 2 listes (personnages et monstres) Liste Person- nages Liste Monstre s
19 II. B) Fonctionnement (2/5) Pour le joueur : - connexion de son personnage (ex : Toto, coordonnées 10;4) Titi 11;5 Tutu 9;2... Toto 10;
20 II. B) Fonctionnement (3/5) Pour le joueur : - envoi de ses nouvelles coordonnées au serveur pour chacun de ses mouvements Titi 11;5 Tutu 9;2... Toto 11;
21 II. B) Fonctionnement (4/5) Pour le joueur : - réception des coordonnées des objets alentours à afficher à l'écran Pour chaque mouvement du joueur ou d'un autre joueur, on prévient les joueurs dans les cases aux alentours. Titi 11;5 Tutu 9;2... Toto 11;
22 II. B) Fonctionnement (5/5) Pour le joueur : - déconnexion du personnage Titi 11;5 Tutu 9;2... Toto 11;
23 Plan I. Organisation et besoins techniques II. Le réseau III. L'interface graphique IV. La base de données
24 III. A) Technologies utilisées (1/3) Interface graphique Représente ce que voit le joueur, la façon dont il pourra interagir avec le programme. Jeu en 2D Utilisation de la librairie Slick Slick est basé sur LWJGL (LightWeight Java Game Library) et OpenGL - plus haut niveau qu'OpenGL - utilisation de l'accélération matériel
25 III. A) Technologies utilisées (2/3) Écran de sélection de personnages avec Slick
26 III. A) Technologies utilisées (3/3) Aperçu du jeu
27 III. B) Méthodologie Modèle MVC vu en cours → pas adapté aux jeux vidéo - trop lent - une seule vue Solution → vue intégrée dans le modèle
28 III. C) Particularités ● Création de map simplifiée Utilisation du logiciel Tiled ● Multi-langue Traduction dans des fichiers ressource (sans code)
29 Plan I. Organisation et besoins techniques II. Le réseau III. L'interface graphique IV. La base de données
30 ● Utilisation de la méthode Merise pour la modélisation. ● Utilisation de logiciels gratuits et libres : ● - d'abord Acsi → vu en cours d'OMGL ● - puis AnalyseSI → plus ergonomique, efficace et permet la génération du code SQL après le MLD IV. A) La modélisation de la base (1/2)
31 IV. A) La modélisation de la base (2/2) ● Réflexion sur les données pertinentes à stocker → Dictionnaire des données et création d'entités ● Réflexion aux interactions entre ces entités → MCD et MLD ● Génération des tables SQL nécessaires au jeu dans une base de données MySql
32
33 IV. B) Ré-utilisation des données stockées (1/2) Besoin accès à la base en Java : → Java.sql : tous les objets et méthodes pour la base de données. → JDBC (Java DataBase Connectivity) : API fournie avec Java permettant de se connecter à des bases de données.
34 IV. B) Ré-utilisation des données stockées (2/2) Client Serveur Requêtes SQL Résultats Base de données MySql Pont JDBC
35 IV. C) Partie Java / JDBC ● Classe Database permettant l'ouverture et la fermeture de la base de données. ● Classes permettant le login et la récupération des informations de la carte, des monstres et des personnages d'un compte connecté. ● Classe de chiffrement (hashage md5) pour le login.
36 IV. D) Partie Web ● Création d'un site web, répondant à différents besoins :site web → espace où présenter le jeu → inscription des joueurs → téléchargement du jeu et installation → gestion du compte joueur → gestion et création de personnages → etc...
37
38 Gestion des personnages 38
39 Conclusion ● Un MMORPG englobe beaucoup de domaines informatiques ● Amélioration → Analyse ● Lien avec le monde de l'entreprise
40 FIN Merci. Des questions ? Une démonstration ?