SlideShare une entreprise Scribd logo
Illustré à travers le projet « Legacy of
                              DoYazan »




             Alaa-eddine KADDOURI
                         alaa.eddine@gmail.com
» Présentation rapide du projet « Legacy of
  DoYazan »
» Qu’est ce que HTML5 ?
» HTML5 pour le développeur de jeux
» Moteurs de jeux en HTML5
» Techniques d’optimisation HTML5
» HTML5 et la sécurité
» Cibler différentes plateformes
»   NodeJS : un serveur pensé pour HTML5
»   MongoDB : une base de données NoSQL
»   Architecture Type d’un serveur multi-joueurs
»   Resources et liens
MGD Html5 pres fr
http://ezelia.com
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
» Nouveau standard HTML5
» Extension de JavaScript (ECMA standards v5 ~
  v6)
» Nouveau standard pour les feuilles de styles :
  CSS3
»   Nouvelles fonctionnalités DOM, CSS, and JS
»   Reduction de dépendance aux plugins
»   Plus d’effets CSS sans scripting
»   Indépendant de la plateforme(à terme)
» Frameworks et libraries : Jquery/jquery-
  ui, mootools, prototype, YUI …
MGD Html5 pres fr
» Rendu
  ˃ DOM / CSS3
  ˃ Canvas
  ˃ WebGL

» Réseau
  ˃ Ajax
  ˃ Websockets

» Multithreading
  ˃ Webworkers

» Son / Vidéo
» En général
  ˃ Nouvelle technologie
  ˃ Nouveau marché avec beaucoup de niches
  ˃ Supporté par des poids lourds (Google, Mozilla, Microsoft, Adobe,
    Apple, …)
  ˃ Les consoles de jeux se mettent à HTML5

» D’un point de vue technique
  ˃ Aide à la séparation entre : game logic / Data / UI / Network
  ˃ Multi-platformes
» HTML5 enrichie javascript
   ˃   Timer amélioré
   ˃   Acceleration materielle pour la 2D et la 3D
   ˃   Support natif de la 3D avec webGL
   ˃   Multi-threading avec les webworkers (IE10, Chrome, FFx)
» Initialisation
» Boucle avec timer
  ˃ Simulation : mise à jour de l’état du jeu
  ˃ Rendu de la scène


(exemple de code)
MGD Html5 pres fr
» Gratuits
   ˃ CreateJS (supporté par Adobe) => createjs.com
   ˃ MelonJs (compatible avec TiledEditor) => melonjs.org ,
     melonjs.org/tutorial
   ˃ Raphael => http://raphaeljs.com/
   ˃ PlayCraft (bonne gestion des physics) => http://playcraftlabs.com/

» Commerciaux
   ˃ ImpactJS (appLab)
   ˃ Construct

» Liste de moteurs de jeux HTML5
   ˃ https://github.com/bebraw/jswiki/wiki/Game-Engines
» Ne doit pas nécessiter d’adaptation dans le
  code.
» Gère la physique et les collisions
» Intègre des éditeurs de personnages, de cartes,
  de mondes, d’IA …
» Ne dépend pas d’un langage de scripting
  particulier.
» Propose plusieurs moteurs de rendu (DOM,
  Canvas, WebGL …)
»   Qu’est ce que je sais faire ?
»   Qu’est ce que je veux faire ?
»   ---
»   Décider du type de jeu que je souhaite développer
»   Prendre en considération la courbe d’apprentissage
»   Vérifier que le moteur est maintenu à jour et qu’il a une
    communauté
» Oui si :
   ˃ Aucun moteur de jeu exitant ne répond à mon besoin
   ˃ J’invente un gameplay bien spécifique, très difficile à implémenter
     avec un moteur du marché
   ˃ Je souhaite être indépendant d’une source externe/d’une licence

» Ou si :
   ˃ On aime le challenge
   ˃ On veut avant tout apprendre et comprendre le fonctionnement d’un
     moteur de jeu.
MGD Html5 pres fr
MGD Html5 pres fr
» Fréquence idéale pour un jeu fluide = 60fps.
» 60fps = ~33ms par frame. (http://
  boallen.com/fps-compare.html )
» Mettre en cache les objets.
» Limiter les passages du garbage collector avec un pool
  d’objets.
» Utilisation de la programmation événementielle.
» Solliciter le CPU le moins possible.
» Utilisation d’un pool d’objets pour limiter les passages du “garbage
  collector”
