SlideShare una empresa de Scribd logo
1 de 51
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
http://ezelia.com
» 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 …
» 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)
» 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.
» 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
» 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 …
» 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.
»  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
» 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)
»   caniuse.com
»   html5demo.braincracking.org
»   html5rocks.com
»   html5gamedevs.com
»   github.com

Más contenido relacionado

La actualidad más candente

Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Quentin Frémeaux
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Quentin Frémeaux
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node jsHoracio Gonzalez
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012FastConnect
 
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...Microsoft
 
Deep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentielDeep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentielMicrosoft
 
Viseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingViseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingthavo001
 
Haxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-toutHaxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-toutFrançois Barbut
 
Techdays azure pour les développeurs
Techdays azure pour les développeursTechdays azure pour les développeurs
Techdays azure pour les développeursAymeric Weinbach
 
Geek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsGeek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsOLBATI
 

La actualidad más candente (14)

Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
Jquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter BootstrapJquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter Bootstrap
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012
 
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
 
Deep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentielDeep Dive WinJS – Profitez à 100% de son potentiel
Deep Dive WinJS – Profitez à 100% de son potentiel
 
Node.js
Node.jsNode.js
Node.js
 
Viseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingViseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hosting
 
Haxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-toutHaxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-tout
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Techdays azure pour les développeurs
Techdays azure pour les développeursTechdays azure pour les développeurs
Techdays azure pour les développeurs
 
Geek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsGeek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.js
 

Destacado

Présentation du projet c++ Gestion des étudiants
Présentation du projet c++ Gestion des étudiants Présentation du projet c++ Gestion des étudiants
Présentation du projet c++ Gestion des étudiants Saâd Zerhouni
 
Projet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatiqueProjet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatiquejihene Ab
 
EveryonePrint install guide 4.0 FR
EveryonePrint install guide 4.0 FREveryonePrint install guide 4.0 FR
EveryonePrint install guide 4.0 FREveryonePrint
 
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...Emploi Hotellerie Restauration
 
World café Matinée pédagogique au Cégep maisonneuve
World café Matinée pédagogique au Cégep maisonneuveWorld café Matinée pédagogique au Cégep maisonneuve
World café Matinée pédagogique au Cégep maisonneuveVitrine Technologie Éducation
 
Rapport Langues de France - comité consultatif
Rapport Langues de France - comité consultatifRapport Langues de France - comité consultatif
Rapport Langues de France - comité consultatifblogVAP
 
Motivation des équipes internes
Motivation des équipes internesMotivation des équipes internes
Motivation des équipes internesInteraction Games
 
Vivre en Martinique - L'attractivité de la Martinique
Vivre en Martinique - L'attractivité de la MartiniqueVivre en Martinique - L'attractivité de la Martinique
Vivre en Martinique - L'attractivité de la MartiniqueJulie Province
 
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12Jo Anis
 
Les appels système
Les appels systèmeLes appels système
Les appels systèmeSalah Triki
 
Lesson plan
Lesson planLesson plan
Lesson planVeena Vs
 
Presentation de l’anpe et le secteur des tic
Presentation de l’anpe et le secteur des ticPresentation de l’anpe et le secteur des tic
Presentation de l’anpe et le secteur des ticpromocic
 
Trimestriel Septembre 2013
Trimestriel Septembre 2013Trimestriel Septembre 2013
Trimestriel Septembre 2013Maison Africaine
 
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...VisualARQ
 
A3 distrib jardinage 2015
A3 distrib   jardinage 2015A3 distrib   jardinage 2015
A3 distrib jardinage 2015Virginie Brunet
 

Destacado (20)

Présentation du projet c++ Gestion des étudiants
Présentation du projet c++ Gestion des étudiants Présentation du projet c++ Gestion des étudiants
Présentation du projet c++ Gestion des étudiants
 
Projet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatiqueProjet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatique
 
Matelas 160x200
Matelas 160x200Matelas 160x200
Matelas 160x200
 
Exp2 e leglae_open_data
Exp2 e leglae_open_dataExp2 e leglae_open_data
Exp2 e leglae_open_data
 
EveryonePrint install guide 4.0 FR
EveryonePrint install guide 4.0 FREveryonePrint install guide 4.0 FR
EveryonePrint install guide 4.0 FR
 
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...
Information metier hotellerie restauration fabrication de crêpes ou pizzas ww...
 
World café Matinée pédagogique au Cégep maisonneuve
World café Matinée pédagogique au Cégep maisonneuveWorld café Matinée pédagogique au Cégep maisonneuve
World café Matinée pédagogique au Cégep maisonneuve
 
Rapport Langues de France - comité consultatif
Rapport Langues de France - comité consultatifRapport Langues de France - comité consultatif
Rapport Langues de France - comité consultatif
 
