SlideShare uma empresa Scribd logo
1 de 6
14/06/2013 FARMFIGHT
Documentation
GRONDIN Florian, HILMI Samy, LAM Maxime,
MORETTI Jérémy, MASSA-ONFROY Aurélien
SUPINFO M1
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
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,…
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.
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.
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.

Mais conteúdo relacionado

Destaque

Enseigner jeanne d'arc
Enseigner jeanne d'arcEnseigner jeanne d'arc
Enseigner jeanne d'arcicm13
 
Les fondamentalismes et les femmes (version pour le site)
Les fondamentalismes et les femmes (version pour le site)Les fondamentalismes et les femmes (version pour le site)
Les fondamentalismes et les femmes (version pour le site)icm13
 
Mis abuelas luz_olivera
Mis abuelas luz_oliveraMis abuelas luz_olivera
Mis abuelas luz_oliveramoronad45
 
CELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIA
CELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIACELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIA
CELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIAcarrere mbodj sarah
 
Informe de Gestión ACP 2012 - Servicios de Conocimiento
Informe de Gestión ACP 2012 - Servicios de ConocimientoInforme de Gestión ACP 2012 - Servicios de Conocimiento
Informe de Gestión ACP 2012 - Servicios de ConocimientoACP Agroconsultora Plus
 
Newsletter n°8 de l'ISTR de Marseille (avril 2014)
Newsletter n°8 de l'ISTR de Marseille (avril 2014)Newsletter n°8 de l'ISTR de Marseille (avril 2014)
Newsletter n°8 de l'ISTR de Marseille (avril 2014)icm13
 
Cronograma semana de derecho 2013 (1)
Cronograma semana de derecho 2013 (1)Cronograma semana de derecho 2013 (1)
Cronograma semana de derecho 2013 (1)Daniel Pérez Ahumada
 
Hatchepsout (4/4)
Hatchepsout (4/4)Hatchepsout (4/4)
Hatchepsout (4/4)icm13
 
Libro complementario de la Esc Sab. 18/05/2013
Libro complementario de la Esc Sab. 18/05/2013Libro complementario de la Esc Sab. 18/05/2013
Libro complementario de la Esc Sab. 18/05/2013Misión Peruana del Norte
 
presentación ánima
presentación ánimapresentación ánima
presentación ánimaÁnima
 

Destaque (18)

2012 02-09 notasegw
2012 02-09 notasegw2012 02-09 notasegw
2012 02-09 notasegw
 
Enseigner jeanne d'arc
Enseigner jeanne d'arcEnseigner jeanne d'arc
Enseigner jeanne d'arc
 
Les fondamentalismes et les femmes (version pour le site)
Les fondamentalismes et les femmes (version pour le site)Les fondamentalismes et les femmes (version pour le site)
Les fondamentalismes et les femmes (version pour le site)
 
Présentation sans titre (3)
Présentation sans titre (3)Présentation sans titre (3)
Présentation sans titre (3)
 
Mis abuelas luz_olivera
Mis abuelas luz_oliveraMis abuelas luz_olivera
Mis abuelas luz_olivera
 
2012 01-05 notasegw
2012 01-05 notasegw2012 01-05 notasegw
2012 01-05 notasegw
 
Nivelacion2
Nivelacion2Nivelacion2
Nivelacion2
 
2012 02-12 auxiliardirectores
2012 02-12 auxiliardirectores2012 02-12 auxiliardirectores
2012 02-12 auxiliardirectores
 
CELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIA
CELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIACELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIA
CELEBRACION DIA INTERNACIONAL DEL TURISMO EN MEDELLIN COLOMBIA
 
Informe de Gestión ACP 2012 - Servicios de Conocimiento
Informe de Gestión ACP 2012 - Servicios de ConocimientoInforme de Gestión ACP 2012 - Servicios de Conocimiento
Informe de Gestión ACP 2012 - Servicios de Conocimiento
 
Newsletter n°8 de l'ISTR de Marseille (avril 2014)
Newsletter n°8 de l'ISTR de Marseille (avril 2014)Newsletter n°8 de l'ISTR de Marseille (avril 2014)
Newsletter n°8 de l'ISTR de Marseille (avril 2014)
 
