代码之家  ›  专栏  ›  技术社区  ›  Atilla Filiz

使用C++和脚本编写在一起

  •  3
  • Atilla Filiz  · 技术社区  · 14 年前

    我的业余爱好是开发简单的游戏。对于我的新项目,我希望一些部分可以脚本化。我熟悉Python,但不介意学习新语言。问题是:

    我计划在C++中实现路径查找、视野、碰撞检测等,但是希望使用AI状态机脚本脚本事件。这种工作使用什么类型的结构? 我想我可以让一个C++程序运行一个Python进程,它又调用C++方法,但是看起来效率很低。另一个想法是开发一个从python调用的库,这听起来也不是很有吸引力。执行此操作的常规方法是什么(除了编写自己的语言和解析器?)我听说Lua在嵌入C程序中很受欢迎。

    4 回复  |  直到 14 年前
        1
  •  6
  •   Jack Kelly    14 年前

    从我的个人经验来看,两者都是 lua tcl 有出色的C API用于嵌入。两种语言都很简单。如果您正在编写命令界面,我可能会说使用tcl,但是如果您只是使用嵌入式解释器,我建议您使用lua。考虑到使用C++,您可能还需要查看 luabind API,我听说了一些好消息。

    对于人工智能脚本或其他状态机类型的东西, this blog post 由泽德肖是一个很好的阅读。基于协程的人工智能代码对于复杂的脚本来说看起来更好,而不是管理大量的状态及其转换。

    如果你用的是python,你可能会更好 extending rather than embedding .

        2
  •  4
  •   Ignacio Vazquez-Abrams    14 年前

    运行一个python进程?诺欧…

    Embed .

        3
  •  3
  •   flitzwald    14 年前

    根据个人经验,我可以强烈推荐谷歌的javascript引擎V8。它的性能非常好,用C++编写,很容易嵌入,没有其他依赖项和一个非常漂亮的本地接口。

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

        4
  •  2
  •   srean    14 年前

    我同意TCL和Lua是最容易嵌入C/C++应用程序中的一种。主要是因为这从一开始就是一个设计决策。另一种为嵌入而设计的语言是 Guile.

    如果您有兴趣在C++应用程序中嵌入脚本语言,请参见 Swig . Swig可以自动为许多脚本语言(包括已经知道的python)创建粘合代码。它的主要优点是可以处理许多不同的脚本语言。