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 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.
Recommended publications
  • Survey on Techniques for Cross Platform Mobile Application Development
    International Journal of Advanced Research in Computer Engineering & Technology (IJARCET) Volume 3 Issue 10, October 2014 Survey on Techniques for Cross Platform Mobile Application Development Apurva P. Pawar, Vandana S. Jagtap, Mamta S. Bhamare Abstract— Smart phone is used by most of the population. Different internal architecture of Operating System Over thousands of applications are used daily and a new becomes a reason for redevelopment of application to make it application gets launched as per need. In order to do work on run on each Operating System which in turn incurs lot of cost phones itself many desktop applications are getting converted to mobile version by developers. And it’s real challenge to market in terms of time, money, efforts. Consider example of are these applications and reach to the maximum users. From document editor software like Adobe Reader and Kingsoft developer point of view for application to reach to most of the office. People are also doing work through their Smartphone end users it need to run on max platforms, this needs too. It‘s not necessary that everyone is using windows redevelopment of application, we can solve this problem to some operating system on their Smartphone. Each mobile operating extent by developing cross platform application without system uses different programming model, developer would additional investment. Several techniques are available which will help to make it happen. Survey of these techniques could require additional overhead and troubleshooting since help application developers to make a proper choice. developer might have good hands on particular single platform. Hence, making software as cross platform Index Terms— Cross Compiled Approach, Cross Platform application can be a good option.
    [Show full text]
  • IDOL Connector Framework Server 12.6 Administration Guide
    Connector Framework Server Software Version 12.6 Administration Guide Document Release Date: June 2020 Software Release Date: June 2020 Administration Guide Legal notices Copyright notice © Copyright 2020 Micro Focus or one of its affiliates. The only warranties for products and services of Micro Focus and its affiliates and licensors (“Micro Focus”) are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Micro Focus shall not be liable for technical or editorial errors or omissions contained herein. The information contained herein is subject to change without notice. Documentation updates The title page of this document contains the following identifying information: l Software Version number, which indicates the software version. l Document Release Date, which changes each time the document is updated. l Software Release Date, which indicates the release date of this version of the software. To check for updated documentation, visit https://www.microfocus.com/support-and-services/documentation/. Support Visit the MySupport portal to access contact information and details about the products, services, and support that Micro Focus offers. This portal also provides customer self-solve capabilities. It gives you a fast and efficient way to access interactive technical support tools needed to manage your business. As a valued support customer, you can benefit by using the MySupport portal to: l Search for knowledge documents of interest l Access product documentation l View software vulnerability alerts l Enter into discussions with other software customers l Download software patches l Manage software licenses, downloads, and support contracts l Submit and track service requests l Contact customer support l View information about all services that Support offers Many areas of the portal require you to sign in.
    [Show full text]
  • Preview LUA Tutorial (PDF Version)
    Lua About the Tutorial Lua is an open source language built on top of C programming language. Lua has its value across multiple platforms ranging from large server systems to small mobile applications. This tutorial covers various topics ranging from the basics of Lua to its scope in various applications. Audience This tutorial is designed for all those readers who are looking for a starting point to learn Lua. It has topics suitable for both beginners as well as advanced users. Prerequisites It is a self-contained tutorial and you should be able to grasp the concepts easily even if you are a total beginner. However it would help if you have a basic understanding of working with a simple text editor and command line. Copyright & Disclaimer Copyright 2015 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected] i Lua Table of Contents About the Tutorial ....................................................................................................................................
    [Show full text]
  • ABIR DAS [email protected]
    ABIR DAS [email protected] • http://cs-people.bu.edu/dasabir/ PERSONAL INFORMATION Position: Postdoctoral Researcher, Boston University, Boston Nov 2016 - Present Advisor: Dr. Kate Saenko Research Area: Computer Vision (Activity Detection, Person Re-identification, Vision and Language , Video Summarization and Machine Learning in general) EDUCATION Ph.D., Electrical Engineering, Sep 2015 University of California, Riverside. GPA: 3.82/4.00 Advisor: Dr. Amit K. Roy-Chowdhury Research Area: Computer Vision (Person Re-identification, Video Summarization, Active Learning and Machine learning in general) M.S., Electrical Engineering, Jul 2013 University of California, Riverside. GPA: 3.82/4.00 B.E., Electrical Engineering, Jul 2003 - Jun 2007 Jadavpur University, Kolkata, India. GPA: 8.44/10.0 TECHNICAL SKILLS Programming Skill: Python, C, Lua, C#, VBA, C++ (familiar) Technical Softwares Known: Tensorflow, Torch, Caffe, Matlab Web Development: PHP, CSS3, HTML5, ASP (familiar) Database: MySQL (familiar) IDE: iPython, Microsoft Visual Studio.NET, Eclipse, Zerobrane Studio Operating System: Linux (CentOS, Ubuntu), Windows, Mac OS Other Expertise: MS Office (Word, Excel, and PowerPoint), Linux Shell Script, XML, Latex, ffmpeg. RESEARCH EXPERIENCE Postdoctoral Researcher, Nov 2016 – Present Image and Video Computing Group, Boston University, Boston, MA. R-C3D: Region Convolutional 3D Network for Temporal Activity Detection (Python, caffe) o Developed end-to-end model to detect activities in untrimmed videos by incorporating proposal generation and classification networks along with predicting activity start and end times by regression. Top-down Visual Saliency Guided by Captions (Python, Tensorflow) o Developed a model for language driven visual search in videos which identifies spatiotemporally salient regions in frame sequences guided by either model generated descriptions or by external textual queries.
    [Show full text]
  • Lua Download
    Lua download click here to download There are detailed instructions in the package but here is a simple terminal session that downloads the current release of Lua and builds it in. This repository contains the source code and the reference manuals for all. Different releases of the same version correspond to bug fixes. LuaBinaries is a distribution of the Lua libraries and executables compiled for several platforms. A Lua interpreter for Mac OSX with a simple user interface. LuaEdit is an IDE/Text Editor/Debugger for the Lua language. Free Download Lua for Windows - Installation of Lua for the Windows operating systems including many Lua libraries that facilitate the use of. Lua for Windows and it's modules all depend on the MSVC++ runtime library. Lua for Windows install will automatically download this runtime and install it. Situation. You need to download the latest version and documentation for LiveUpdate Administrator (LUA). Solution. The latest version of. Download this app from Microsoft Store for Windows 10, Windows See screenshots, read the latest customer reviews, and compare ratings for Lua. This project installs a Lua Scripting Environment for the Windows operating system. The installer is a single executable which includes Lua. Summary, Embedded lua interpreter This extension embeds the lua interpreter and offers an OO-API to lua Version, State, Release Date, Downloads. LuaDist: A distribution of the Lua programming language. both source and binary repository of modules for the Lua programming language. Downloads. When a Lua script is run with the luacov module loaded, it generates a stats file with the number of executions of LuaCov can be downloaded via LuaRocks.
    [Show full text]
  • Lua Quick Guide
    LLUUAA -- QQUUIICCKK GGUUIIDDEE http://www.tutorialspoint.com/lua/lua_quick_guide.htm Copyright © tutorialspoint.com LLUUAA -- OOVVEERRVVIIEEWW Lua is an extensible, light-weight programming language written in C. It started as an in-house project in 1993 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes. It was designed from the beginning to be a software that can be integrated with the code written in C and other conventional languages. This integration brings many benefits. It does not try to do what C can already do but aims at offering what C is not good at: a good distance from the hardware, dynamic structures, no redundancies, ease of testing and debugging. For this, Lua has a safe environment, automatic memory management, and good facilities for handling strings and other kinds of data with dynamic size. Features Lua provides a set of unique features that makes it distinct from other languages. These include − Extensible Simple Efficient Portable Free and open Example Code print("Hello World!") How Lua is Implemented? Lua consists of two parts − the Lua interpreter part and the functioning software system. The functioning software system is an actual computer application that can interpret programs written in the Lua programming language. The Lua interpreter is written in ANSI C, hence it is highly portable and can run on a vast spectrum of devices from high-end network servers to small devices. Both Lua's language and its interpreter are mature, small, and fast. It has evolved from other programming languages and top software standards. Being small in size makes it possible for it to run on small devices with low memory.
    [Show full text]
  • PS Package Management Packages 24-APR-2016 Page 1 Acmesharp-Posh-All 0.8.1.0 Chocolatey Powershell Module to Talk to Let's Encrypt CA and Other ACME Serve
    Name Version Source Summary ---- ------- ------ ------- 0ad 0.0.20 chocolatey Open-source, cross-platform, real-time strategy (RTS) game of anci... 0install 2.10.0 chocolatey Decentralised cross-distribution software installation system 0install.install 2.10.0 chocolatey Decentralised cross-distribution software installation system 0install.install 2.10.0 chocolatey Decentralised cross-distribution software installation system 0install.portable 2.10.0 chocolatey Decentralised cross-distribution software installation system 1password 4.6.0.603 chocolatey 1Password - Have you ever forgotten a password? 1password-desktoplauncher 1.0.0.20150826 chocolatey Launch 1Password from the desktop (CTRL + Backslash). 2gis 3.14.12.0 chocolatey 2GIS - Offline maps and business listings 360ts 5.2.0.1074 chocolatey A feature-packed software solution that provides users with a powe... 3PAR-Powershell 0.4.0 PSGallery Powershell module for working with HP 3PAR StoreServ array 4t-tray-minimizer 5.52 chocolatey 4t Tray Minimizer is a lightweight but powerful window manager, wh... 7KAA 2.14.15 chocolatey Seven Kingdoms is a classic strategy game. War, Economy, Diplomacy... 7-taskbar-tweaker 5.1 chocolatey 7+ Taskbar Tweaker allows you to configure various aspects of the ... 7zip 15.14 chocolatey 7-Zip is a file archiver with a high compression ratio. 7zip.commandline 15.14 chocolatey 7-Zip is a file archiver with a high compression ratio. 7zip.install 15.14 chocolatey 7-Zip is a file archiver with a high compression ratio. 7Zip4Powershell 1.3.0 PSGallery Powershell module for creating and extracting 7-Zip archives aacgain 1.9.0.2 chocolatey aacgain normalizes the volume of digital music files using the..
    [Show full text]
  • IDOL Answer Server 12.0 Administration Guide
    Answer Server Software Version 12.0 Administration Guide Document Release Date: June 2018 Software Release Date: June 2018 Administration Guide Legal notices Copyright notice © Copyright 2015-2018 Micro Focus or one of its affiliates. The only warranties for products and services of Micro Focus and its affiliates and licensors (“Micro Focus”) are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Micro Focus shall not be liable for technical or editorial errors or omissions contained herein. The information contained herein is subject to change without notice. Trademark notices Adobe™ is a trademark of Adobe Systems Incorporated. Microsoft® and Windows® are U.S. registered trademarks of Microsoft Corporation. UNIX® is a registered trademark of The Open Group. Documentation updates The title page of this document contains the following identifying information: l Software Version number, which indicates the software version. l Document Release Date, which changes each time the document is updated. l Software Release Date, which indicates the release date of this version of the software. To verify you are using the most recent edition of a document, go to https://softwaresupport.softwaregrp.com/group/softwaresupport/search-result?doctype=online help. You will also receive new or updated editions of documentation if you subscribe to the appropriate product support service. Contact your Micro Focus sales representative for details. To check for new versions of software, go to https://www.hpe.com/software/entitlements. To check for recent software patches, go to https://softwaresupport.softwaregrp.com/patches. The sites listed in this section require you to sign in with a Software Passport.
    [Show full text]