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 :

Langage de script pour un jeu vidéo


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Langage de script pour un jeu vidéo
    Bonjour!
    J'ai un petite question (oui, encore ) à propos des langages de script avec C++. J'aimerai créer un petit RPG en 2D et je sais qu'il ne faut pas tout coder en dur, car c'est très sale. Donc j'aimerai me tourner vers un langage de script et l'interfacer avec le C++.

    J'ai choisi Python, et je pense que je vais utiliser Python pour cela. Quelqu'un pourrait un peu me parler de comment on utilise les langages de script pour un jeu vidéo ? C'est surtout le principe en fait, comment sont rédigé les scripts ? Genre un:

    if personnage.getX() = 3 then
    dialogue 'Hello World!' # Affiche la boite de dialogue du jeu.

    Est-ce aussi simple ? On peut aussi faire:

    if personnage.inventaire.get('potion') > 0 then
    personnage.heal.increase(CONSTANTE.POTION_HEAL)
    personnage.inventaire.use('potion')

    Ou alors ce n'est pas aussi simple ?
    Je sais que mes questions sont vagues, mais il faut bien commencer par ce genre de question pour pouvoir voir un peu comment utiliser un langage de script.

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Tout dépend des fonctionnalités que tu exposes par ton moteur. Ces 2 exemples sont tout à fait possible
    Si tu n'as jamais touché à un moteur de script, tu devrais commencer par jeter un oeil à certain, tel l'éditeur NWN ou encore celui de Fallout 3.

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 163
    Points
    163
    Par défaut
    Python est un bon choix, LUA en est un autre très bon également

    Dans un jeu effectivement il y a une partie dite "scriptée". Le plus souvent ce ne sont pas des programmeurs qui vont y toucher, mais le level-designer. Le script doit être facile à utiliser et ressemble à ce que tu as pu mettre comme exemple (en plus compliqué bien sûr). Il arrive aussi très régulièrement que le GUI (l'interface) soit faite en langage de script (par exemple pour positionner les boutons sans avoir besoin de recompiler l'application).

    Il comprend deux aspect : le script pur et dur, les conditions, les tests, les boucles etc., et le script faisant appel à des traitements compilés en c++ (pour ton exemple).

    Par exemple, en c++ tu vas créer une fonction qui jouera une animation pour un personnage (dont les identifiants pour l'un comme pour l'autre sont passés en paramètre). Tu utilisera ensuite une librairie qui va faire une interface entre le script et le code de telle façon que dans le script (python par exemple) tu appels une fonction dont il a été prévu un équivalent c++.

    Concrètement, en script tu pourra faire des tests spécifiques à ton level (Si le joueur entre dans la zone A et a tué le PNJ toto alors .. ) et déclencher des traitements génériques prévus en c++ ( PJ joue l'animation "youpiii" ).

    Normalement tu devrais pouvoir un peu tout faire en langage de script, mais dans le jeu il va te falloir choisir quoi compiler, et quoi scripter, car les performances tu t'en doutes ne sont pas les même.

  4. #4
    Futur Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Pour mon propre RPG 2D, j'ai choisi Lua. Quels sont les avantages de Python par rapport à Lua (sachant que j'utilise le C avec la SDL) ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour vos réponses qui sont extrêmement intéressante.
    Je pense que vous avez très bien répondu, et j'y vois plus clair maintenant.

    Pour répondre à Rayman3640:
    Je ne pense pas qu'il y ait vraiment d'avantage à utiliser l'un ou l'autre, c'est surtout une question de préférence. Personnellement je développe en // avec Python, donc autant que je l'utilise. J'aurai préféré Ruby, mais j'ai regardé, et utiliser Ruby avec C++ ça a l'air vraiment chiant.

  6. #6
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    C'est sûr qu'il n'y a pas encore de boost.ruby

    Pour les différences, j'en vois trois :
    * le langage en lui-même bien sûr,
    * les SL de chacun : en Python tu as une foultitude de module existant pour gérer à peu près tout et n'importe quoi. Lua est plus pauvre (normal, son but est totalement différent)
    * L'accessibilité des infos et module tiers est infiniment meilleur (à mon goût) avec python qu'avec lua => pour trouver des modules lua, vaut mieux utiliser google sur le site/wiki officiel que d'essayer de fouiller les deux sites tellement c'est un foutoir (c'est un wiki, et il en partage donc les défauts).

  7. #7
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 163
    Points
    163
    Par défaut
    D'un autre côté si c'est pour du scripting de jeu la "pauvreté" de LUA suffit largement et le rend même un poil plus rapide à exécuter. De plus, l'utilisation de modules etc. rend le scripting du jeu beaucoup plus complexe et inaccessible aux level-designers.

    Si par contre le script tient une part importante et l'on souhaite tout miser dessus, alors qu'à cela ne tienne, Python sera merveilleux

    Dernière option, c'est juste pour toi pour voir un peu ce que l'on peu faire en script dans un jeu, dans ce cas je te conseil celui des deux qui a la communauté la plus importante, et donc le plus de chance de trouver une personne pour résoudre un problème, Python.

  8. #8
    Futur Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos réponses, je vais regarder un peu ce que Python a dans le ventre (en gros si c'est plein de détails inutiles ou si ça peut m'aider dans mon projet).

Discussions similaires

  1. Quel langage de script pour s'interfacer avec C++ ?
    Par dwarfman78 dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 22/08/2008, 18h06
  2. Quels revenus pour un jeu vidéo?
    Par gamerome dans le forum Projets
    Réponses: 26
    Dernier message: 24/01/2008, 17h16
  3. [langage] perl script pour balancer un B-arbre
    Par RonMaster dans le forum Langage
    Réponses: 5
    Dernier message: 22/10/2004, 17h35
  4. [langage] cherche script pour formater une chaine
    Par MASSAKA dans le forum Langage
    Réponses: 7
    Dernier message: 12/11/2003, 12h18

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