14/06/2013 FARMFIGHT
Documentation
GRONDIN Florian, HILMI Samy, LAM Maxime,
MORETTI Jérémy, MASSA-ONFROY Aurélien
SUPINFO ...
1
FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME,
MORETTI JEREMY, MASSA-ONFROY AURELIEN
Table des matières
Introduction...
2
FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME,
MORETTI JEREMY, MASSA-ONFROY AURELIEN
Introduction
Le projet FARMFIGH...
3
FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME,
MORETTI JEREMY, MASSA-ONFROY AURELIEN
Côté serveur
Node.js
Nous avons...
4
FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME,
MORETTI JEREMY, MASSA-ONFROY AURELIEN
Côté client
Langage
Nous avons ...
5
FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME,
MORETTI JEREMY, MASSA-ONFROY AURELIEN
Interactions
Les interactions e...
Upcoming SlideShare
Loading in...5
×

Documentation FarmFight

116

Published on

Documentation technique sur le jeux de 4ème année réaliser à SUPINFO

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
116
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Documentation FarmFight"

  1. 1. 14/06/2013 FARMFIGHT Documentation GRONDIN Florian, HILMI Samy, LAM Maxime, MORETTI Jérémy, MASSA-ONFROY Aurélien SUPINFO M1
  2. 2. 1 FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME, MORETTI JEREMY, MASSA-ONFROY AURELIEN Table des matières Introduction .............................................................................................................................. 2 Côté serveur ............................................................................................................................. 3 Node.js................................................................................................................................... 3 Base de données ................................................................................................................. 3 DAO........................................................................................................................................ 3 Cryptage............................................................................................................................... 3 Timer....................................................................................................................................... 3 Côté client ................................................................................................................................ 4 Langage................................................................................................................................ 4 La carte ................................................................................................................................. 4 Le fermier............................................................................................................................... 4 Les évènements.................................................................................................................... 4 Interactions ............................................................................................................................... 5 Le style....................................................................................................................................... 5
  3. 3. 2 FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME, MORETTI JEREMY, MASSA-ONFROY AURELIEN Introduction Le projet FARMFIGHT est une application client/serveur en Javascript. Le serveur reçoit les requêtes des utilisateurs et renvoie les informations demandées. Une base de données a été mise en place afin de pouvoir gérer la partie multi-joueurs mais aussi pour enregistrer les parties des utilisateurs. Nous avons choisi une base de données MySQL contenant les utilisateurs ainsi que leurs données ; les alliances, les serveurs, les armes, les cases,…
  4. 4. 3 FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME, MORETTI JEREMY, MASSA-ONFROY AURELIEN Côté serveur Node.js Nous avons décidé d’utiliser le framework Node.js qui permet l’utilisation du Javascript côté serveur. En effet, il est possible de créer un serveur Node.js sur un port défini et accessible à l’adresse voulue. Nous devons définir les routes afin de diriger les pages vers les vues associées. Pour cela nous avons ajouté le module Express.js pour Node.js. Base de données Ensuite afin d’établir une connexion avec la base de données nous avons ajouté le module mysql.Pour le faire fonctionner, il suffit d’établir une connexion que l’on stocke dans une variable globale et que l’on utilise lors des requêtes. Node.js fonctionne de manière asynchrone ce qui implique que l’application n’attend pas la fin de toutes les commandes pour passer à la suite. Pour pallier ce problème nous avons décidé d’implémenter toutes les requêtes SQL retournant des données en utilisant des callback. Le callback est appelé dans une fonction anonyme et est donc obligé d’attendre le résultat de la requête pour passer à la suite. DAO L’application utilise les objets javascript, nous avons donc décidé d’utiliser les DAO, c’est-à-dire une interface permettant de mapper les objets avec les entités de la base de données. Nous avons défini des fonctions permettant de faire des requêtes du CRUD ainsi que d’autres plus personnalisées. Cryptage Le cryptage des mots de passese fait en SHA1 grâce au module « crypto ». Cet outil permet de crypter du texte de plusieurs manières (MD5, SHA1,…). Timer Un timer pour chaque évènement est mis en place. Le temps est calculé aléatoirement avec une fréquence spécifique par évènement.
  5. 5. 4 FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME, MORETTI JEREMY, MASSA-ONFROY AURELIEN Côté client Langage Nous avons utilisé la librairie JQuery pour la plupart des interactions côté client. Nous avons cependant, dans quelques cas, utilisé du javascript afin d’optimiser les vitesses d’exécution. La carte Nous avons décidé d’utiliser la librairie Three.js qui nous a permis de générer des objets canvas. La carte est calculée à la création de celle-ci. Chaque case est stockée dans la base de données en fonction de son état, son propriétaire,… On peut changer la vue de la carte (vue de haut). On peut également voir les cases déjà possédées et les cases des autres joueurs. Le fermier Les fermiers peuvent attaquer des cases des autres joueurs. Les informations du fermier sont également stockées dans la base de données. Lorsqu’il quitte la page, l’enregistrement de sa position se fait automatiquement. Les cases acquises sont également sauvegardées. Les évènements Les pluies, les tornades, les sauterelles et les météorites sont des évènements générés de manière aléatoire. Les pluies et les sauterelles arrivent plus fréquemment alors que les tornades et les météorites sont plus rares. Les éléments visibles de ces évènements sont générés également par Three.js. Nous avons aussi ajouté des animations afin de faire trembler la carte lors des pluies de météorites grâce au plugin JQuery « Rumble » qui permet de faire trembler les éléments HTML. Cet outil à également été utilisé pour les attaques de cases.
  6. 6. 5 FARMFIGHT GRONDIN FLORIAN, HILMI SAMY, LAM MAXIME, MORETTI JEREMY, MASSA-ONFROY AURELIEN Interactions Les interactions entre le client et le serveur se font via le module « socket.io » pour Node.js. Ce module permet d’envoyer des sockets via le client et de les recevoir via le serveur. L’inverse est également possible. Nous l’avons utilisé par exemple dans le déclenchement des évènements. Lorsque le timer déclenche l’évènement, un socket est envoyé à tous les clients de la carte. Le client réceptionne ce socket (contenant l’information de l’évènement) et affiche l’évènement (tornade, pluie…). Tout ce qui doit être envoyé au serveur ou enregistré dans la base de données passe par les sockets afin d’être réceptionné par le serveur. Le style Le style de l’application est fait en css. Nous avons choisi un style simple et épuré afin de mettre en avant le jeu en lui-même.

×