我目前正在构建一个游戏服务器(不是引擎),我希望它可以扩展,就像一个插件系统.
我找到的解决方案是使用脚本语言.到现在为止还挺好.
我不确定我是否应该使用Ruby或Lua.Lua更容易嵌入,但Ruby有一个更大的库,更好的语法(在我看来).问题是,我没有找到使用Ruby作为C++脚本语言的简单方法,而使用Lua则非常容易.
对此有些不满?使用Ruby作为脚本语言的建议(我试过SWIG,但它不像使用Lua那样整洁)?
谢谢.
dun*_*289 12
我之前看过将Ruby嵌入到C/C++中,看起来非常困难.你将面临很多挑战:
我确信这可以做到,但对我来说这似乎非常困难,只有你能在最低限度的入口点跳进Ruby才有用.
我过去曾经广泛使用过Lua.
Luabind非常容易使用,不需要像SWIG这样的外部生成器,doc很棒.编译时间仍然不错.
我见过的最大问题:lua主要是......只写.你没有真正的类,但只有带有一点语法糖的关联数组(object ['key']可以写成object.key),所以你很容易在一个不起眼的函数中添加一个'成员',完全忘记了关于它,并在以后有副作用.
出于这个原因,仅此原因,我更喜欢Python.Boost :: Python是Luabind的基础,因此两者都有类似的API(Luabind以前稍微容易构建但不再容易).在功能方面,它们非常相同.
不直接相关:这些都不能在多线程环境中可靠地使用(因此这取决于服务器的复杂性).
请注意,您仍然可以为每个线程创建一个环境,但它们将无法通信(除了使用C++机制).这在Lua中尤其容易.
| 归档时间: |
|
| 查看次数: |
11122 次 |
| 最近记录: |