Guide De Formation Formation : Apprendre À Programmer Des Jeux Vidéo - Bases Complètes De Programmation
Total Page:16
File Type:pdf, Size:1020Kb
Guide de formation Formation : Apprendre à programmer des jeux vidéo - Bases complètes de programmation Site officiel : www.gamecodeur.fr Auteur : David MEKERSA Version 1.1a 28/03/18 - Correction des liens dans la section BASIC (merci à kenesy05) Reproduction interdite. Merci de respecter le travail de l'auteur (moi même). C'est aussi une forme de respect envers vous-même, car vous donnez ainsi de la valeur à votre apprentissage et à ce que vous souhaitez devenir. Sommaire : Comprendre ce qu’est la programmation C’est quoi du code ? Comment on apprenait facilement en 1985 grâce au BASIC (et ça vaut toujours aujourd’hui !) Comment l’ordinateur va interpréter votre code et comment penser comme lui Configurer son ordinateur pour programmer Quel matériel pour programmer ? Présentation du langage Lua, et pourquoi c’est le langage idéal pour commencer Installation des outils nécessaires pour apprendre à programmer des jeux vidéo en Lua Votre première ligne de code pour vérifier que tout fonctionne ! Apprendre facilement à programmer avec les 5 fondamentaux Introduction Les 5 fondamentaux, dans l'ordre de ma méthode Pourquoi ces 5 fondamentaux vont faire de vous un vrai programmeur Recommandations 1 - Apprenez ce qu’est une variable et une expression Les variables servent à stocker des données Comment créer une variable Mise en pratique Les expressions Mise en pratique Stocker des valeurs complexes 2 - Apprenez à créer des fonctions, les appeler, et leur ajouter des paramètres C'est quoi une fonction Comment créer une fonction Mise en pratique Quelques mots sur la portée des variables 3 - Apprenez les structures de contrôle (boucles, conditions, etc.) C'est quoi les structures de contrôle ? Les conditions Les opérateurs de comparaisons Les conditions multiples, imbriquées ou complexes Mise en pratique Les boucles Les boucle "For" Les boucles "While" S'échapper d'une boucle ! Mise en pratique et exercices 4 - Apprenez à créer des tableaux et des listes (indispensables pour les niveaux, les objets à l’écran, les ennemis, les tirs, etc.) 5 - Apprenez les rudiments de la programmation Orientée Objet (POO) Vous savez programmer… Et maintenant ? La suite ? Comment le langage Lua va vous permettre de créer des jeux professionnels Love2D Pico-8 Corona SDK Gideros Cocos2d-x Defold Cryengine (3D !) Comment apprendre un autre langage de programmation avec la même méthode Dans quel ordre apprendre les langages de programmation ? IMPORTANT :Les vidéos de formations correspondant à ce support PDF sont accessibles ici : http://gamecodeur.fr/module-1-lua-love2d Comprendre ce qu’est la programmation C’est quoi du code ? Le code ce sont des instructions, sous forme de texte, qui constituent un programme. On parle aussi de code source. Le code se divise en lignes. On parle de “lignes de code”. Un code, c’est comme écrire une liste de courses pour quelqu’un, avec des choix ou des conditions qu’il doit suivre à la lettre. On dit “Exécuter le code” ou “Interpréter le code”. Début du programme Va au supermarché ! Cherche du beurre Si tu ne trouve pas de beurre Prend de la margarine Sinon Prend du St Hubert Omega 3 Fin Reviens du supermarché Fin du programme Tous les langages de programmation sont similaires, mais leur syntaxe diffère. La syntaxe c’est comme avec une langue étrangère : ce sont les verbes, les noms, la manière dont les mots sont ordonnés, et leur orthographe. Certains mots, dans un code, sont appelés “mots clés”. Ils ont une orthographe très précise. L’ordinateur est bête et méchant, la syntaxe d’un langage est très précise. On ne peut pas faire de faute dans un mot clé, sinon il ne le comprend pas. Exemple de mots clés : if / then / else / print / for. Les mots clés sont en anglais, mais inutile d’être bon en anglais car ils sont peu nombreux, on peut facilement les apprendre. Comment on apprenait facilement en 1985 grâce au BASIC (et ça vaut toujours aujourd’hui !) Quand on apprenait à programmer sur un Amstrad CPC, ou encore sur un Commodore 64, en 1985, on comprenait très rapidement comment programmer. Pourquoi ? 1) Le langage était simple, il s’appelait d’ailleur le BASIC. Il existe toujours. 2) La liste de ses mots clés et leur utilisation tenait en quelques pages dans le manuel. 3) Les lignes de code des programmes BASIC étaient numérotées, on comprenait donc immédiatement comment l’ordinateur les interprétait. 4) Le langage était intégré à l’ordinateur, on allumait et on tapait du code. Directement. 5) A l’époque, programmer n’était pas élitiste. La simplicité était considérée comme une vertue, et non comme une tare comme parfois aujourd’hui. Voici comment on pouvait programmer à l’époque, et votre première leçon de programmation ! 5 cls 10 input "Quel est votre âge";age 20 print "Vous avez";age;"ans !" Comme vous le voyez, les lignes sont numérotées, on comprend ainsi aisément dans quel ordre l'ordinateur les interprète. Maintenant avec des conditions, comme dans la liste de courses : 5 cls 10 input "Quel est votre âge";age 20 if age < 13 then goto 50 30 if age < 20 then goto 60 40 if age >= 20 then goto 70 50 print "Vous êtes vraiment jeune pour apprendre à programmer !":end 60 print "Bravo, vous êtes un jeune adolescent qui ira loin !" 65 end 70 print "Vous faites moins de";age;"ans dites-moi !" 75 end On peut toujours programmer en BASIC aujourd’hui, tout du moins dans des langages qui s’en inspirent. Mon 1er jeu commercial “Geisha : Le jardin secret”, est codé en Blitzmax. On retrouve dans ce langage la syntaxe du BASIC. Voir https://nitrologic.itch.io/blitzmax. Il est maintenant gratuit et toujours utilisé pour créer des jeux professionnels. Pour en savoir plus et découvrir le manuel d’un ordinateur dans les années 80, regardez par exemple le manuel de l’Amstrad CPC : https://archive.org/details/Amstrad_CPC464_Guide_de_lutilisateur_1984_AMSOFT_FR Comment l’ordinateur va interpréter votre code et comment penser comme lui L’ordinateur interprète votre code dans l’ordre en suivant des règles simples, notamment celle de les interpréter dans l’ordre… ↓ Ligne 1 ↓ Ligne 2 ↓ Ligne 3 On parle aussi d’EXECUTER du code. Il est indispensable d’intégrer comment l’ordinateur va interpréter votre code. Il le fait donc de manière séquentielle. Ligne par ligne, dans l’ordre. C'est la clé pour comprendre. Le code d’une ligne peut obliger l’ordinateur à faire un “saut”, c’est à dire ne pas passer à la ligne suivante mais à aller directement à un autre endroit du code. C’est le cas dans notre exemple en BASIC avec les GOTO (qu veut dire "Aller à"). Nous découvrirons plus tard les conditions, les boucles, les fonctions, qui vont avoir ce type d’influence sur le déroulement du code. Sans ces “sauts”, on ne pourrait pas programmer car le code ferait toujours la même chose. En apprenant à penser comme votre ordinateur, en déroulant mentalement l’ordre dans lequel votre code est exécuté, vous ferez moins d’erreurs et serez un meilleur programmeur. Vous pouvez, et devez, penser comme lui et être capables de lire votre code et de l’exécuter mentalement. Cet exercice va vous aider à mieux apprendre au départ, mais aussi par la suite à coder en faisant moins d’erreurs, et à trouver les erreurs beaucoup plus rapidement. Configurer son ordinateur pour programmer Quel matériel pour programmer ? ● N’importe quel PC ou MAC convient pour apprendre et créer un premier jeu simple, en 2D (2 dimensions). ● Une connexion Internet (mais là je vous apprend rien…) Présentation du langage Lua, et pourquoi c’est le langage idéal pour commencer ● Le langage Lua (prononcer Lua, et non L.U.A. car c’est un mot, ça veut dire Lune en Portugais) a été inventé en 1993. ● Lua est un “langage de script” car il est interprété par l’ordinateur. C’est à dire que l’ordinateur lit votre code au moment où il l’exécute. D’autres langages comme le C++, sont des langages qui sont “compilés” et ainsi, l’ordinateur n’exécute pas directement le code C++ mais un programme qui a été précédemment compilé par le programmeur. Le compilateur transforme le code dans un autre code qui est le langage maternel de l’ordinateur : le langage machine. ● Lua est le langage idéal pour commencer : - Très peu de notions à comprendre pour commencer (proche du BASIC) - Syntaxe légère, peu de mots "magiques" - Idéal pour commencer le jeu vidéo grâce à Love2D - Pas de "compilation" - Universel, utilisé dans le monde entier et libre de droits - Il permet de créer des jeux pros - Tremplin pour les autres langages Installation des outils nécessaires pour apprendre à programmer des jeux vidéo en Lua Pour suivre ma formation, il faut installer 2 choses : 1) ZeroBraneStudio (téléchargez la version "Gamecodeur" sur la page de l'atelier : https://www.gamecodeur.fr/liste-ateliers/module-1-lua-love2d/) C’est l’éditeur dans lequel vous allez saisir votre code Lua et le tester. Il va vous faciliter la vie. NOUVEAU : Il est préconfiguré avec Love2D (le "moteur" 2D utilisé pour les cours). On peut utiliser d'autres éditeurs que ZeroBraneStudio. J'utilise par exemple Sublime Text 2, mais sa configuration est moins aisée (voir https://www.youtube.com/watch?v=evmHMjGxfPI). Vous êtes libres de l'utiliser. 2) Love2D ● C'est un “framework” (un ensemble de composants logiciels) ● Il contient le langage Lua et un ensemble de fonctions pour créer des jeux (afficher des images, jouer des sons, etc.). Important : Il est préinstallé avec Zerobrane Studio Gamecodeur Edition donc vous n'avez rien à faire (voir ci-dessus). Mais si vous utilisez un autre éditeur il faudra l'installer : https://love2d.org/ Pour savoir comment l'utiliser c'est ici Votre première ligne de code pour vérifier que tout fonctionne ! Par défaut, ZeroBraneStudio est configuré pour interpréter du Lua.