Développement C# et Agile Unity 5 - 2ème Partie
4.8 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
111 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Développement C# et Agile Unity 5 - 2ème Partie to your Wishlist.

Add to Wishlist

Développement C# et Agile Unity 5 - 2ème Partie

Optimiser l'architecture et les performances d'un jeu 2D multi-platforme.
4.8 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
111 students enrolled
Created by Fred Moreau
Last updated 2/2017
French
Curiosity Sale
Current price: $10 Original price: $130 Discount: 92% off
30-Day Money-Back Guarantee
Includes:
  • 6.5 hours on-demand video
  • 2 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Utiliser le Profiler pour analyser les performances et l'empreinte mémoire.
  • Optimiser les performances avec la technique d'Object Pooling.
  • Utiliser le Sprite Packer et optimiser les performances de rendu 2D.
  • Utiliser l'abstraction de la programmation orientée objet pour architecturer un composant multi-platforme.
  • Utiliser les "State Machines" de Animator pour diriger des animations conditionnelles.
  • Utiliser les "Blend Trees" de Animator pour mélanger des animations selon des paramètres.
  • Utiliser des courbes d'animation pour personnaliser le comportement d'un composant.
  • Implementer un mécanisme de permutation d'armes.
  • Utiliser le poids d'un calque Animator pour lever le bouclier du vaisseau.
View Curriculum
Requirements
  • Installer Unity 5
  • (Option) Installer Xcode et/ou Android SDK
  • (Option) Suivre la première parie de la formation Développement
Description

Au travers de cette série de videos, vous apprendrez à développer un projet de jeu vidéo avec Unity 5, ainsi que les bonnes pratiques du développement Agile.

Dans la première partie, nous nous sommes intéressé aux concepts fondamentaux de programmation avec Unity pour rapidement livrer un prototype.

Dans cette seconde partie nous allons travailler sur les performances, le debugging, les "design patterns" et autres améliorations requises pour transformer le prototype en version finale.

Cette formation s’adresse à tous ceux qui veulent apprendre la programmation orientée objet dans le cadre d’un projet de jeu-vidéo. Il y a quelques chapitres d’introduction, que certains pourront passer rapidement. Les bases de la programmation sont expliquées, ainsi que les fonctionnalités de Unity. La programmation est le sujet principal, on travaille sur un projet de jeu 2D pour que tout reste simple et éviter la complexité des fonctionnalités graphiques déjà bien documentées. Que vous sachiez programmer ou non, que vous soyez débutant avec Unity ou ayez déjà un peu d’expérience, cette formation vous donnera les bons usages et vous aidera à vous organiser dans le chaos d’un projet de jeu-vidéo.

Je suis développeur autodidacte. Je travaille avec Unity depuis 2011 et j’ai eu la chance de rencontrer d’excellents mentors qui m’ont beaucoup appris sur la programmation objet. C’est beaucoup de choses à apprendre lorsque vous n’avez pas un parcours d’ingénieur. Cependant, si j’y suis parvenu, n’importe qui peut en faire autant.

J’ai commencé à préparer cette formation pour une Master Class avec Unity. Puis j’ai décidé de la pousser encore plus loin lorsque j’ai réalisé que de nombreux développeurs étaient comme moi d’anciens graphistes ou designers, cherchant à se former à la programmation.

J’ai aussi voulu mettre en avant les pratiques Agile, bien que ce ne soit pas une formation à l’Agile, compte tenu de la demande grandissante de développeurs Agile. Le développement Agile c’est vraiment un état d’esprit qu’on ne peut pas forcer. Du point de vue du développeur, il s’agit surtout de lâcher prise sur le désire de complétude et de perfection d’architecture, et vouloir livrer une version jouable le plus tôt possible. La responsabilité donnée aux programmeurs apporte beaucoup de stress, avec lequel vient le besoin de prévoir, planifier et contrôler le développement. Tout changement devient alors un problème. La confiance de l’équipe en elle même est clé dans le développement Agile et la confiance vient avec la connaissance. Plus vous en savez, plus vous avez confiance en vous, et moins vous doutez. Moins vous redouter le changement, et moins vous ressentez le besoin de sur-planifier et complexifier le code, and le plus tôt vous livrer vos prototypes. Cette formation veut renforcer les développeurs avec la connaissance nécessaire pour avoir confiance en leur capacité à réagir aux changements et toujours fournir le plus de valeur dans le temps imparti.

Maintenant, le développement Agile, ce n’est pas seulement pour prototyper. Nous allons aussi parler de Performances, de facteurs d’échelle et d’économie de code, ce qui est aussi très important pour la maintenance d’un projet.

J’ai vraiment voulu porter cette formation au delà du modèle académique standard. Il y a une bonne part de théorie, toujours mise en pratique. Son déroulement est planifié pour offrir une courbe de difficulté croissante et digeste, et sa présentation est à la façon d’une session live dans laquelle je partage le cheminement de ma pensée, ainsi que beaucoup de trucs et astuces.

Who is the target audience?
  • Artistes et/ou Designers souhaitant apprendre la programmation
  • Développeurs de jeux souhaitant apprendre Unity
  • Non programmeurs souhaitant apprendre le développement de jeux
Students Who Viewed This Course Also Viewed
Curriculum For This Course
15 Lectures
06:20:25
+
Start Here
1 Lecture 21:12

En guise d'introduction à cette 2ème partie, cette vidéo donne un aperçu des valeurs et principes fondamentaux du développement Agile, revenant sur l'origine et les fondements de la méthode, et portant une attention particulière sur la nécessité de planifier le temps consacré à l'optimisation et la consolidation d'un projet.

