Question

Je développe des jeux simples comme un passe-temps. Pour mon nouveau projet, je veux des pièces à scriptable. Je suis familier avec python, mais ne me dérange pas d'apprendre de nouvelles langues. Voici la question:

Je prévois de mettre en œuvre voie d'enquête, champ de vision, détection de collision, etc. en C ++ mais que vous voulez utiliser des scripts pour machines d'état AI, événements scriptés. Quel type de structure est utilisé pour ce genre de travail? J'imagine que je peux faire un programme C ++ exécuter un processus de python qui appelle à son tour les méthodes C ++, mais il semble inefficace. Une autre idée est de développer une bibliothèque être appelée de python, qui ne semble pas très attrayante soit. Quelle est la façon régulière de le faire (sauf pour écrire ma propre langue et parser?) J'ai entendu lua est populaire pour l'intégration dans les programmes C.

Était-ce utile?

La solution

De mon expérience personnelle, à la fois lua et tcl dispose d'API fantastiques C pour l'intégration. Les deux langues sont très simples. Si vous écrivez une interface de commande, je dirais probablement aller avec tcl, mais si vous êtes juste à l'aide d'un interprète intégré, je vous recommande lua. Étant donné que vous utilisez C ++, vous pouvez également regarder dans l'API luabind , Je l'ai entendu de bonnes choses à ce sujet.

Pour les scripts AI, ou d'autres choses machine de type Etat, ce blog par Zed Shaw est une bonne lecture. code basé Coroutine-AI peut sembler un plus agréable de beaucoup pour les scripts complexes, plutôt que de gérer un énorme tas d'états et leurs transitions.

Si vous utilisez python, vous pourriez être mieux extension plutôt que d'intégrer .

Autres conseils

Exécuter un processus Python? Nooon ....

Intégrer .

Par expérience personnelle, je peux recommander fortement le moteur Javascript V8 de Google. Il est très performant, écrit en C ++, est trivialement facile d'intégrer, n'a pas d'autres dépendances et une très belle interface native.

http://code.google.com/p/v8/

Je suis d'accord que Tcl et Lua sont l'un des plus faciles à intégrer dans une application c / c ++. Principalement parce que ce fut une décision de conception dès le début. Une autre langue qui a été conçue pour être intégrée est Guile.

Si vous êtes intéressé à l'intégration d'un langage de script dans votre application C ++ jeter un oeil à Swig. Rasade peut créer automatiquement le code de colle pour un certain nombre de langages de script, y compris python que vous connaissez déjà. Le principal avantage est qu'il gère de nombreux langages de script différent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top