» Chargement dynamique des objets.
» Exemple concret : chargement dynamique des
  maps pour un effet de scrolling continu
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
» Content security policy pour éradiquer les
  attaques XSS.



» Granularité de filtrage : connect-src, font-src,
  frame-src, img-src, media-src, object-src, style-
  src …
MGD Html5 pres fr
» Convertir HTML5 en application mobile native
   ˃ Cocoonjs
   ˃ AppMobi
   ˃ PhoneGap (mauvaises perfs pour les jeux bon pour les apps)

» Ecrire du code HTML5 compatible avec les
  navigateurs mobiles.
   ˃ Utilisation d’un rendu DOM au lieu de Canvas peut aider.
   ˃ Respecter les bonnes pratiques d’optimisation de code et de rendu.
MGD Html5 pres fr
MGD Html5 pres fr
»  Nodejs : un Framework évènementiel basé
  sur le moteur Javascript V8 de Google.
  ˃   Installation simple
  ˃   Communauté très active (des modules pour tout faire)
  ˃   Supporte des modules en JS ou natifs (C/C++)
  ˃   Installation facile des modules/addons (npm)
  ˃   Flexible et scalable
  ˃   Supporte les websockets
  ˃   Facile à déployer
  ˃   Multi plateformes
MGD Html5 pres fr
» MongoDB : une base de donnée noSQL
  ˃ Stockage de données au format JSON
  ˃ Supporte de grandes charges / grand nombre de requêtes
    simultanées
  ˃ Facilement scalable (cluster)
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
MGD Html5 pres fr
»   caniuse.com
»   html5demo.braincracking.org
»   html5rocks.com
»   html5gamedevs.com
»   github.com

Contenu connexe

ODP
Utilisation de node.js avec mongoDB
13p
 
PPTX
2014 applications web sur Azure
Julien Plée
 
PPTX
Héberger son site web sur le cloud avec Windows Azure
MCKLMT
 
PDF
NodeJs, une introduction
Toxicode
 
PPTX
Node.js dans Windows Azure mobile services et web sites
Microsoft
 
PPTX
Cloud Azure – Services de données et bonnes pratiques
Microsoft
 
PPTX
Introduction à Node.js
Sonam TCHEUTSEUN
 
PDF
NodeJs in real life
Willy Leloutre
 
Utilisation de node.js avec mongoDB
13p
 
2014 applications web sur Azure
Julien Plée
 
Héberger son site web sur le cloud avec Windows Azure
MCKLMT
 
NodeJs, une introduction
Toxicode
 
Node.js dans Windows Azure mobile services et web sites
Microsoft
 
Cloud Azure – Services de données et bonnes pratiques
Microsoft
 
Introduction à Node.js
Sonam TCHEUTSEUN
 
NodeJs in real life
Willy Leloutre
 

Tendances (14)

DOCX
Introduction to Rust in Production - Servo Mozilla project (Talk)
Quentin Frémeaux
 
PPTX
Introduction to Rust in Production - Servo Mozilla project (Slides)
Quentin Frémeaux
 
PDF
Enib cours c.a.i. web - séance #6 : introduction à node js
Horacio Gonzalez
 
PPTX
Jquery Mobile vs Twitter Bootstrap
ODC Orange Developer Center
 
PPTX
2014.12.11 - TECH CONF #3 - Présentation Node.js
TelecomValley
 
PDF
MongoDB day Paris 2012
FastConnect
 
PPTX
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Microsoft
 
PDF
Deep Dive WinJS – Profitez à 100% de son potentiel
Microsoft
 
PDF
Node.js
Thabet Issaoui
 
PPSX
Viseo intro Prive Public Cloud vs hosting
thavo001
 
PDF
Haxe, le graal du développeur touche-à-tout
François Barbut
 
PDF
Livre Blanc Web temps réel - Node JS
JEAN-GUILLAUME DUJARDIN
 
PPTX
Techdays azure pour les développeurs
Aymeric Weinbach
 
PDF
Geek Time Juin 2016 : Node.js
OLBATI
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Quentin Frémeaux
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Quentin Frémeaux
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Horacio Gonzalez
 
Jquery Mobile vs Twitter Bootstrap
ODC Orange Developer Center
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
TelecomValley
 
MongoDB day Paris 2012
FastConnect
 
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Microsoft
 
Deep Dive WinJS – Profitez à 100% de son potentiel
Microsoft
 
Viseo intro Prive Public Cloud vs hosting
thavo001
 
