Présentation de la star des studios de jeux vidéo : le langage Lua

Créer, jouer et publier des jeux vidéos

Présentation de la star des studios de jeux vidéo : le langage Lua

Comme mentionné dans mon article sur les prérequis à avoir pour bien suivre mes cours, je suppose que vous avez déjà des notions de base en programmation. DevJeux étant consacré à l’apprentissage de la création de jeux, ce serait décalé de faire lua-logo_128x128passer aussi sur le site un cours d’initiation à la programmation à partir de zéro avant d’attaquer le sujet principal du site. Ceci étant dit, je vous donnerai quand même les bases du langage Lua (langage de choix que nous allons utiliser sur ce site pour créer des jeux) dans trois séries d’articles et présenter certaines de ses différences par rapport aux langages les plus connus.

Langage Lua, d’où sors-tu et de quoi es-tu capable ?

Alors, ça vous dirait d’aller sur la lune avec moi ? Euh…non !!?? Bon d’accord ! Si vous ne voulez pas aller sur la lune, alors je suis désolé pour vous parce que Lua veut dire « Lune » en portugais 🙂 . Si vous faites partie de ceux qui n’ont jamais entendu parler de ce langage auparavant, alors laissez-moi vous dire qu’il s’agit d’un langage qui est célèbre dans le monde professionnel du jeu vidéo, de l’intelligence artificielle et de l’informatique embarqué. Le premier jeu qui l’a utilisé pour scripter ses interfaces et qui l’a rendu populaire est le fameux jeu en ligne World of Warcraft. Depuis, Lua est utilisé dans plein de jeux vidéo (SimCity, Far Cry, Baldur’s Gate, Escape From Monkey Island, Homeworld etc.) et est bien intégré dans les studios de jeux. Divers moteurs de jeux l’ont aussi adopté pour simplifier la vie des développeurs en l’utilisant comme langage de haut niveau placé comme surcouche au-dessus d’API complexes codées en C et C++. Voici quelques exemples de frameworks de jeux qui utilisent ce langage. Corona SDK, MOAI, Gideros, Marmalade Quick, LÖVE, etc.

Lua est un langage qui s’interface facilement avec le langage C et C++ (normal puisqu’il a été développé en C pur) et beaucoup de développeurs l’utilisent comme surcouche à leur API (écrite dans ces deux langages) à cause de sa rapidité, de sa puissance, de sa simplicité et de sa légèreté. Il est interprété, contient une machine virtuelle et pour la grande surprise, le compilateur, l’interpréteur et les bibliothèques standards de Lua tiennent dans moins de 400 Ko (selon les versions parce que certaines versions antérieures font moins de 300 Ko). Remarquez que j’ai bien écrit Ko (kilo-octets).

Le langage Lua a été créé en 1993 par trois ingénieurs brésiliens à Rio de Janeiro. C’est un langage open source, extensible, portable sur divers systèmes d’exploitation, simple à apprendre et à utiliser. Il peut s’utiliser de diverses façons à savoir en tant que langage indépendant ou en tant que langage embarqué dans une application existante écrite dans un autre langage. C’est pour cette dernière utilisation qu’il est d’ailleurs plus sollicité. Même si Lua n’est pas un langage orienté objet (parce qu’il est procédural), il est quand même possible de simuler certaines fonctionnalités de la POO avec quelques bidouilles. Nous apprendrons à le faire.

Pack cadeau de bienvenue

Quelques particularités du langage Lua par rapport à d’autres langages

Mon premier contact avec le langage Lua a été à la fois agréable et très surprenant. Je me retrouvais à faire des choses qu’il était impossible de faire dans d’autres langages et que Lua rendait possibles. Pour une personne comme moi qui venait des langages stricts comme le C++ et Java, le fait de me retrouver aussi soudainement en face de la flexibilité de Lua m’a un peu inquiété au début en ce sens que j’ai eu peur de perdre les bonnes habitudes et la rigueur acquises avec mes langages de prédilections. Après un laps de temps, j’ai facilement réussi à me faire à cette flexibilité sans pour autant sacrifier mes habitudes dans les autres langages. Voici ci-dessous certaines particularités de ce langage. Tout comme moi au début, vous pourriez aussi être surpris par certaines d’entre eux si vous venez d’un autre langage plus structuré.

  • Contrairement à d’autres langages comme le C, C++, C# ou Java par exemple, il n’y a pas de fonction principale (fonction main) en Lua. Il n’y a pas non plus de structure obligatoire de base à respecter. Il vous suffit de créer un fichier source Lua et de commencer à écrire directement du code. Des langages comme Python sont pareils et n’imposent pas une structure de base à suivre.
  • En Lua, vous pouvez créer une (ou des) fonction (s) à l’intérieur d’une fonction existante.
  • Par défaut, toutes les variables en langage Lua sont des variables globales. Cela est valable même pour une variable déclarée à l’intérieur d’une fonction. Eh oui, vous avez bien lu. Une variable déclarée dans une fonction peut être utilisée à l’extérieur de la fonction à moins que son nom soit précédé du mot spécial « local ». Ainsi, toute variable non déclarée avec le mot « local » est une variable globale en Lua peu importe son emplacement.
  • Tout comme les variables, en Lua, les fonctions peuvent être locales ou globales. Elles sont globales par défaut.
  • En Lua, il n’existe qu’une seule structure de données qui permet de créer à la fois les tableaux (à une et deux dimensions), les piles, les files et les tableaux associatifs.
  • Dans d’autres langages, nous sommes habitués à ce qu’une fonction puisse retourner des données avec l’instruction « return ». En Lua, en plus des fonctions, un fichier source d’extension « .lua » peut aussi retourner des données. Je n’avais jamais vu ça avant de toucher à ce langage et j’avoue que la sensation est bizarre au début 😉
  • L’ajout du point-virgule à la fin d’une ligne de code en Lua est facultatif. Que vous le mettiez ou pas, Lua ne vous dira rien et exécutera sans soucis votre code.

Des particularités comme celles présentées ci-dessus, vous en trouverez en Lua. Comme quoi, ça ne fait pas de mal de sortir un peu de la zone de confort dans laquelle on s’est installé avec l’utilisation des autres langages de programmation qui se ressemblent.

Dans un prochain article, nous allons aller faire un tour sur la lune. Euh… je veux dire attaquer la première partie de votre initiation au langage Lua. 🙂 Pour les plus pressés, vous pouvez faire un tour sur les liens ci-dessous.

Ressources en ligne pour apprendre le langage Lua

Des questions ? Déposez-les dans les commentaires ci-dessous. À bientôt

 

3 réponses

  1. Al dit :

    Bonjour
    Merci beaucoup pour cet article. Vu que le langage Lua est utilisé dans l’informatique embarquée, est il possible d’utiliser Corona pour développer des applications pour les tableaux de bord de voitures par exemple?

    • Eric Dodji dit :

      Hello
      La réponse à cette question est non parce que Corona ne vise pas l’embarqué mais uniquement les plateformes mobiles et desktop.
      Il y a des API spécialisées utilisant Lua pour divers besoins (comme le cas de l’embarqué) dans des domaines totalement différents les uns des autres. Il se glisse facilement partout

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
%d blogueurs aiment cette page :