4

Click here to load reader

Créez des jeux de A à Z avec Unity - Éditions D-BookeR · Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs iv Table des matières Introduction ... 2.2. Création

  • Upload
    ledien

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Créez des jeux de A à Z avec Unity - Éditions D-BookeR · Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs iv Table des matières Introduction ... 2.2. Création

Cet extrait provient du livre DOUBLE imprimé Créez des jeux de A à Z avec Unity

III. Concevoir un jeu 2D + IV. Réseau et mode multijoueur, écrit par Anthony Cardinale – © 2015 Éditions D-BookeR

Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs

iv

Table des matières

Introduction .......................................................................................... 11. À qui s'adresse ce livre et prérequis .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22. Ce dont vous avez besoin .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. Qu'allez-vous apprendre dans ce livre ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. Comment bien apprendre avec ce livre ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

III. Concevoir un jeu 2D ..................................................................... 7

1. Level design ............................................................................. 91.1. Préparation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. Conception du niveau ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3. Ajout du personnage joueur .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2. Création d’un plug-in ............................................................... 212.1. Présentation générale de notre plug-in .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2. Création du script de la grille .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3. Création des fonctions du plug-in .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3. Programmation du joueur et de l’arme ...................................... 313.1. Programmation des mouvements du joueur .. . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2. Programmation du saut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.3. Création du viseur et de l’arme ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4. Gestion des impacts des projectiles .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4. Barre de vie et effets ............................................................... 454.1. Création de la barre de vie .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2. Création du script de vie .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.3. Gestion des collisions .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.4. Effets lumineux sur le projectile .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.5. Effets sonores .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5. Quelques objets bonus ............................................................ 555.1. Création des prefabs .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.2. Programmer l’instanciation des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.3. Programmation des collisions .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6. Découverte de iTween ............................................................. 636.1. Comment fonctionne iTween ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.2. Transition sur la couleur .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Page 2: Créez des jeux de A à Z avec Unity - Éditions D-BookeR · Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs iv Table des matières Introduction ... 2.2. Création

Cet extrait provient du livre DOUBLE imprimé Créez des jeux de A à Z avec Unity

III. Concevoir un jeu 2D + IV. Réseau et mode multijoueur, écrit par Anthony Cardinale – © 2015 Éditions D-BookeR

Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs

v

6.3. Regarder un GameObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.4. Déplacer un GameObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.5. Un coup de punch ! .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.6. Appliquer une rotation .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676.7. Modifier la taille .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676.8. Pour aller plus loin .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7. Ajout des ennemis ................................................................... 697.1. Ajout d'un ennemi .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697.2. Création du script de l'ennemi .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707.3. Dernières retouches .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

8. Utilisation d’une manette de jeu (joystick) .................................. 758.1. Fonctionnement des joysticks .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758.2. Déboguer les joystiks .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768.3. Configurer manuellement les boutons .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778.4. Modification de notre jeu pour gérer les manettes .. . . . . . . . . . . . . . . . . . 78

9. Publier son jeu ........................................................................ 819.1. Compilation du jeu .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819.2. Publication sur Steam ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829.3. Publication sur d’autres plateformes .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

10. Financer son projet ................................................................ 8710.1. Le financement participatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8710.2. Création de la page projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8810.3. D’autres techniques de financement .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

IV. Réseau et mode multijoueur ....................................................... 91

11. Notions fondamentales du réseau ........................................... 9311.1. La notion de client/serveur .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9311.2. Les protocoles de communication .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9411.3. Le système de host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9511.4. L'interpolation .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9611.5. Le principe d'autorité (Authority) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

12. Découverte d’UNET ............................................................... 9912.1. Le Network Manager .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9912.2. Le Network Identity .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10012.3. Le Network Transform ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10112.4. Quelques propriétés bien utiles .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Page 3: Créez des jeux de A à Z avec Unity - Éditions D-BookeR · Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs iv Table des matières Introduction ... 2.2. Création

Cet extrait provient du livre DOUBLE imprimé Créez des jeux de A à Z avec Unity

III. Concevoir un jeu 2D + IV. Réseau et mode multijoueur, écrit par Anthony Cardinale – © 2015 Éditions D-BookeR

Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs

vi

13. Mise en réseau ................................................................... 10513.1. Création du menu principal .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10513.2. Configuration du Network Manager .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10713.3. Contrôle du personnage local .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