Haxe, le graal du développeur touche-à-tout
François Barbut
 
Livre Blanc Web temps réel - Node JS
JEAN-GUILLAUME DUJARDIN
 
Techdays azure pour les développeurs
Aymeric Weinbach
 
Geek Time Juin 2016 : Node.js
OLBATI
 
Publicité

En vedette (20)

PPTX
Présentation du projet c++ Gestion des étudiants
Saâd Zerhouni
 
DOCX
Projet de fin d'etude gestion informatique
jihene Ab
 
PPTX
Matelas 160x200
Lematelas.fr
 
PDF
Exp2 e leglae_open_data
Nastassja Korichi
 
PDF
EveryonePrint install guide 4.0 FR
EveryonePrint
 
PDF
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...
Emploi Hotellerie Restauration
 
PPTX
World café Matinée pédagogique au Cégep maisonneuve
Vitrine Technologie Éducation
 
PDF
Rapport Langues de France - comité consultatif
blogVAP
 
PDF
Motivation des équipes internes
Interaction Games
 
PPTX
Vivre en Martinique - L'attractivité de la Martinique
Julie Province
 
PDF
Triathlon handi-valide Mouliets 2015.
MNH Mutuelle Nationale des Hospitaliers
 
PDF
Bonofa business
Misslali Seb
 
PDF
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12
Jo Anis
 
PDF
Les appels système
Salah Triki
 
DOC
Lesson plan
Veena Vs
 
PDF
Presentation de l’anpe et le secteur des tic
promocic
 
PDF
Trimestriel Septembre 2013
Maison Africaine
 
PDF
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...
VisualARQ
 
PDF
A3 distrib jardinage 2015
Virginie Brunet
 
PPS
K saluuuut bm
Fofie Démon
 
Présentation du projet c++ Gestion des étudiants
Saâd Zerhouni
 
Projet de fin d'etude gestion informatique
jihene Ab
 
Matelas 160x200
Lematelas.fr
 
Exp2 e leglae_open_data
Nastassja Korichi
 
EveryonePrint install guide 4.0 FR
EveryonePrint
 
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...
Emploi Hotellerie Restauration
 
World café Matinée pédagogique au Cégep maisonneuve
Vitrine Technologie Éducation
 
Rapport Langues de France - comité consultatif
blogVAP
 
Motivation des équipes internes
Interaction Games
 
Vivre en Martinique - L'attractivité de la Martinique
Julie Province
 
Triathlon handi-valide Mouliets 2015.
MNH Mutuelle Nationale des Hospitaliers
 
Bonofa business
Misslali Seb
 
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12
Jo Anis
 
Les appels système
Salah Triki
 
Lesson plan
Veena Vs
 
Presentation de l’anpe et le secteur des tic
promocic
 
Trimestriel Septembre 2013
Maison Africaine
 
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...
VisualARQ
 
A3 distrib jardinage 2015
Virginie Brunet
 
K saluuuut bm
Fofie Démon
 
Publicité

Similaire à MGD Html5 pres fr (20)

PPTX
Les défis d’une application mobile multi-périphériques avec HTML5
davrous
 
PDF
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Frédéric Harper
 
PPTX
L'histoire d'html5 pour les développeurs windows phone 8
davrous
 
PDF
HTML5 et Internet Explorer 9, est-ce réellement compatible?
Frédéric Harper
 
PPTX
Webinar HTML5 Microsoft Intel
davrous
 
PPTX
Introduction au développement windows 8 modern ui avec html5 et javascript
davrous
 
PPTX
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Microsoft
 
PPTX
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
codedarmor
 
PDF
Performances Web Mobile
Willy Leloutre
 
PPTX
Server Side Javascript in the cloud
stefounet
 
PPTX
JavaScript aussi sur le serveur et jusque dans le cloud?
benjguin
 
PPTX
JavaScript aussi sur le serveur et jusque dans le cloud?
Microsoft
 
PPTX
L'histoire d'HTML5 pour les développeurs Windows Phone 8
Microsoft
 
PPTX
Introduction_Developpement_Web_html.pptx
HannachiFeriel
 
PDF
Node.js et les nouvelles technologies javascript
Khalid Jebbari
 
PPTX
Les nouveautés d’HTML5 et IE11 en action
Microsoft
 
PDF
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Frédéric Harper
 
PPTX
Node.js dans Azure
Microsoft
 
