将C ++代码重构为使用脚本语言?

背景:

我已经在用C++编写一个平台游戏几个月了。目前,游戏完全以C++编写,但我对使用Lua来处理敌人AI和可能的其他逻辑感到着迷。不过,项目在设计时并不考虑Lua,我已经编写了大部分AI的工作C++代码。我希望Lua可以提高游戏的可扩展性,但不知道是否有必要将现有的C++代码转换为Lua。

问题:

何时,如果需要的话,将完全功能的C++代码重构为像Lua这样的脚本语言才是恰当的?

这个问题有意地有点模糊,所以可以自由给出与给定背景不相关的答案。

原文链接 https://stackoverflow.com/questions/3033583

点赞
stackoverflow用户87234
stackoverflow用户87234

脚本语言适用于可能经常更改或扩展的事物,并且可以容忍速度上的牺牲。

在核心库中使用脚本语言是没有意义的,因为它们相对静态(它们只是一遍又一遍地处理着东西)并且需要快速。但是对于 AI 等事物来说,它是个完美的想法。您可以在不重新编译的情况下调整 AI,并很好地允许未来的更改。一旦发布,您可以预编译脚本语言并使用它。

它也是最好的可扩展性。为您的游戏提供一个 Lua 接口,任何人都可以使用简单的语言编写插件,无需编译。您的 Lua 接口越充实,这些插件就越充满表现力和功能强大。

如果您已经让一切都运作良好,除非您想尝试改进它或允许扩展,否则我真的没有理由将其去除;您完成了。这将是您下一个游戏引擎要记住的事情。

也就是说,如果您还没有完全完成而这是一种爱好/实践的形式,我建议您这样做。这将成为您将脚本功能添加到游戏引擎中的入门经验。当您开始制作更大更复杂的引擎时,您就不需要担心任何新事物了。

2010-06-13 19:38:51
stackoverflow用户41661
stackoverflow用户41661

很少。 下面是我这样做的时候:

  • 我想改变设计或添加功能,需要我重新审视C++代码。

  • 我发现C++代码中不断变化的部分。

  • 我相信通过从C++迁移到Lua,可以使代码变得五到十倍更小。

前两个是任何人都可以做的事情。第三个需要一些经验。

2010-06-13 22:12:58