我正在尝试用Ogre3d渲染引擎构建一个有用的3D游戏引擎,用于模拟我想出的一些想法,并且已经走到了一个十字路口。有许多脚本语言可供使用,我想知道是否有一个或两个被审查并有适当的跟随。
LUA和Squirrel似乎更受审查,但我对任何人都开放。
最理想的情况是,如果有一种用于分发和易于加载的语言的编译形式,那将是最好的。
答案 0 :(得分:6)
一个有趣的选择是stackless-python。这用于Eve-Online游戏。
答案 1 :(得分:5)
语法是一个品味问题,Lua就像Javascript,但用大括号替换为类似Pascal的关键字。它具有很好的语法特性,从不需要分号,但是空格仍然不重要,所以你甚至可以删除所有的换行符并让它仍然有用。作为一个以C开头的人,我会说Python与其他语言相比具有深奥的语法。
LuaJIT的速度也是Python的10倍左右,Lua解释器要小得多(150kb或大约15k行的C,你可以实际阅读和理解)。您可以让用户编写游戏脚本,而无需嵌入大量语言。另一方面,如果你将解析器部分从Lua中删除,它会变得更小。
答案 2 :(得分:4)
Python / C API手册比整个 Lua手册(包括Lua / C API)更长。
Lua的另一个原因是对协同程序的内置支持(在一个OS线程内的协作式多任务处理)。它允许人们拥有1000个看似独立的脚本,并且彼此之间的运行速度非常快。像每个怪物/武器左右一个脚本。
(为什么人们在SO上大写Lua?这是“Lua”(见here)。)
答案 3 :(得分:1)
Lua又一次投票。小巧,快速,易于集成,对于现代控制台而言非常重要 - 您可以轻松控制其内存操作。
答案 4 :(得分:0)
我会选择Lua,因为编写绑定非常简单,许可证非常友好(MIT),现有的库也倾向于使用上述许可证。 Scheme也很好并且易于绑定,这就是为什么它被选择用于Gimp图像编辑器的原因。但Lua简直太棒了。魔兽世界使用它作为一个非常高调的例子。 LuaJIT为您提供本机编译的性能。它来自纯粹的C. less than an order of magnitude。
答案 5 :(得分:0)
我不推荐LUA,它有一种特殊的语法,所以需要一些时间来习惯。根据谁将执行脚本,这可能不是问题,但我会尝试使用相当容易的东西。
我可能会选择python。它通常编译为字节码,因此您需要嵌入解释器。但是,如果必须,可以使用PyPy将代码转换为C,然后编译它。
答案 6 :(得分:0)
嵌入解释器是没有问题的。此时我对功能和性能更感兴趣。 LUA和Squirrel都被解释了,这很好,因为我正在构建的游戏之一是包含可修改的代码,它在游戏中有一个编辑器。
我很想听听python,因为我已经看到它在我相信的战场系列中的使用。
答案 7 :(得分:0)
python也很好,因为它有实际的OGRE绑定,以防你需要动态修改低级别的东西。我不知道Lua的任何等效绑定。
答案 8 :(得分:0)
由于它是一个C ++库,我建议使用JavaScript或Squirrel,后者是我个人最喜欢的两个因为更接近C ++,特别是它如何处理表/结构和类。由于所有相似之处,这对于C ++编码器来说是最容易习惯的。
但是,如果您使用JavaScript并找到Ogre3D的HTML5版本,您应该能够将游戏代码直接移植到Web版本中,并且只需要进行最少的更改(如果有的话)。
这两个都是一个不错的选择,两者都有其优点和缺点,但两者肯定是最容易学习的,因为你可能已经在使用C ++了。如果您正在使用Java,那么同样可能也是如此,如果它是Game Maker,除非您尝试制作人们不会执行的可执行文件,否则您将不需要任何一个。 39;需要游戏制作者自己运行,在这种情况下,祝你好运找到一个扩展来运行其中任何一个。