这里所说的脚本不仅意味着将配置数据放入脚本中,还意味着对项目的某些部分进行脚本化,例如一些类方法,测试特定的游戏循环等。这不仅是为了加快开发速度,而且还允许玩家看到其中的一些内容。脚本来调整游戏的某些方面。
诸如Lua之类的语言具有诸如luabind之类的包装器,但是当我过去使用它时,它会遇到问题,因为它不支持继承上下文中的方法重新定义。
您对使用或不使用的语言/包装有什么建议?
这里所说的脚本不仅意味着将配置数据放入脚本中,还意味着对项目的某些部分进行脚本化,例如一些类方法,测试特定的游戏循环等。这不仅是为了加快开发速度,而且还允许玩家看到其中的一些内容。脚本来调整游戏的某些方面。
诸如Lua之类的语言具有诸如luabind之类的包装器,但是当我过去使用它时,它会遇到问题,因为它不支持继承上下文中的方法重新定义。
您对使用或不使用的语言/包装有什么建议?
Answers:
我认为Lua是最好的镜头。
本文是关于集成Lua和C ++的。它说:
LuaBind是很棒的产品,但对我来说,它看起来太复杂了。对于其中一个代码来说,要遵循类和对象的位置并不容易。还看到我想使用模板将Lua集成到wxWidgets应用程序中,这有点不行(您可以在wxWidgets网站上阅读跨平台问题)。
还有许多其他绑定库:
http://luabridge.sourceforge.net/
http://www.stackedboxes.org/~lmb/diluculum/
http://cpplua.sourceforge.net/
http://www.tecgraf.puc-rio.br/~ celes / tolua /
只需选择并享受。
我一直喜欢Chaiscript ; 我已经使用了很长时间,但是到目前为止看起来还不错。
与Python或lua不同,它是从头开始构建的,可与C ++一起使用。绑定过程似乎比使用luabind / etc干净得多。
这是网站的摘要:
ChaiScript是第一个也是唯一一个从头开始设计并考虑C ++>兼容性的脚本语言。它是ECMAScript启发的嵌入式功能式语言。
ChaiScript是根据BSD许可获得许可的。
我会推荐Lua。
Python也很受欢迎。许多功能强大的游戏引擎(例如Blender)都在使用它。
C ++ :: Boost有一个库可用于Python。
我读过有关Squirrel的文章,但没有使用。
您可以阅读此游戏引擎概述。有一个Scripting
专栏。您可以看到Lua和Python是最流行的脚本语言。
为什么不建立自己的?
如果您有时间,耐心和学习意愿-您可以随时尝试开发自己的脚本引擎,并提供所需的所有功能和语法。
优点
缺点
时间。没有多少人拥有它。如果您现在需要一些东西,请尝试使用现有的引擎(例如已经建议的引擎之一)。
速度。许多现有的脚本引擎都非常快-自定义解决方案可能没有那么快。
团队规模。许多现有的脚本引擎都有较大的团队在代码库中工作,无论是私人团队还是全球志愿者,对于要由许多其他人检查和重新检查的代码,都有话要说。
脚本引擎需要一定数量的初始计划才能有效发挥作用。还有许多基础工作也可能需要实施,而这些基础工作可能根本与实际的脚本引擎无关。
这绝不是详尽的清单。如果发现自己必须对现有脚本语言的后端进行大量更改才能获得所需的功能,那么IMO您可能应该寻找更符合您要求的另一种引擎,或者只是自己构建。
我意识到人们乐于抛弃“懒惰”和“不要重新发明轮子”,但是我认为关于学习如何完成这些事情还有很多话要说。对于您的项目,特定的实现可能会比一般的实现更好。
人们在讨论该主题时分享的最喜欢的文章是“用C ++创建脚本系统”:http : //www.gamedev.net/reference/list.asp? categoryid= 76
这是luabind和tolua的链接,lua / c ++的包装