14. Instanciation sur le réseau .................................................... 11714.1. Préparation du Network Manager .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11714.2. Utilisation de la fonction Spawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

15. Interactions entre joueurs ..................................................... 12115.1. Synchronisation des variables .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12115.2. Tirer sur les autres joueurs .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

16. Optimisation pour le réseau ................................................. 12716.1. Création d'une fonction de synchronisation de la position .. . . . . . 12716.2. Synchronisation de la position du viseur .. . . . . . . . . . . . . . . . . . . . . . . . . . . 13116.3. Destruction des objets instanciés .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

17. Création d’un menu personnalisé ........................................... 13517.1. Création du menu ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13517.2. Création du script Menu ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13617.3. Association des fonctions au menu ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13917.4. Afficher le score .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

18. Menu Options et modes de jeux ........................................... 14318.1. Création d’un menu de sélection des niveaux .. . . . . . . . . . . . . . . . . . . . . 14318.2. Script de sélection du niveau ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14418.3. Configuration du nombre de joueurs .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

19. Utilisation d'une base de données ......................................... 15119.1. Les outils que nous allons utiliser .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15119.2. Préparation des variables à stocker en ligne .. . . . . . . . . . . . . . . . . . . . . . 15319.3. Envoyer des variables à un script PHP ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 15519.4. Création du script PHP de sauvegarde dans la base .. . . . . . . . . . . . 158

20. Création d’une API PHP ....................................................... 16120.1. Préparation de la base de données .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16220.2. Création de la classe Helper.php et des fonctions .. . . . . . . . . . . . . . . 16320.3. Création de la fonction de connexion .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16720.4. Pour aller plus loin .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

21. Utilisation de l’API avec SimpleJSON ..................................... 17121.1. Création d’un compte joueur .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

Page 4: Créez des jeux de A à Z avec Unity - Éditions D-BookeR · Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs iv Table des matières Introduction ... 2.2. Création

Cet extrait provient du livre DOUBLE imprimé Créez des jeux de A à Z avec Unity

III. Concevoir un jeu 2D + IV. Réseau et mode multijoueur, écrit par Anthony Cardinale – © 2015 Éditions D-BookeR

Créez des jeux de A à Z avec Unity - Jeux 2D et multijoueurs

vii

21.2. Création de la scène de connexion .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

22. Quelques fonctionnalités bien utiles ....................................... 17922.1. La version alpha ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17922.2. La phase bêta .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17922.3. Partage sur les réseaux sociaux .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18022.4. Récupérer l’avis des joueurs .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18522.5. Système de bannière .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Et après ? ................................................................................. 189

Cas pratiques ................................................................................... 1911. Création d'un piano à huit touches .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1912. Jouons avec les prefabs .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1933. Ramasser des objets en fonction d'une variable .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1944. Des cubes qui vous suivent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1955. Utilisation de l'accéléromètre .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1966. Personnage contrôlable 3D ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1977. Utilisation de la classe WWW .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008. Téléchargement d'un son sur le serveur .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Foire aux questions ........................................................................... 2031. Comment synchroniser les animations sur le réseau ? .. . . . . . . . . . . . . . . . . . . . . . . 2032. À quoi sert le Network Lobby Manager ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2033. Qu'est ce que le Network Lobby Player ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2034. Que peut-on faire avec le Network Proximity Checker ? .. . . . . . . . . . . . . . . . . . . 2035. Comment choisir la position d'instanciation du joueur ? .. . . . . . . . . . . . . . . . . . . . 2036. Qu'est ce que le Network Transform Visualizer ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2047. Comment créer un jeu capable de gérer des milliers de connexions ? .. . . 2048. Comment générer un niveau à partir d'un fichier stocké en ligne ? .. . . . . . . 2049. Comment télécharger une texture en ligne et l'appliquer à un objet ? .. . . 20410. Peut-on envoyer un e-mail à partir d'un jeu ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20511. Comment faire en sorte qu'un objet soit orienté face à la caméra ? .. . . . . 20512. Comment programmer la physique d'une explosion ? .. . . . . . . . . . . . . . . . . . . . . 20613. Comment bloquer certains mouvements d'un Rigidbody par script ? .. . . 20614. Comment créer un système d'inventaire ? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20715. Quels autres langages pouvons-nous utiliser sur notre serveur ? .. . . . . . . . 207

Lexique ............................................................................................ 209

Index .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

À propos de l'auteur .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217