
|
MBDS ESTIA 2021-2022
De $1
Table des matières- 1. Introduction
- 2. Outils utilisés
- 3. Séance 1 : introduction à JavaScript, structure d'un projet, etc.
- 4. Séance 2 : on va plus loin avec Babylon (terrains/height maps, contrôler un objet, gravité, collisions, mesh avec squelette et animations, cloner des meshs)
- 5. Séance 3 et 4 : classes, cloning models, physics engine, actions, triggers, collisions
- 6. Séance 5 et 6 : particules, asset manager, effets sonores
- 7. Mini projet à rendre
- 1. Introduction1
- 2. Outils utilisés2
- 3. Séance 1 : introduction à JavaScript, structure d'un projet, etc.3
- 4. Séance 2 : on va plus loin avec Babylon (terrains/height maps, contrôler un objet, gravité, collisions, mesh avec squelette et animations, cloner des meshs)4
- 5. Séance 3 et 4 : classes, cloning models, physics engine, actions, triggers, collisions5
- 6. Séance 5 et 6 : particules, asset manager, effets sonores6
- 7. Mini projet à rendre 7
Introduction
Je vous propose de pratiquer le langage JavaScript à travers l'apprentissage de la 3d au travers de la librairie BabylonJS. On écrira ensemble un petit jeu vidéo qui tournera à 60 images/seconde dans vos navigateurs.
Outils utilisés
- La librairie BabylonJS8
- Visual Studio Code9 un puissant éditeur de code source gratuit,
- Git10 pour la gestion de versions, pour récupérer les exemples du cours, pour rendre votre projet à la fin etc.
Séance 1 : introduction à JavaScript, structure d'un projet, etc.
Supports de cours
Exemples fait en live coding:
- Eléments de base JavaScript : https://jsbin.com/visivuk/edit?js,console,output18
- Petit exemple de gestion d'un click : https://jsbin.com/laleyon/edit?html,js,console,output19
- Pour le reste, voir le MOOC, ou bien chercher "MDN array", "MDN classes", "MDN object basics", "MDN events", "MDN DOM" etc.
- Exemple canvas 2D : https://jsbin.com/lijecet/edit?html,css,js,output20
Séance 2 : on va plus loin avec Babylon (terrains/height maps, contrôler un objet, gravité, collisions, mesh avec squelette et animations, cloner des meshs)
Support de cours :
Séance 3 et 4 : classes, cloning models, physics engine, actions, triggers, collisions
- Slides BabylonJS, partie 1 leçons 1-6 (de 37 à 40)25
- Slides BabylonJS partie 2, (de 1 à XXX) (moteur physique)
26 - Modèles 3D partagés depuis mon Google drive (char, zombie, fille avec épée etc.)27
- Projet zip avec un char en 2D qui tire et suit la souris30. Montre l'utilisation des modules JavaScript (imports et exports). Dezipper, ouvrir le folder avec Visual Studio Code, ouvrir le fichier index.html et le lancer avec click droit/Open With Live Server (si vous n'avez pas cette option, installez l'extension VSCode "Live Server"). C'est un bon exemple de squelette de jeu minimal pour faire un jeu de chars. Montre les classes, les événements, le dessin et l'animation dans un canvas HTML5.
- MOOC HTML5 Apps and Games31 (voir collisions dans chapitre 2 sur la programmation de jeux...)
- Github repository du cours que l'on utilisera dans toutes les séances
32 - Vidéos du cours (8h30-12h30) :
- Vidéo séance 3 (matin)33, fin du jeu de transparents de la veille (37-40): charger un modèe 3D, utiliser une classe pour le Dude, etc.
- Vidéo séance 4 (après-midi)34 : moteur physique, calcul d'une bounding box pour le dude, tirer des boulets de canon, utiliser un laser. Vous trouverez ici la vidéo du cours que j'ai donné l'année dernière sur ce chapitre. Argl, hier mon ordinateur a eu des soucis en fin de sessions, et Zoom n'a enregistré que des fichiers corrompus, je pense que c'est quand j'ai débranché mon second écran. Du coup je vous ai mis une vidéo du cours de l'an dernier sur ce chapitre.
Séance 5 et 6 : particules, asset manager, effets sonores
Videos du cours:
- Matin (suivre le terrain, caméra qui suit le dude et déplacements du dude, asset loader etc.)
- Après-midi : aide aux projets étudiants, pas de vidéo.
Mini projet à rendre
- Date de rendu : 13 Avril.
- A faire seul ou en binome
- Rémi Mengelle va m'envoyer un google spreadsheet avec l'ensemble des projets. Les colonnes suivante seront renseignées
- nom1, nom2, emails, URL du repository github (vérifier qu'il est public)
- Le github doit avoir un README qui explique ce que vous avez fait (en particulier, les ressources utilisées, autres projets, playgrounds, tutos, etc.), en insistant sur ce dont vous êtes le plus fier....
- Facultatif : URL du jeu hébergé (facile à héberger sur "github pages")
- Facultatif : URL de la video de 30s à 1mn sur YT, sympa car après si c'est bien je peux partager facilement...
- Rémi m'enverra le lien vers cette google spreadsheet avec tous les projets....
Notes de bas de page1 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/MBDS_ESTIA_2021-2022#Introduction 2 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/MBDS_ESTIA_2021-2022#Outils_utilis.c3.a9s 3 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/MBDS_ESTIA_2021-2022#S.c3.a9ance_1_.3a_introduction_.c3.a0_JavaScript.2c_structure_d'un_projet.2c_etc. 4 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/MBDS_ESTIA_2021-2022#S.c3.a9ance_2_.3a_on_va_plus_loin_avec_Babylon_(terrains.2fheight_maps.2c_contr.c3.b4ler_un_objet.2c_gravit.c3.a9.2c_collisions.2c_mesh_avec_squelette_et_animations.2c_cloner_des_meshs) 5 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/MBDS_ESTIA_2021-2022#S.c3.a9ance_3_et_4_.3a_classes.2c_cloning_models.2c_physics_engine.2c_actions.2c_triggers.2c_collisions 6 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/MBDS_ESTIA_2021-2022#S.c3.a9ance_5_et_6.c2.a0_.3a_particules.2c_asset_manager.2c_effets_sonores 7 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/MBDS_ESTIA_2021-2022#Mini_projet_.c3.a0_rendre 8 https://www.babylonjs.com/ 9 https://code.visualstudio.com/ 10 https://git-scm.com/ 11 https://www.edx.org/course/javascript-introduction 12 https://docs.google.com/presentation/d/1rhYnQDSMArQPB_byawMKAv5LNe6WgEvllr_ABXBc0sk/edit?usp=sharing 13 https://youtu.be/2yP_OD2sN-0 14 https://youtu.be/wNFh0PGoB2s 15 http://miageprojet2.unice.fr/@api/deki/files/3020/=3_-_ModelesEclairement.pdf 16 http://miageprojet2.unice.fr/@api/deki/files/3019/=1_-_TransformationsGeometriques.pdf 17 https://github.com/micbuffa/BabylonJS_course 18 https://jsbin.com/visivuk/edit?js,console,output 19 https://jsbin.com/laleyon/edit?html,js,console,output 20 https://jsbin.com/lijecet/edit?html,css,js,output 21 https://docs.google.com/presentation/d/1rhYnQDSMArQPB_byawMKAv5LNe6WgEvllr_ABXBc0sk/edit?usp=sharing 22 https://github.com/micbuffa/BabylonJS_course 23 https://youtu.be/twwrhDx0X10 24 https://youtu.be/3XT6Bl5UpeM 25 https://docs.google.com/presentation/d/1rhYnQDSMArQPB_byawMKAv5LNe6WgEvllr_ABXBc0sk/edit?usp=sharing 26 https://docs.google.com/presentation/d/1-UUWuyDyVP7HHXb0YBJw40PhiuSK1WTo6qLBa02QuSk/edit?usp=sharing 27 https://drive.google.com/drive/folders/1LRsh02-a6RruQnTHTwdu4Us3aUGpXbJe?usp=sharing 28 https://github.com/jer0622/DS4H-Assignment-2.git 29 https://tank-client-babylonjs.herokuapp.com/ 30 http://miageprojet2.unice.fr/@api/deki/files/3051/=CharQuiTire.zip 31 https://www.edx.org/course/html5-apps-and-games 32 https://github.com/micbuffa/BabylonJS_course 33 https://youtu.be/3XT6Bl5UpeM 34 https://www.youtube.com/watch?v=dt1aNLej8qI 35 https://docs.google.com/presentation/d/1Dd2MZ59nZ-PJX4r_KoR45RUooY0df-4tn2436i6Q4IA/edit?usp=sharing 36 https://docs.google.com/presentation/d/1cPy_u_yNp9tGkFu0h00ZlCmIk3FTboMUr8C_TyaKITI/edit?usp=sharing 37 https://youtu.be/7Y13J4agwng 38 https://youtu.be/bjeWDtqJqeE
|