PDF
Laurent Duveau: Microsoft Edge pour les développeurs web
MSDEVMTL
 
PDF
Microsoft Edge pour les développeurs web
Laurent Duveau
 
Les défis d’une application mobile multi-périphériques avec HTML5
davrous
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Frédéric Harper
 
L'histoire d'html5 pour les développeurs windows phone 8
davrous
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
Frédéric Harper
 
Webinar HTML5 Microsoft Intel
davrous
 
Introduction au développement windows 8 modern ui avec html5 et javascript
davrous
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Microsoft
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
codedarmor
 
Performances Web Mobile
Willy Leloutre
 
Server Side Javascript in the cloud
stefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
benjguin
 
JavaScript aussi sur le serveur et jusque dans le cloud?
Microsoft
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
Microsoft
 
Introduction_Developpement_Web_html.pptx
HannachiFeriel
 
Node.js et les nouvelles technologies javascript
Khalid Jebbari
 
Les nouveautés d’HTML5 et IE11 en action
Microsoft
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Frédéric Harper
 
Node.js dans Azure
Microsoft
 
Laurent Duveau: Microsoft Edge pour les développeurs web
MSDEVMTL
 
Microsoft Edge pour les développeurs web
Laurent Duveau
 

Plus de Moroccan game developers (7)

PPTX
Global Game Jam Morocco
Moroccan game developers
 
PPTX
Mgd gamification
Moroccan game developers
 
PPTX
Mgd crowfundinginvideogames
Moroccan game developers
 
PPT
Mgd unity interface
Moroccan game developers
 
PPTX
Mgd game devprocess
Moroccan game developers
 
PPTX
Mgd finite statemachine
Moroccan game developers
 
PPT
Mgd scripting
Moroccan game developers
 
Global Game Jam Morocco
Moroccan game developers
 
Mgd gamification
Moroccan game developers
 
Mgd crowfundinginvideogames
Moroccan game developers
 
Mgd unity interface
Moroccan game developers
 
Mgd game devprocess
Moroccan game developers
 
Mgd finite statemachine
Moroccan game developers
 

Dernier (7)

PDF
linkyfi presentation et ses fonctionnalité
ZakariaRAHOUI2
 
PDF
Google Remote Procedure Call Web Service
SOUFIANE MOUHTARAM
 
PDF
CHAPITRE 5_Déplacement des données DBA.pdf
houcemswissi1
 
PDF
Présentation UCOPIA et ses fonctionnalités
ZakariaRAHOUI2
 
PDF
Circuit Breaker pattern avec Resilience4j
SOUFIANE MOUHTARAM
 
PDF
Généralités sur balisage (Tagging) en git
SOUFIANE MOUHTARAM
 
PDF
CHAPITRE1_Architecture du Serveur Oracle.pdf
houcemswissi1
 
linkyfi presentation et ses fonctionnalité
ZakariaRAHOUI2
 
Google Remote Procedure Call Web Service
SOUFIANE MOUHTARAM
 
CHAPITRE 5_Déplacement des données DBA.pdf
houcemswissi1
 
Présentation UCOPIA et ses fonctionnalités
ZakariaRAHOUI2
 
Circuit Breaker pattern avec Resilience4j
SOUFIANE MOUHTARAM
 
Généralités sur balisage (Tagging) en git
SOUFIANE MOUHTARAM
 
CHAPITRE1_Architecture du Serveur Oracle.pdf
houcemswissi1
 