Preview 21:12
+
Chapitre 8 : Performances
5 Lectures 02:22:18

Implémenter une méthode d'Object Pooling respectant l'architecture existante (Instantiate/Destroy).
Utiliser le Profiler pour identifier les limitations de performances.
Utiliser les classes génériques (List et Dictionnary) pour référencer des listes d'objets et composants.
Utiliser Linq pour parcourir et sélectionner des objets répondants à certains critères depuis une liste.

Object Pooling - 1ère partie
55:18

Optimisation des méthodes de l'Object Pooling.

Object Pooling - 2ème partie
12:32

Utiliser les statistiques et le Frame Debugger pour détailler les étapes du rendu et identifier les optimisations possibles.
Utiliser le Sprite Packer pour rassembler les sprites sur quelques planches de textures et diminuer le nombre d'appels à l'affichage (draw calls).

Rendu (Frame Debugger & Sprite Packing)
18:34

Importer des Sprites animés et Clip Audio pour représenter les impacts et explosions.
Jouer automatiquement le clip d'une source audio lorsque l'objet est activé par le système d'Object Pooling.

Explosions - 1ère partie
20:53

Ajouter une explosion à la position de contact d'une collision.
Parenter l'explosion à l'objet sur lequel elle se produit.
Reparenter les objets appartenants à un "Pool" lorsqu'ils sont libérés.

Explosions - 2ème partie
35:01

Testez vos connaissances en C# et Unity.
2 questions
+
Chapitre 9 : Architecture
9 Lectures 03:36:55

Présentation détaillée d'un "design pattern" exploitant l'un des concepts pilliers de la programmation orientée objet : l'abstraction.
Définir une interface IControllable pour modéliser les objets controllables du jeu.
Définir une classe mère, dite abstract, de laquelle d'autres classes peuvent dériver et hériter.
Implémenter une interface dans une classe.

Preview 36:34

Exposer des courbes manipulables par l'usager de l'éditeur, lui permettant de répartir les valeurs de déplacement X entre la rotation et le déplacement latéral, en fonction de la vitesse (Y) du vaisseau.

Value Mapping
20:23

A l'aide d'un Animator Controller, nous allons :
- créer un State Machine permettant d'animer le vaisseau en fonction de son déplacement
- créer un Blend Tree permettant d'animer le réacteur en fonction de la vitesse du vaisseau.

Animator Controller
38:35

Dériver de la classe ShipControllerBase pour réimplémenter les contrôles exploitant la physique.
Définir une méthode comme "virtual" pour permettre sa surcharge (override).
Surcharger une méthode de classe dérivée pour y implémenter des spécificités.

Ship Controller Physics 2D
15:38

Réimplémentation des contrôles tactiles sous forme d'une nouvelle classe dérivée de ControlsBase.
Ajout d'un effet d'amorti lorsque l'on relache le doigt de l'écran.
Activation/Suppression automatique des composants selon la plateforme de compilation.

Controls Touch
19:58

Réintégration des contrôles de tir dans la nouvelle architecture.
Ajouter la signature d'une propriété à l'interface IControllable.

Contrôles de Tir
12:09

Toujours en exploitant l'abstraction, nous ajoutons dans ce chapitre la capacité de lever un bouclier, protégeant et stabilisant le vaisseau, à l'aide de la Physics2D et de Animator.

Bouclier
17:12

Ajout d'une listes d'armes équipées et d'une méthode de permutation d'armes.
Ajout du type "weapon" au composant Item de sorte à pouvoir collecter de nouvelles armes.
Ajout d'une propriété "automatic" au composant Weapon pour déterminer la cadence de tir.
Ajout d'une propriété "cycling" au composant Weapon pour déterminer si tous les canons tirent en même temps ou par cycle.

Armes multiples
45:23

Ajout d'une méthode de réinitialisation du vaisseau qui puisse être utilisée lorsque le vaisseau est détruit.
Optimisation de la Physics2D.
Optimisation du State Machine principal.

Réinitialisation
11:03

Testez vos connaissances en C# et Unity.
2 questions
About the Instructor
Fred Moreau
4.5 Average rating
129 Reviews
738 Students
7 Courses
Game Developer, Unity Instructor, Agile Coach

Coach and Consultant - Design & Development, Business, Training

[ English ]

With a strong technical expertise and a taste for design, I've had the opportunity to lead teams of creative people through development of innovative projects.

I'm passionate about learning and training, I started giving training early and have been involved in training certification programs. When you work in this industry, sharing your knowledge is not only a duty, it's the opportunity to learn even more.

I'm a self-taught developer myself. I work with Unity since 2011, and was very lucky to meet with mentors who taught me a great deal about OOP. That's a lot to learn about when your background is not in engineering, though, I figured that if I could do it, anyone can.

[ Français ]

Je suis passionné par l’apprentissage et l’enseignement. J’ai donné mes premières formations très tôt et me suis impliqué dans les programmes de certifications de grands éditeurs. Quand on travaille dans cette industrie, partager ses connaissances est plus qu’un devoir, c’est aussi le meilleur moyen d’apprendre d’avantage.

Je suis développeur autodidacte. Je travaille avec Unity depuis 2011 et j’ai eu la chance de rencontrer d’excellents mentors qui m’ont beaucoup appris sur la programmation objet.
C’est beaucoup de choses à apprendre lorsque vous n’avez pas un parcours d’ingénieur. Cependant, si j’y suis parvenu, n’importe qui peut en faire autant.