Frage

Ich entwickle einfache Spiele als Hobby. Für mein neues Projekt, möchte ich einige Teile skriptfähig sein. Ich bin vertraut mit Python aber nicht dagegen, neue Sprachen zu lernen. Hier ist die Frage:

Ich plane Weg zu finden, Field-of-Vision, Kollisionserkennung usw. in C ++ zu implementieren, sondern will Skripte für AI Zustandsmaschinen, gescriptete Ereignisse verwenden. Welche Art von Struktur ist für diese Art von Arbeit genutzt? Ich stelle mir vor ich kann ein C ++ Programm machen ein Python-Prozess ausgeführt werden, was wiederum ruft C ++ Methoden, aber es scheint ineffizient. Eine weitere Idee ist es, eine Bibliothek zu entwickeln, aus Python genannt werden, die nicht sehr attraktiv entweder klingt. Was ist die regelmäßige Art und Weise, dies zu tun (außer meiner eigenen Sprache und Parser schreiben?) Ich habe gehört, lua für die Einbettung in C-Programme sehr beliebt ist.

War es hilfreich?

Lösung

Aus meiner persönlichen Erfahrung, die beide lua und TCL hat fantastisches C APIs zum Einbetten. Beide Sprachen sind sehr einfach. Wenn Sie eine Befehlsschnittstelle schreiben, würde ich wahrscheinlich mit tcl gehen sagen, aber wenn Sie nur einen eingebetteten Interpreter, würde ich lua empfehlen. Da Sie mit C ++, könnten Sie auch aussehen wollen in den luabind API, ich habe gute Dinge über sie gehört.

Für AI-Scripting oder andere Zustandsmaschine vom Typ Dinge, diesem Blog-Eintrag von Zed Shaw ist ein gutes Buch. Coroutine-basierten Code AI kann viel schöner für komplexe Skripte aussehen, anstatt einen enormen Haufen von Staaten die Verwaltung und deren Übergänge.

Wenn Sie Python verwenden, könnten Sie besser dran erstreckt, anstatt das Einbetten .

Andere Tipps

Führen Sie einen Python-Prozess? Nooo ....

einbetten .

Aus eigener Erfahrung kann ich sehr empfehlen Javascript-Engine V8 von Google. Es ist sehr performant, in C ++ geschrieben, ist trivial einfach zu einbetten, hat keine andere Abhängigkeiten und eine wirklich schöne native Schnittstelle.

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

Ich bin damit einverstanden, dass Tcl und Lua ist eine der am einfachsten zu einbetten in einer c / c ++ Anwendung. Vor allem, weil das war eine Design-Entscheidung von Anfang an. Eine andere Sprache, die für die Einbettung entworfen wurde, ist Guile.

Wenn Sie in das Einbetten einer Skriptsprache in Ihrem c interessiert sind ++ Anwendung zu sehen Swig . Swig können die Glue-Code für eine Reihe von Skriptsprachen einschließlich Python, die Sie bereits wissen, automatisch erstellen. Der Hauptvorteil ist, dass es viele verschiedene Skriptsprachen behandelt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top