MGD Html5 pres fr

  • 1. Illustré à travers le projet « Legacy of DoYazan » Alaa-eddine KADDOURI [email protected]
  • 2. » Présentation rapide du projet « Legacy of DoYazan » » Qu’est ce que HTML5 ? » HTML5 pour le développeur de jeux » Moteurs de jeux en HTML5 » Techniques d’optimisation HTML5 » HTML5 et la sécurité » Cibler différentes plateformes
  • 3. » NodeJS : un serveur pensé pour HTML5 » MongoDB : une base de données NoSQL » Architecture Type d’un serveur multi-joueurs » Resources et liens
  • 9. » Nouveau standard HTML5 » Extension de JavaScript (ECMA standards v5 ~ v6) » Nouveau standard pour les feuilles de styles : CSS3
  • 10. » Nouvelles fonctionnalités DOM, CSS, and JS » Reduction de dépendance aux plugins » Plus d’effets CSS sans scripting » Indépendant de la plateforme(à terme) » Frameworks et libraries : Jquery/jquery- ui, mootools, prototype, YUI …
  • 12. » Rendu ˃ DOM / CSS3 ˃ Canvas ˃ WebGL » Réseau ˃ Ajax ˃ Websockets » Multithreading ˃ Webworkers » Son / Vidéo
  • 13. » En général ˃ Nouvelle technologie ˃ Nouveau marché avec beaucoup de niches ˃ Supporté par des poids lourds (Google, Mozilla, Microsoft, Adobe, Apple, …) ˃ Les consoles de jeux se mettent à HTML5 » D’un point de vue technique ˃ Aide à la séparation entre : game logic / Data / UI / Network ˃ Multi-platformes
  • 14. » HTML5 enrichie javascript ˃ Timer amélioré ˃ Acceleration materielle pour la 2D et la 3D ˃ Support natif de la 3D avec webGL ˃ Multi-threading avec les webworkers (IE10, Chrome, FFx)
  • 15. » Initialisation » Boucle avec timer ˃ Simulation : mise à jour de l’état du jeu ˃ Rendu de la scène (exemple de code)
  • 17. » Gratuits ˃ CreateJS (supporté par Adobe) => createjs.com ˃ MelonJs (compatible avec TiledEditor) => melonjs.org , melonjs.org/tutorial ˃ Raphael => http://raphaeljs.com/ ˃ PlayCraft (bonne gestion des physics) => http://playcraftlabs.com/ » Commerciaux ˃ ImpactJS (appLab) ˃ Construct » Liste de moteurs de jeux HTML5 ˃ https://github.com/bebraw/jswiki/wiki/Game-Engines
  • 18. » Ne doit pas nécessiter d’adaptation dans le code. » Gère la physique et les collisions » Intègre des éditeurs de personnages, de cartes, de mondes, d’IA … » Ne dépend pas d’un langage de scripting particulier. » Propose plusieurs moteurs de rendu (DOM, Canvas, WebGL …)
  • 19. » Qu’est ce que je sais faire ? » Qu’est ce que je veux faire ? » --- » Décider du type de jeu que je souhaite développer » Prendre en considération la courbe d’apprentissage » Vérifier que le moteur est maintenu à jour et qu’il a une communauté
  • 20. » Oui si : ˃ Aucun moteur de jeu exitant ne répond à mon besoin ˃ J’invente un gameplay bien spécifique, très difficile à implémenter avec un moteur du marché ˃ Je souhaite être indépendant d’une source externe/d’une licence » Ou si : ˃ On aime le challenge ˃ On veut avant tout apprendre et comprendre le fonctionnement d’un moteur de jeu.
  • 23. » Fréquence idéale pour un jeu fluide = 60fps. » 60fps = ~33ms par frame. (http:// boallen.com/fps-compare.html ) » Mettre en cache les objets. » Limiter les passages du garbage collector avec un pool d’objets. » Utilisation de la programmation événementielle. » Solliciter le CPU le moins possible.
  • 24. » Utilisation d’un pool d’objets pour limiter les passages du “garbage collector”
  • 25. » Chargement dynamique des objets. » Exemple concret : chargement dynamique des maps pour un effet de scrolling continu
  • 29. » Content security policy pour éradiquer les attaques XSS. » Granularité de filtrage : connect-src, font-src, frame-src, img-src, media-src, object-src, style- src …
  • 31. » Convertir HTML5 en application mobile native ˃ Cocoonjs ˃ AppMobi ˃ PhoneGap (mauvaises perfs pour les jeux bon pour les apps) » Ecrire du code HTML5 compatible avec les navigateurs mobiles. ˃ Utilisation d’un rendu DOM au lieu de Canvas peut aider. ˃ Respecter les bonnes pratiques d’optimisation de code et de rendu.
  • 34. »  Nodejs : un Framework évènementiel basé sur le moteur Javascript V8 de Google. ˃ Installation simple ˃ Communauté très active (des modules pour tout faire) ˃ Supporte des modules en JS ou natifs (C/C++) ˃ Installation facile des modules/addons (npm) ˃ Flexible et scalable ˃ Supporte les websockets ˃ Facile à déployer ˃ Multi plateformes
  • 36. » MongoDB : une base de donnée noSQL ˃ Stockage de données au format JSON ˃ Supporte de grandes charges / grand nombre de requêtes simultanées ˃ Facilement scalable (cluster)
  • 51. » caniuse.com » html5demo.braincracking.org » html5rocks.com » html5gamedevs.com » github.com