46
palais des congrès Paris 7, 8 et 9 février 2012

Développement de jeux 2D avec HTML5

Embed Size (px)

DESCRIPTION

Durant cette session, sera expliqué le développement de jeux 2D Mobile et Web avec HTML5.

Citation preview

Page 1: Développement de jeux 2D avec HTML5

palais des congrès Paris

7, 8 et 9 février 2012

Page 2: Développement de jeux 2D avec HTML5

8 Février 2012 Pierre-Loïc DOULCET ([email protected])Head of Game Design & Programming DegreeISART Digital

Développementde jeux 2D avec HTML5

Page 3: Développement de jeux 2D avec HTML5

IntroductionGame LoopCanvas 2D

FonctionnalitésSprite SheetParticules

Clavier / SourisMobile

Tactile

Sommaire

Page 4: Développement de jeux 2D avec HTML5

HTML5 pour les jeux?

Introduction

Page 5: Développement de jeux 2D avec HTML5

IntroductionGame LoopCanvas 2D

FonctionnalitésSprite SheetParticules

Clavier / SourisMobile

Tactile

Sommaire

Page 6: Développement de jeux 2D avec HTML5

1. Lire les entrées utilisateur (clavier / souris)2. Calculer les animations et les comportements du jeu3. Dessiner le jeu4. GOTO 1

Game Loop

Page 7: Développement de jeux 2D avec HTML5

Game Loop

Page 8: Développement de jeux 2D avec HTML5

Game Loop

Page 9: Développement de jeux 2D avec HTML5

Afin de diviser le jeu en modules ‘fonctionnels’ (Menu, Inventaire, …), nous allons les implémenter dans des classes différentes, possédant toutes les méthodes :

Input => pour gérer les entrées clavier / sourisUpdate => pour mettre à jour le jeuRender => pour afficher l’écran de jeu

La Game Loop appelle directement les fonctions membre de l’objet correspondant à la situation de jeu courante.

Game Loop

Page 10: Développement de jeux 2D avec HTML5

Game Loop

Page 11: Développement de jeux 2D avec HTML5

IntroductionGame LoopCanvas 2D

FonctionnalitésSprite SheetParticules

Clavier / SourisMobile

Tactile

Sommaire

Page 12: Développement de jeux 2D avec HTML5

Canvas 2D

Page 13: Développement de jeux 2D avec HTML5

Que peut-on faire sur un canvas 2d?Dessiner des formes simples (rectangles)Dessiner des formes complexes (chemins)Effectuer des transformationsFaire du compositingChanger le style et les couleurs des éléments que l’on dessineEcrire du texteDessiner des imagesManipuler les pixels

Canvas 2D

Page 14: Développement de jeux 2D avec HTML5

Quelles sont les opérations utiles pour un jeu 2D?

Dessiner des formes simples (rectangles)Dessiner des formes complexes (chemins)Effectuer des transformationsFaire du compositingChanger le style et les couleurs des éléments que l’on dessineEcrire du texteDessiner des imagesManipuler les pixels

Canvas 2D

Page 15: Développement de jeux 2D avec HTML5

• Interlude : Rapide aperçu des principales fonctionnalités d’un contexte 2D

Canvas 2D

Page 16: Développement de jeux 2D avec HTML5

Canvas 2D

Dessiner des formes simples (rectangles)

Effacer le contenu du canvas (utile à chaque début de frame)

Page 17: Développement de jeux 2D avec HTML5

Canvas 2D

Dessiner des images

Page 18: Développement de jeux 2D avec HTML5

Canvas 2D

Dessiner des images

Page 19: Développement de jeux 2D avec HTML5

Canvas 2D

Effectuer des transformations

Page 20: Développement de jeux 2D avec HTML5

Canvas 2D

Faire du compositing

Page 21: Développement de jeux 2D avec HTML5

Canvas 2D

Sprite Sheet

Les navigateurs modernes supportent jusqu’à

2000 sprites animés en même temps à l’écran.

Page 22: Développement de jeux 2D avec HTML5

DEMO

Sprite animés

Canvas 2D

Page 23: Développement de jeux 2D avec HTML5

Canvas 2D

Sprite Sheet

Page 24: Développement de jeux 2D avec HTML5

Canvas 2D

Sprite Sheet

Page 25: Développement de jeux 2D avec HTML5

Canvas 2D

Particules

Les navigateurs modernes supportent jusqu’à5000 particules en même temps à l’écran.

Page 26: Développement de jeux 2D avec HTML5

DEMO

Particules

Canvas 2D

Page 27: Développement de jeux 2D avec HTML5

Canvas 2D

Particules

Page 28: Développement de jeux 2D avec HTML5

Canvas 2D

Moteur de Particules

Ajout de nouvelles particules

Animation des particules

Rendu des particules

Page 29: Développement de jeux 2D avec HTML5

Canvas 2D

Moteur de Particules

Ajout de nouvelles particulesDébut de Animate de la game loop

Animation des particulesAnimate de la game loop

Rendu des particulesRender de la game loop

Page 30: Développement de jeux 2D avec HTML5

Canvas 2D

Ajout de Particules

Page 31: Développement de jeux 2D avec HTML5

Canvas 2D

Animation des Particules

Page 32: Développement de jeux 2D avec HTML5

Canvas 2D

Animation des Particules – Tips : Détruire

Page 33: Développement de jeux 2D avec HTML5

Canvas 2D

Rendu des Particules

Page 34: Développement de jeux 2D avec HTML5

Canvas 2D

Rendu des Particules – Tips

Au lieu de vider le canvas à chaque frame, vous pouvez redessiner un rectangle blanc avec un alpha inférieur à 1. Cela donnera l’illusion que plus de particules sont affichés à l’écran.

Page 35: Développement de jeux 2D avec HTML5

IntroductionGame LoopCanvas 2D

FonctionnalitésSprite SheetParticules

Clavier / SourisMobile

Tactile

Sommaire

Page 36: Développement de jeux 2D avec HTML5

Clavier / Souris

Comment gérer les entrées clavier / souris?

Problème :Notre boucle de jeu est synchrone.Les évènements JavaScript sont asynchrone.

Page 37: Développement de jeux 2D avec HTML5

Clavier / Souris

Exemple du clavier

Page 38: Développement de jeux 2D avec HTML5

Clavier / Souris

Exemple du clavier

Page 39: Développement de jeux 2D avec HTML5

Clavier / Souris

Exemple du clavier

Page 40: Développement de jeux 2D avec HTML5

IntroductionGame LoopCanvas 2D

FonctionnalitésSprite SheetParticules

Clavier / SourisMobile

Tactile

Sommaire

Page 41: Développement de jeux 2D avec HTML5

Mobile

Quelles sont les specificités du HTML5 mobile pour les jeux?ViewportMobile eventsdrawImagetricks

Page 42: Développement de jeux 2D avec HTML5

Mobile

Viewport

Page 43: Développement de jeux 2D avec HTML5

Mobile

Mobile EventsTouch

Prevent default !!

Page 44: Développement de jeux 2D avec HTML5

Mobile

Mobile Eventsmotion

Page 45: Développement de jeux 2D avec HTML5

Mobile

Mobile Eventsorientation

Page 46: Développement de jeux 2D avec HTML5

DEMO

Questions ?

Canvas 2D