Quelle est la bibliothèque recommandée pour utiliser Lua à partir de C ++? [fermé]

13

Je prévois actuellement comment intégrer les scripts Lua dans mon moteur de jeu 2D, et je voudrais aller directement à la solution la plus adéquate pour exposer les classes et les objets C ++.

J'ai lu ceci (si cela peut vous aider): http://lua-users.org/wiki/BindingCodeToLua

Si vous avez un meilleur langage de script à recommander, allez-y; D

Toute aide est la bienvenue, j'ai besoin de choisir la meilleure solution pour commencer à mettre en œuvre Merci

Grimshaw
la source

Réponses:

4

Si la qualité principale de votre langage de script est une liaison facile, essayez AngelScript . Il peut appeler des fonctions enregistrées directement sans avoir besoin d'écrire des fonctions proxy, et il prend en charge les conventions d'appel d'une grande variété de compilateurs. Le langage lui-même est similaire à c / c ++, ce qui peut être une bonne ou une mauvaise chose, selon.

Jari Komppa
la source
7

J'ai entendu de bonnes choses sur LuaPlus . Il encapsule l'API C de bas niveau dans une API C ++ de niveau supérieur.

Le canard communiste
la source
4

Tant que vous effectuez une reliure raisonnablement conventionnelle, LuaBind fera tout ce dont vous avez besoin. Les classes et les fonctions de liaison ont tendance à être un accord d'une ligne par fonction. Si vous souhaitez un exemple, voici le fichier applicable du moteur de jeu sur lequel je travaille (recherchez le module (L) pour le démarrage de l'interface LuaBind, DontKillMeBro <> est un petit système que j'ai monté pour me laisser plus précisément la destruction d'objets temporels pour certains objets sensibles.)

Si vous voulez quelque chose de plus complexe, vous devrez probablement utiliser l'API Lua réelle. Heureusement, l'API Lua est relativement simple.

ZorbaTHut
la source
1

Nous utilisons OOLua pour Pioneer . Il donne un tas de macros que vous utilisez pour lier les "classes" Lua aux classes C ++. Il a un peu de puissance mais est assez simple. Je n'en ai pas utilisé d'autres, je ne peux donc pas commenter la comparaison. Voici un exemple .

Rob N
la source
1

J'irais haut la main avec les bibliothèques précompilées de Nuclex et inclurais des fichiers pour LuaBind. (c'est-à-dire si vous travaillez avec VS2008)

Puisque LuaBind vous oblige à le construire avec des bibliothèques et des outils Boost, ce paquet vous fera gagner un temps précieux (et peut-être quelques maux de tête, qui sait). Je dirais que vous seriez en mesure de faire fonctionner Lua en moins d'une heure si vous savez ce que vous faites.

Vous pouvez également envisager de changer la DLL Lua par défaut en une DLL LuaJIT si vous recherchez un petit gain de performances . Il suffit de compiler la bibliothèque et de remplacer la lib / dll avec laquelle vous créez un lien dans votre projet principal, donc c'est assez facile.

Avec ça, bonne chance!

tomzx
la source