使用Lua做为MMOARPG游戏逻辑开发脚本的一点体会
项目背景
目前在一个大型MMOARPG游戏中使用Lua做为逻辑开发语言,Lua占整体代码量的80%。
我们这个MMO游戏开发近2年,客户端8人,项目组总体人数在100人(美术占70%),目前代码量很大,中间有客户端人员的正常流动,加上版本的迭代(需求多变)代码没有那么好维护,但主要还是看团队的编码风格,这个不是Lua语言的问题。
我的个人体会
如果团队有很好的代码规范,那么用Lua也是极好的,因为简洁,可以让你加深理解编程的本质。
如果团队之间磨合较久,人员比较稳定,综合能力也比较强,也是可以使用Lua(大家编码风格接近)。
Lua当很多类中都有同名函数时,要查看函数引用,或者函数重命名,确实不如强类型语言方便,还好有IDEA+EmmyLua。
假如一个方法有四个参数及以上的 ,建议传入一个table,方便阅读代码。
我个人的建议是:对于比较成熟的团队(能力较强)我建议可以选用Lua,而太多新手的团队还是C#吧,因为我觉得要把Lua代码写好、写的优雅是比写C#更需要动脑的一件事。
PS.上面这段文字是我在2019年写的,一直在我的草稿箱没有发布,近两年我所在项目使用的热更新方案是ILRuntime。
使用ILRuntime后再对比Lua
对比ILRuntime(C#)和Lua的最大区别,我体会就是C#重构和阅读别人代码要轻松很多,但是无法运行时热重载,因为C#代码需要生成dll,无法在运行时替换掉dll,这点没有Lua灵活。