我已经研究了一点Lua,而且我对C++比较熟悉,但我仍然没有看到任何真正的理由我想要与C++一起使用Lua(或任何脚本语言).如果我已经用C++(快速语言)制作游戏,为什么我不能用C++做所有事情?毕竟,我已经熟悉C++了.为什么我要花时间学习一门新语言以及如何将它集成到我的C++代码中?我确信只需要设置界面和工作就会出现问题.学习需要一些时间,它将如何真正得到回报?它真的只对大型开发团队有利吗?
我赞同已经说过的话,我想加入自己的想法,因为我正在将Lua整合到我的游戏引擎中!
这取决于你正在制作什么样的游戏,但不管你允许粉丝修改你的游戏的感觉,将引擎组件与游戏组件分开是一个好习惯.
第一个主要好处是快速迭代.我做出的最佳决定是将F5键连接到重新加载Lua状态(就像浏览器的F5刷新一样,如果不明显的话).我可以编辑脚本然后在我正在运行的引擎中混搭F5以立即查看结果.这比重建本机代码更有效.你不太可能失去思路,你可以很快调试(游戏)问题.
我发现在Lua工作让我更有创意.它帮助我抛开我僵硬,无情的工程师大脑,带出我的实验性#YOLO大脑.为什么我的角色的HP需要在C++对象中仔细而精确地存储为32位整数?引擎的任何部分都不需要知道这种信息.更高级别的游戏玩法是唯一关心的事情.HP仅偶尔更新,它与"规则"有关,而不是任何引擎考虑因素.
把C++想象成你的主要小提琴手,把Lua想象成你的指挥:你的小提琴手在拉小提琴时会更好/更快,但是你的指挥不会拉小提琴; 他只是告诉你的小提琴手更响亮/更柔和/更快/更慢.
Lua很慢(相对于C++),但这很好.Lua不需要在5ms内将OGG解压缩到PCM中; 那是你引擎的工作.Lua做出了非常高级别的决定:"这就是我现在想播放的音频."
我单独做很多项目,我可以诚实地告诉你,整合Lua是一件非常好的事情.它在低级技术笨重巨型和你的实际 游戏之间创造了一个非常干净的分离.