Par script ici, je veux dire non seulement de mettre des données de configuration dans un script, mais de scripter des parties du projet comme certaines méthodes de classe, tester une boucle de jeu spécifique, etc. Ce ne serait pas seulement pour accélérer le développement, mais aussi permettre aux joueurs de voir certaines d'entre elles des scripts pour peaufiner certains aspects du jeu.
Certains langages comme Lua ont des wrappers comme luabind, mais quand je l'ai utilisé dans le passé, il avait des problèmes car il ne supportait pas la redéfinition de méthode dans un contexte d'héritage.
Quelles sont vos suggestions de langue / wrappers à utiliser ou à ne pas utiliser?
la source
J'ai aimé Chaiscript ; Je ne l'utilise pas depuis très longtemps, mais cela semble assez solide jusqu'à présent.
Contrairement à Python ou lua, il est construit à partir de zéro pour être utilisé avec C ++. Le processus de reliure semble beaucoup plus propre qu'avec luabind / etc.
Voici le résumé du site:
la source
Je recommanderais Lua .
Python est également très populaire. De nombreux moteurs de jeu en vedette (Blender, par exemple) l'utilisent.
C ++ :: Boost a une bibliothèque pour travailler avec Python.
J'ai lu sur Squirrel , mais je ne l'ai pas utilisé.
Vous pouvez lire cette présentation de Game Engine . Il y a une
Scripting
colonne. Vous pouvez voir que Lua et Python sont les langages de script les plus populaires.la source
Pourquoi ne pas construire le vôtre?
Si vous avez le temps, la patience et la volonté d'apprendre, vous pouvez toujours essayer de développer votre propre moteur de script avec toutes les fonctionnalités et la syntaxe dont vous avez besoin.
Les avantages
Désavantages
Temps. Peu de gens l'ont. Si vous avez besoin de quelque chose MAINTENANT, essayez un moteur déjà existant (comme l'un de ceux déjà suggérés).
La vitesse. De nombreux moteurs de script existants sont très rapides - une solution personnalisée peut ne pas être aussi rapide.
Taille de l'équipe. De nombreux moteurs de script existants ont de plus grandes équipes de personnes travaillant sur la base de code, qu'il s'agisse d'équipes privées ou de bénévoles mondiaux, il y a quelque chose à dire pour le code qui est vérifié et revérifié par de nombreuses autres personnes.
Un moteur de script nécessite une certaine planification initiale pour être efficace. Il y a également beaucoup de travaux préparatoires à implémenter qui peuvent ne pas avoir du tout à voir avec le moteur de script réel.
Ce n'est en aucun cas une liste exhaustive. Si vous devez apporter une grande quantité de modifications au back-end d'un langage de script existant pour obtenir les fonctionnalités que vous souhaitez, OMI, vous devriez probablement rechercher un autre moteur qui correspond mieux à vos besoins ou simplement créer le vôtre.
Je me rends compte que les gens aiment tourner autour de "la paresse" et "ne pas réinventer la roue" mais je pense qu'il y a quelque chose à dire sur la façon dont ces choses sont faites. Et une implémentation spécifique sera probablement meilleure pour votre projet qu'une implémentation générique.
«Créer des systèmes de script en C ++» semble être le ou les articles préférés que les gens partagent lorsqu'ils discutent du sujet: http://www.gamedev.net/reference/list.asp?categoryid=76
la source
J'ai essayé Lua, Python, Scheme et Squirrel. Lua a travaillé le mieux; il a une communauté plus large et un meilleur support que Squirrel, et des caractéristiques de mémoire et de performances bien meilleures que Python. Le schéma a très bien fonctionné aussi, et a un très petit interprète, mais il était difficile pour les concepteurs de tourner la tête autour d'un langage fonctionnel.
la source
Voici des liens vers luabind et tolua, wrappers pour lua / c ++
http://luabind.sourceforge.net/
http://www.tecgraf.puc-rio.br/~celes/tolua/
la source