Cronograma semana de derecho 2013 (1)
Cronograma semana de derecho 2013 (1)Cronograma semana de derecho 2013 (1)
Cronograma semana de derecho 2013 (1)
 
Hatchepsout (4/4)
Hatchepsout (4/4)Hatchepsout (4/4)
Hatchepsout (4/4)
 
Libro complementario de la Esc Sab. 18/05/2013
Libro complementario de la Esc Sab. 18/05/2013Libro complementario de la Esc Sab. 18/05/2013
Libro complementario de la Esc Sab. 18/05/2013
 
Medios didácticos
Medios didácticosMedios didácticos
Medios didácticos
 
presentación ánima
presentación ánimapresentación ánima
presentación ánima
 
Actividad mod 4 rea
Actividad mod 4 reaActividad mod 4 rea
Actividad mod 4 rea
 
crise
crisecrise
crise
 

Mais de Florian GRONDIN

Présentation Note ton STA : Application Android
Présentation Note ton STA : Application AndroidPrésentation Note ton STA : Application Android
Présentation Note ton STA : Application AndroidFlorian GRONDIN
 
Application d'affichage des news sur Windows phone 7
Application d'affichage des news sur Windows phone 7Application d'affichage des news sur Windows phone 7
Application d'affichage des news sur Windows phone 7Florian GRONDIN
 
Let’s sleep : Projet de Web strategy sur les techniques de SEO
Let’s sleep : Projet de Web strategy sur les techniques de SEOLet’s sleep : Projet de Web strategy sur les techniques de SEO
Let’s sleep : Projet de Web strategy sur les techniques de SEOFlorian GRONDIN
 
Rapport du projet Let's Sleep
Rapport du projet Let's SleepRapport du projet Let's Sleep
Rapport du projet Let's SleepFlorian GRONDIN
 
Youfood : Site internet .NET sur PC et Tablette
Youfood : Site internet .NET sur PC et TabletteYoufood : Site internet .NET sur PC et Tablette
Youfood : Site internet .NET sur PC et TabletteFlorian GRONDIN
 
Spécifications Fonctionnelles Détaillées du projet Youfood
Spécifications Fonctionnelles Détaillées du projet YoufoodSpécifications Fonctionnelles Détaillées du projet Youfood
Spécifications Fonctionnelles Détaillées du projet YoufoodFlorian GRONDIN
 

Mais de Florian GRONDIN (9)

Présentation Note ton STA : Application Android
Présentation Note ton STA : Application AndroidPrésentation Note ton STA : Application Android
Présentation Note ton STA : Application Android
 
Application d'affichage des news sur Windows phone 7
Application d'affichage des news sur Windows phone 7Application d'affichage des news sur Windows phone 7
Application d'affichage des news sur Windows phone 7
 
Let’s sleep : Projet de Web strategy sur les techniques de SEO
Let’s sleep : Projet de Web strategy sur les techniques de SEOLet’s sleep : Projet de Web strategy sur les techniques de SEO
Let’s sleep : Projet de Web strategy sur les techniques de SEO
 
Rapport du projet Let's Sleep
Rapport du projet Let's SleepRapport du projet Let's Sleep
Rapport du projet Let's Sleep
 
Youfood : Site internet .NET sur PC et Tablette
Youfood : Site internet .NET sur PC et TabletteYoufood : Site internet .NET sur PC et Tablette
Youfood : Site internet .NET sur PC et Tablette
 
Mode d'emploi Youfood
Mode d'emploi YoufoodMode d'emploi Youfood
Mode d'emploi Youfood
 
Spécifications Fonctionnelles Détaillées du projet Youfood
Spécifications Fonctionnelles Détaillées du projet YoufoodSpécifications Fonctionnelles Détaillées du projet Youfood
Spécifications Fonctionnelles Détaillées du projet Youfood
 
Farmfight manuel
Farmfight manuelFarmfight manuel
Farmfight manuel
 
Farmfight
FarmfightFarmfight
Farmfight
 

Documentation FarmFight

  • 1. 14/06/2013 FARMFIGHT Documentation GRONDIN Florian, HILMI Samy, LAM Maxime, MORETTI Jérémy, MASSA-ONFROY Aurélien SUPINFO M1
  • 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. 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. 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. 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. 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.