Motivation des équipes internes
Motivation des équipes internesMotivation des équipes internes
Motivation des équipes internes
 
Vivre en Martinique - L'attractivité de la Martinique
Vivre en Martinique - L'attractivité de la MartiniqueVivre en Martinique - L'attractivité de la Martinique
Vivre en Martinique - L'attractivité de la Martinique
 
Triathlon handi-valide Mouliets 2015.
Triathlon handi-valide Mouliets 2015.Triathlon handi-valide Mouliets 2015.
Triathlon handi-valide Mouliets 2015.
 
Bonofa business
Bonofa businessBonofa business
Bonofa business
 
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12
Discours Manuéla MONDESIR- Rentrée du Balisier du 22 Sept. 12
 
Les appels système
Les appels systèmeLes appels système
Les appels système
 
Lesson plan
Lesson planLesson plan
Lesson plan
 
Presentation de l’anpe et le secteur des tic
Presentation de l’anpe et le secteur des ticPresentation de l’anpe et le secteur des tic
Presentation de l’anpe et le secteur des tic
 
Trimestriel Septembre 2013
Trimestriel Septembre 2013Trimestriel Septembre 2013
Trimestriel Septembre 2013
 
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...
VisualARQ (Français), BIM, modélisation 2D et 3D de projects architecturaux d...
 
A3 distrib jardinage 2015
A3 distrib   jardinage 2015A3 distrib   jardinage 2015
A3 distrib jardinage 2015
 
K saluuuut bm
K saluuuut bmK saluuuut bm
K saluuuut bm
 

Similar a MGD Html5 pres fr

Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5davrous
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxFrédéric Harper
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?Frédéric Harper
 
Webinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft IntelWebinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft Inteldavrous
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptdavrous
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptMicrosoft
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web MobileWilly Leloutre
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8Microsoft
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Les nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en actionLes nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en actionMicrosoft
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopFrédéric Harper
 
Node.js dans Azure
Node.js dans AzureNode.js dans Azure
Node.js dans AzureMicrosoft
 
Laurent Duveau: Microsoft Edge pour les développeurs web
Laurent Duveau: Microsoft Edge pour les développeurs webLaurent Duveau: Microsoft Edge pour les développeurs web
Laurent Duveau: Microsoft Edge pour les développeurs webMSDEVMTL
 
Microsoft Edge pour les développeurs web
Microsoft Edge pour les développeurs webMicrosoft Edge pour les développeurs web
Microsoft Edge pour les développeurs webLaurent Duveau
 

Similar a MGD Html5 pres fr (20)

Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
Webinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft IntelWebinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft Intel
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascript
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web Mobile
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Les nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en actionLes nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en action
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
 
Node.js dans Azure
Node.js dans AzureNode.js dans Azure
Node.js dans Azure
 
Laurent Duveau: Microsoft Edge pour les développeurs web
Laurent Duveau: Microsoft Edge pour les développeurs webLaurent Duveau: Microsoft Edge pour les développeurs web
Laurent Duveau: Microsoft Edge pour les développeurs web
 
Microsoft Edge pour les développeurs web
Microsoft Edge pour les développeurs webMicrosoft Edge pour les développeurs web
Microsoft Edge pour les développeurs web
 
Introduction à node.js
Introduction à node.js Introduction à node.js
Introduction à node.js
 

Más de Moroccan game developers (7)

Global Game Jam Morocco
Global Game Jam MoroccoGlobal Game Jam Morocco
Global Game Jam Morocco
 
Mgd gamification
Mgd gamificationMgd gamification
Mgd gamification
 
Mgd crowfundinginvideogames
Mgd crowfundinginvideogamesMgd crowfundinginvideogames
Mgd crowfundinginvideogames
 
Mgd unity interface
Mgd unity interfaceMgd unity interface
Mgd unity interface
 
Mgd game devprocess
Mgd game devprocessMgd game devprocess
Mgd game devprocess
 
Mgd finite statemachine
Mgd finite statemachineMgd finite statemachine
Mgd finite statemachine
 
Mgd scripting
Mgd scriptingMgd scripting
Mgd scripting
 

MGD Html5 pres fr

  • 1. Illustré à travers le projet « Legacy of DoYazan » Alaa-eddine KADDOURI alaa.eddine@gmail.com
  • 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
  • 4.
  • 6.
  • 7.
  • 8.
  • 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 …
  • 11.
  • 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)
  • 16.
  • 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.
  • 21.
  • 22.
  • 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
  • 26.
  • 27.
  • 28.
  • 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 …
  • 30.
  • 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.
  • 32.
  • 33.
  • 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
  • 35.
  • 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)
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51. » caniuse.com » html5demo.braincracking.org » html5rocks.com » html5gamedevs.com » github.com