一起使用C ++和脚本

我正在开发简单的游戏作为一种爱好。对于我的新项目,我希望某些部分可以编写脚本。我熟悉python,但不介意学习新语言。这是一个问题: 我计划在C ++中实现路径查找,视野,碰撞检测等,但希望将脚本用于AI状态机,脚本事件。什么类型的结构用于这种工作? 我想我可以让一个C ++程序运行一个python进程,然后调用C ++方法,但它似乎效率低下。另一个想法是开发一个从python调用的库,这听起来也不是很有吸引力。这样做的常规方法是什么(除了编写我自己的语言和解析器?)我听说lua很适合嵌入到C程序中。     
已邀请:
根据我的个人经验,lua和tcl都有非常棒的C API用于嵌入。两种语言都非常简单。如果您正在编写命令界面,我可能会说使用tcl,但如果您只是使用嵌入式解释器,我建议使用lua。鉴于您正在使用C ++,您可能还想查看luabind API,我听说过它的好消息。 对于AI脚本或其他状态机类型的东西,Zed Shaw的这篇博文是一本很好的读物。基于协程的AI代码对于复杂的脚本看起来要好得多,而不是管理大量的状态及其转换。 如果您正在使用python,那么扩展而不是嵌入可能会更好。     
运行Python进程?拿去.... 嵌入。     
根据个人经验,我强烈推荐谷歌的Javascript引擎V8。它非常高性能,用C ++编写,非常容易嵌入,没有其他依赖项和非常漂亮的本机接口。 http://code.google.com/p/v8/     
我同意Tcl和Lua是最容易嵌入c / c ++应用程序之一。主要是因为这是一个从一开始就做出的设计决定。另一种用于嵌入的语言是Guile。 如果您有兴趣在c ++应用程序中嵌入脚本语言,请查看Swig。 Swig可以自动为许多脚本语言创建粘合代码,包括您已经知道的python。主要优点是它可以处理许多不同的脚本语言。     

要回复问题请先登录注册