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

Langage C++ Discussion :

C++ + script quelle script choisir ?


Sujet :

Langage C++

Vue hybride

Driktheviking C++ + script quelle script... 02/05/2011, 06h23
pyros Salut, Dans mon ancienne... 02/05/2011, 09h35
oxyde356 Le LUA est très bien aussi et... 02/05/2011, 10h31
Blustuff Ce n'est pas vraiment le... 12/05/2011, 10h26
Klaim C'est une érreur fondamentale... 13/05/2011, 17h57
Klaim J'ai oublié d'ajouter: ... 13/05/2011, 18h12
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 19
    Par défaut C++ + script quelle script choisir ?
    Tout d’abord bonjour.

    Voila mon problème:
    Pour passer le temps et développer un peu mes compétence j'ai choisie de crée un petit moteur de jeu a base de c++\sfml et un langage de script pour gérer tous ce qui concerne le déroulement du jeu\événement.

    Et c'est là que cela coince car je n'ai absolument aucune expérience dans un quelconque langage de script et en fouillant un peu j'ai rapidement entendue parler de lua,python et autre donc je viens ici pour quelque conseille qui si possible devrai tenir compte des point suivant :

    • Facile d'utilisation
    • Possibilité de créer de nouvelle classe a partir du script ( exemple dans un rpg avec l'éditeur pouvoir cree de nouvelle classe de personnage qui heriterai d'une classe plus générique.
    • j'ai entendu parler de c# qui pourrai semble t-il servir de script mais je n'ai rien trouver de concret es-ce possible ?
    • j'ai vus le tuto lua sur le site mais malheureusement on ne peut que manipuler des classe et non pas en créer avec le binding présenter (lunar)


    Merci d'avance.

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 617
    Par défaut
    Salut,

    Dans mon ancienne boite on utilisait python pour scripter une appli en c++. Le binding python/C++ est très simple parait-il et je n'ai jamais eu d'écho négatif de ce langage.

  3. #3
    Membre très actif Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Par défaut
    Le LUA est très bien aussi et souvent utiliser pour scripter les moteurs de jeux vidéo (par exemple Supreme Commander qui est très largement scripté). De plus il existe de nombreux binding qui te permettent de faire ce que tu veux.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Ce n'est pas vraiment le forum adapté pour cette question qui n'a absolument rien à voir avec le c++. D'abord, une chose essentielle : ce n'est pas parce que beaucoup de gens utilisent un langage que ce langage est nécessairement bon, ou qu'il est le plus adapté à ce que tu veux faire.

    Il y a d'autres langages de script, moins connus : squirrel, game monkey. Ils sont fait spécifiquement pour le développement de jeu mais l'intérêt n'est pas évident.

    L'enjeu du choix d'un langage ou d'un autre n'est pas très important. Si c'est un projet personnel, plus important que tout c'est que tu aimes programmer avec ce langage. Même si le langage est pourri, le fait que tu aimes développer avec changera tout et le placera en première place.

    Quelques indices peut être pour t'aider à chercher :

    Python : Langage très innovant, un certain nombre de concepts assez intéressants peuvent t'aider, mais il ne faut pas que tu sois réfractaire à l'indentation comme syntaxe.
    LUA : Langage simple dont la puissance est bâtie sur l'ajout de modules. (Par exemple, il faut un module pour utiliser des classes) On considère que c'est la grande puissance de LUA, mais note que c'est en fait à de nombreux égards un inconvénient car les features classiques des langages ne sont jamais aussi bien intégrées par un module LUA que s'ils avaient été dans le noyau du langage.
    Squirrel : Inspiré par LUA et Python majoritairement, mais avec une syntaxe C-like. (probablement l'argument marquant pour ceux qui l'ont choisi) Il y a de bons choix mais le langage (et les compilateur/VM) manquent de maturité et de pérennité.
    Game Monkey : Je n'ai pas encore essayé celui là. Il a, il me semble un certain nombre de features intéressantes, notamment l'intégration d'automates qui sont monnaie courante dans les jeux.

    A titre personnel, je pense que plus le projet est gros (et un moteur de jeux est gros) moins il est intéressant d'utiliser LUA au profit de langages plus complexes comme Python. La légereté de LUA ne devient plus un argument intéressant, et on regrettera l'absence d'un certain nombre de constructions des autres langages.

    Et enfin, j'aimerais signaler le Unreal Script, non pas comme langage à utiliser puisqu'il est il me semble nécessairement lié au Unreal Engine, mais comme langage curieux à aller voir puisqu'il innove dans l'intégration de concepts qui sont centraux dans le développement des jeux commerciaux, et qui ont de grande chances d'être utiles dans n'importe quel jeux : on peut se demander comment faire les choses aussi bien dans d'autres langages.

  5. #5
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Ce n'est pas vraiment le forum adapté pour cette question qui n'a absolument rien à voir avec le c++.
    C'est une érreur fondamentale : le choix du language de script dépends énormément du language sur lequel l'application scriptée va reposer.

    Surtout dans le cas de C++, il y a des choses languages plus ou moins adaptables.

    Voilà ce que j'ai accumulé comme connaissances :

    Lua

    Utilisé massivement dans l'industrie du jeu vidéo, pour plusieurs raisons.

    1. c'est très léger niveau mémoire
    2. c'est très facile à intégrer : tu copies colle les sources dans le projet et hop c'est pret. Ajoute LuaBind pour aider au binding.
    3. c'est rapide : une des language de script à embarquer les plus rapides du moment
    4. la syntaxe est minimaliste : ce qui est souvent un avantage pour mettre en place un dialecte spécifique à l'application.

    Ce dernier point est aussi un handicap parceque même si il est possible d'ajouter des nouveaux paradigmes au languages (comme l'orienté objet), il est parfois préférable d'avoir un language moins minimaliste tout en restant puisssant.

    D'où les alternatives.

    Python

    C'est un language carrément super puissant et facile à suivre.

    En revanche, ça n'a pas été pensé dés le départ pour être embarqué dans une application. Du coup le coup en mémoire peut être couteux, par exemple si le jeux vise la console. Sur PC ça devrait aller, on perds juste quelques megas.

    La vitesse n'est pas son fort mais généralement on ne verra pas de différence sauf si on met beaucoup de code purement mécanique de gameplay dedans.

    L'intégration au C++ est couteuse : Boost.Python n'est pas si trivial que ça et implique boost (ce qui est parfois innacceptable).

    Si tu veux y aller avec une solution admise et "simple", choisis l'un de ces deux là.

    Si la syntaxe de Lua ou de Python ne te suffit pas, ou si tu veux une meilleure intégration à C++, les autres alternatives sont interessantes :

    Squirrel, AngelScript, Game Monkey, Io

    Tous interessants, marchent globalement comme des Lua avec syntaxe "a la javascript" ou "a la c++" pour la plupart.
    Ils sont plus couteux en mémoire et vitesse que Lua mais troquent cela contre une syntaxe plus "complete".

    Pour moi, ils se valent tous sauf sur le plan syntaxique.

    ChaiScript

    Un des deux seul languages que je connaisse qui sont explicitement fait pour profité d'être embarqué dans une application spécifiquement C++.

    En gros, ce sont juste des headers, donc tu inclus et c'est intégré. Pour le binding, ça profite des mêmes techniques que pour LuaBind, donc c'est très facile.

    Pour la syntaxe, ça ressemble pas mal a du C++ symplifié, donc ça peut rebuter selon le type d'utilisateur que tu vas avoir dans tes scripts.

    Je te conseil de jetter un oeil parcequ'il est très prometteur.


    Falcon

    Celui ci est à mon avis le plus intéressant mais est tellement peu connu que je ne peut le recommandé qu'à ceux qui maitrisent. En plus ils sont en train de sortir une nouvelle version carréement mieu que ce qu'il y a actuellement de dispo.

    En gros, syntaxe qui ressemble à Python ou Ruby, mais avec bien plus de paradigms.
    C'est plus lourd que Lua niveau mémoire, mais moins lourd que Python.
    C'est totallement pensé pour l'intégration avec C++ (le language et tous les modules sont implémentés entièrement en C++).

    Par contre le binding n'est pas forcément toujours super évident parcequ'ils ont une aproche non-naive du problème. La nouvelle version doit simplifier l'intégration mais t'obligera a comprendre ce que tu es exactement en train de faire.

    Cela a des avantages si ton application va être utilisée pour beaucoup de choses subtiles (comme pour un des jeux que je fais), mais sinon ça reviens à avoir un Python en "pensé pour l'intégration C++".

    Et surtout : c'est aussi rapide que Lua à l'execution.

    Pour te donner une idée du type de choix :

    - pour un prototype de jeu rapidement développé, j'ai utilisé ChaiScript - dans le genre rapide à intégrer ya pas mieu;
    - pour un jeu développé sur NintendoDS, j'ai utilisé Lua (pour limiter les coups perfs/mémoire). (cela dit ça peut être important sur certains jeux pc aussi évidemment)
    - pour un "gros" jeu sur lequel je travaille, j'ai besoin d'un environnement de scripting plus poussé mais totalement pensé pour l'intégration au code C++ du jeu, donc j'ai choisis Falcon. C'est un choix un peu plus difficile à faire parceque j'ai hésité avec Python. La vitesse d'execution et l'intégration au C++ m'ont fait préféré Falcon. Je pense qu'il est interessant de suivre ce language au moins de loin quand ont veux avoir un language de script avec C++ sous la main.

  6. #6
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    J'ai oublié d'ajouter:

    Dans ton cas spécifique, si je ne veux pas me prendre la tête et selon ce que tu décris, je prendrais ChaiScript :

    - tu l'intègres très très facilement;
    - tu peux créer (et même hériter) des classes;

    Seul éventuel problème : il te faut (certaines libraries de) boost. Si tu ne l'utilises pas, ça te fait une dépendance de plus.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Citation Envoyé par Klaim Voir le message
    C'est une érreur fondamentale : le choix du language de script dépends énormément du language sur lequel l'application scriptée va reposer.
    Ce n'est pas ce que j'ai dit. Ce n'est pas parce que le choix du langage de script dépend du langage avec lequel on l'interface que la question doit être posée sur le forum de ce même langage. Le lien est uniquement pratique et n'a pas à voir avec le langage en lui même.

Discussions similaires

  1. Quel script dois-je choisir pour faire un site pour une entreprise ?
    Par omaritto dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 01/08/2012, 12h00
  2. [Spip] Quel script de CMS choisir : Spip ou TYPO3 ?
    Par beni56 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/08/2010, 09h57
  3. [Forum] Quel script de forum choisir ?
    Par DKreeK dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 20/01/2008, 21h13
  4. [Forum] Quel script de forum choisir ? PhpBB ou SMF ?
    Par Invité dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/09/2007, 14h51

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