找回密码
 立即注册
查看: 255|回复: 5

游戏开发选择lua还是js?

[复制链接]
发表于 2023-8-15 16:15 | 显示全部楼层 |阅读模式
比来发现v8+jit运行速度大于Lua+jit,而用JS开发的难度也不大。此外,如果使用lua开发的话,是采用Luajit还是最新的Lua5.4?
发表于 2023-8-15 16:16 | 显示全部楼层
当年的 Cocos 时代,这个问题争议很大

现在这个时代,基本没争议
除了特定平台以外,都选 Lua

从学习成本看

在 Lua 的易上手速度面前,JS那个庞大的用户基数根本没有意义
从产业的发展看

Lua 可以和很多语言底层更好的结合,这是很多资深人士愿意搞的理由。JS 你不得不自己维护庞大的运行环境,不得不面对各种 Lua 早就解决的问题。
而且最关键的是,JS 的开发生态链,除了页游和web那一块以外,根本就不成气候,没有使用的理由
从未来看

麻蛋,可视化脚本才是未来好吗,这两算啥
发表于 2023-8-15 16:16 | 显示全部楼层
Luajit不维护了,因此选的意义已经不大的,重新拉项目还是选正统版本吧,以后也好升级。性能上因为IOS的存在实际上也差不了多少,多数人用上jit了也写不出好性能代码来。还不如爽爽的用新版本, 毕竟位操作、64位支持都好了很多。
发表于 2023-8-15 16:17 | 显示全部楼层
这个要根据你开发的目标是什么来决定了。
就从你Lua和JavaScript二选一的描述来看,应该是要做支持热更的移动端游戏,因为如果不是这种需求,不大会有人会想到Lua。而实际上JavaScript的语法特性是不如TypeScript这个超集的,对于复杂的项目开发,TypeScript应该是更好的选择。
所以,如果我猜的不错的话,你可以看下下面几点:

  • Lua的IDE支持孱弱,通常需要通过插件和增加注释来实现自动补全等功能;TypeScript有很强的IDE支持;
  • 由于上一点,用TypeScript开发的效率一定远超Lua;
  • JIT模式都不能在iOS下运行;
  • LuaJIT的Lua版本长期滞后,缺乏一些常见的特性,比如对于网络游戏来说比较致命的点就是缺乏原生的长整型支持;
  • Unity和UE的Lua框架比较丰富,能够找到很多现成的轮子;
  • TypeScript/JavaScript本身的轮子很丰富;
  • 有更多的成熟商业引擎默认开发语言就是TypeScript/JavaScript,语言认同高;
  • TypeScript/JavaScript是网页的原生语言;
还有一个很重要的点,其实对于用Ts/Js/Lua做热更的方案而言,语言本身的性能真的不会成为瓶颈,通常不用考虑性能的问题。
顺便打个广告,公司招人。
发表于 2023-8-15 16:17 | 显示全部楼层
既然都考虑ts了,那为什么不试一下ILRuntime呢?
老项目或者说求稳的项目组,一般都会选使用人数多的方案,那就是lua。
发表于 2023-8-15 16:17 | 显示全部楼层
都可以,lua理论上速度比js更快(同等条件下),js和lua的jit在苹果移动端上不能用。js的jit有v8谷歌维护的,稳定性和性能都很有保障,lua官方的版本性能不怎么好,luajit是5.1的版本落后很多不支持int64,分代gc以及很多新版本里的特性,自己搞lua的llvm-jit有一些开发成本。另外lua改底层非常容易可以和宿主环境结合的非常好,如果团队有富余的人力甚至可以完全用宿主语言甚至用游戏引擎的虚拟机实现一个lua出来,还能定制出很多自己项目想要的值类型来(不是用userdata),比如游戏引擎提供的各种容器(UE4的TArray TMap等),结构体(FVector)等,对js做相同的事情会付出成倍的人力吧
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-29 17:16 , Processed in 0.107785 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表