IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Interêt du LUA


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 15
    Points
    15
    Par défaut Interêt du LUA
    Bonjour à tous,

    En parcourant divers forums, j'ai vu des gens qui disaient qu'ils utilisaient le langage LUA pour leur jeu vidéo (et leur jeu est pourtant développé en C++)

    Aussi je me demandais à quoi servait le LUA dans un jeu vidéo ? Vu que ce n'est pas le langage principal utilisé pour le jeu en question (C++) je ne vois pas a quoi ça pourrait bien servir...


    Merci !

  2. #2
    screetch
    Invité(e)
    Par défaut
    le lua ne se compile pas, il est plus facile a lire et modifier, on peut l'utiliser pour prototyper. Ou pour faire du code de haut niveau, comme du code gameplay.
    Le moteur du jeu fournit des briques que le LUA assemble a sa manière, en gros.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Je ne comprends rien...

  4. #4
    Membre averti Avatar de Pat_AfterMoon
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 223
    Points : 401
    Points
    401
    Par défaut
    Je ne suis pas très connaisseur de ce langage de script mais son intérêt vient probablement plus des "game engines" qui l'utilisent, plutôt que du langage en temps que tel.

    Dixit wikipedia, c'est utilisé pour "modder" l'interface de World of Warcraft, pour le moteur de Far Cry ...etc.

    Pour la plupart des jeux récents tu as un moteur qui est généralement en C++, et une partie gameplay qui est écrite dans un langage de plus haut niveau : Unreal Script, LUA, C# ...etc.

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Points : 165
    Points
    165
    Par défaut
    Mieux vaut donner un exemple concret :

    Imaginons que tu codes un jeu de plate forme (en C++ ou autre langage compilé). Tu as défini des constantes pour déterminer la vitesse de ton personnage, la hauteur de son saut et d'autres paramètres, tu as défini une méthode pour déterminer le comportement de tes ennemis. Tu as compilé les sources (ce qui peut prendre un certains temps). Tu lances ton jeu, tu le testes. Maintenant, admettons que tu veuilles modifier un paramètre, tu le modifie dans le code source, tu recompiles, le jeu se lance, avec des phases de chargement de textures etc, ce qui n'est pas tres pratique.

    Le LUA étant un langage de scripting, donc interprété, il n'y a pas de phase de compilation, donc, tu modifies les paramètres de saut, de vitesse etc en temps réel. bien sur, tu pourrais te constituer un petit "éditeur" lié a ton jeu pour le paramétrer, mais avec le scripting, tu peux également modifier des fonctions en temps réel, donc des comportements.

    Voila, j'espère ne pas avoir dis de bêtises et t'avoir éclairé.

  6. #6
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Citation Envoyé par Pat_AfterMoon Voir le message
    Je ne suis pas très connaisseur de ce langage de script mais son intérêt vient probablement plus des "game engines" qui l'utilisent, plutôt que du langage en temps que tel.
    Oui, mais ces moteurs n'ont pas choisi ce langage au hasard. Lua a plusieurs intérêts par rapport aux autres langages de script (Perl, Python, PHP...) : le langage est très simple. Il n'a pas beaucoup de fioritures (beaucoup moins que les autres), ce qui permet d'écrire facilement un interpréteur. L'interpréteur est donc très léger, facilement embarquable dans une application, y compris sur console. Le langage est simple (presque tout est fait à base de tables de hachage), a très peu de types de base, peu de constructions, et a une bibliothèque standard minimale. Cependant, le langage est suffisamment flexible et a une syntaxe assez concise, ce qui lui permet de bénéficier de pas mal des avantages des "langages de script".

    Un autre avantage est que l'on peut configurer facilement Lua. On peut lui dire quel type il utilise pour les nombres, on peut limiter les fonctions disponibles (par exemple, interdire aux scripts de faire de l'I/O), ce qui est très pratique quand on exécute du code non sûr. Les autres langages ne sont souvent pas prévus pour ça.

    Le LUA étant un langage de scripting, donc interprété, il n'y a pas de phase de compilation
    Comme tout langage, c'est possible de le compiler. Certaines implémentations de Lua compilent en bytecode avant d'interpréter le bytecode ; d'autres font de la compilation JIT pour améliorer encore les performances. Mais c'est vrai que ça permet facilement de modifier le code à la volée et que c'est un vrai avantage en temps de développement (bien sûr, Lua s'utilise avant tout sur les parties non critiques en terme de performance).

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Merci à tous pour vos réponses
    Donc par exemple, quand je modifies le contenu du fichier LUA, je peux le faire durant le déroulement du programme ? Et le programme s'adaptera automatiquement ?

    Et, ensuite, donc on utilise ce langage durant le développement, mais une fois le jeu sorti on ne laisse plus ces fichiers .lua ? Car qu'est ce qui empêche les joueurs de les modifier pour adapter le jeu à leurs envie ?

  8. #8
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2008
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2008
    Messages : 86
    Points : 355
    Points
    355
    Par défaut
    Ah non, on ne peut quand même pas modifier les fichiers Lua durant le déroulement du programme (du moins pas que je sache) !

    Et si tu veux empêcher les utilisateurs de les modifier, je ne sais pas trop faire mais tu peux les compiler (luac), c'est ce que font les jeux commerciaux

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Citation Envoyé par pierreyoda Voir le message
    Ah non, on ne peut quand même pas modifier les fichiers Lua durant le déroulement du programme (du moins pas que je sache) !
    Et pourquoi pas ? Qu'est-ce qui t'empêche de générer un script à l'exécution puis de l'utiliser ? Maintenant, si la question est de modifier un script après qu'il est chargé, c'est possible, mais ça ne fera rien jusqu'à ce qu'il soit rechargé. Donc, ça sera sans effet jusqu'au redémarrage de l'application (c'est déjà un grand avantage, plus besoin de recompiler).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/05/2006, 18h35
  2. Requete intertable
    Par ephemere2 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/04/2006, 09h55
  3. Moteur de FarCry [ programmer en .lua?? C++ ]
    Par R3G3N3R@T0R dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 21/02/2006, 21h25
  4. Hyperion : moteur 3D XML / Lua / GLSL
    Par Laurent Gomila dans le forum Moteurs 3D
    Réponses: 1
    Dernier message: 31/01/2006, 19h25
  5. [Struts] Interêt de typer les données d'un formulaire ?
    Par Gildas Huart dans le forum Struts 1
    Réponses: 9
    Dernier message: 21/04/2005, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo