繁体   English   中英

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

[英]Refactor C++ code to use a scripting language?

背景:

我一直在研究用C ++编写的平台游戏几个月。 该游戏目前完全用C ++编写,尽管我对使用Lua用于敌人AI以及可能的其他逻辑的可能性很感兴趣。 但是,该项目的设计没有考虑到Lua,我已经为大部分AI编写了可用的C ++代码。 我希望Lua可以提高游戏的可扩展性,但不知道将现有的C ++代码转换为Lua是否有意义。

问题:

如果有的话,是否适合采用功能齐全的C ++代码并将其重构为像Lua这样的脚本语言?

问题是故意有点模糊,所以请随意给出与给定背景无关的答案。

脚本语言对于可能经常更改或扩展的内容非常有用,并且可以从速度上提供交易。

在核心库中使用脚本语言是没有意义的,因为它们是相对静态的(他们所做的只是一遍又一遍地处理)并且需要快速。 但对于像AI这样的东西,这是一个完美的想法。 您可以在不重新编译的情况下调整AI,并且可以很好地允许将来的更改。 发货后,您可以预编译脚本语言并将其称为好。

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

如果你已经把一切都搞定了,除非你打算尝试改进它或允许扩展,我真的没有理由把它剥离出去; 你完成了。 对于您的下一个游戏引擎,请记住这一点。

也就是说,如果你还没完成,这是一种爱好/实践的事情,我建议你这样做。 这将是您向游戏引擎添加脚本功能的介绍。 当你开始制造更大更复杂的引擎时,你不必担心新的东西。

如果有的话,是否适合采用功能齐全的C ++代码并将其重构为像Lua这样的脚本语言?

很少。 这是我完成的时间:

  • 我想改变设计或添加功能,无论如何都要求我重新访问C ++代码。

  • 我发现了一直在不断改变的C ++代码部分。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM