一起使用C++和脚本

Ati*_*liz 3 c++ scripting embedding hybrid

我正在开发简单的游戏作为一种爱好.对于我的新项目,我希望某些部分可以编写脚本.我熟悉python,但不介意学习新语言.这是一个问题:

我计划在C++中实现路径查找,视野,碰撞检测等,但希望将脚本用于AI状态机,脚本事件.什么类型的结构用于这种工作?我想我可以让一个C++程序运行一个python进程,然后调用C++方法,但它似乎效率低下.另一个想法是开发一个从python调用的库,这听起来也不是很有吸引力.这样做的常规方法是什么(除了编写我自己的语言和解析器?)我听说lua很适合嵌入到C程序中.

Jac*_*lly 6

根据我的个人经验,luatcl都有非常棒的C API用于嵌入.两种语言都非常简单.如果您正在编写命令界面,我可能会说使用tcl,但如果您只是使用嵌入式解释器,我建议使用lua.鉴于您正在使用C++,您可能还想查看luabind API,我听说过它的好消息.

对于AI脚本或其他状态机类型的东西,Zed Shaw的这篇博文是一本很好的读物.基于协程的AI代码对于复杂的脚本看起来要好得多,而不是管理大量的状态及其转换.

如果您正在使用python,那么扩展而不是嵌入可能会更好.