V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
drymonfidelia
V2EX  ›  游戏开发

为什么国内的手游公司这么爱用 Lua 搞热更,国外的公司很少用?

  •  1
     
  •   drymonfidelia · 19 小时 35 分钟前 · 3980 次点击
    33 条回复    2025-01-23 13:22:48 +08:00
    guyeu
        1
    guyeu  
       19 小时 5 分钟前   ❤️ 2
    一开始不是魔兽世界带起来的么,属于舶来品。。。
    Gilfoyle26
        2
    Gilfoyle26  
       18 小时 27 分钟前
    貌似好像看过之前有一个文章说过。用 lua 的初衷是为了防止被破解。后来就成了大家都会用的。
    ugpu
        3
    ugpu  
       16 小时 59 分钟前
    首先时代背景:
    科班程序员 有设计 架构能力的程序员很少.
    培训班比比皆是

    然后:
    设计能力的程序开发了一套框架 离职后学葫芦画瓢的比比皆是.也不知道为什么 反正直接运行.

    最后:
    Lua 在上古时代方便热更 简单 双端开发公司成本低 应届生都能快速学会.
    1. 成本低廉 不需要管计算机技术 双端开发 只要写业务就行
    2. 魔兽世界上古代码可以抄袭 魔兽世界是游戏界的起源. 你能在市面上看到的功能 ta 都有

    离职 & 交互 & 入住新公司 & 热更
    全部开始使用 抄袭. 游戏是 沪浙开始大面积出现开发公司做页游
    随后广东开始新启
    drymonfidelia
        4
    drymonfidelia  
    OP
       16 小时 39 分钟前
    @Gilfoyle26 Lua 不是更容易逆向,为什么可以防破解?
    sunny352787
        5
    sunny352787  
       16 小时 22 分钟前   ❤️ 3
    主要因为热更是刚需,不用 lua ,用 js 或者 C#也都可以,只是 lua 的教程多,现在的主程们水平又都不咋地所以当小弟时用啥升级了就继续用,就类似为什么国内之前用 CentOS 的多是因为有个叫鸟哥的出的 linux 教程教的 CentOS ,没有什么高大上的理由,就这么简单
    m1nm13
        6
    m1nm13  
       16 小时 8 分钟前
    @sunny352787 怪不得。。。我说哪来的那么多 centos ,我咋从没听过
    iyaozhen
        7
    iyaozhen  
       14 小时 33 分钟前
    @m1nm13 还有一部分原因是 centos 和 redhat 同源。有大公司背书。而且听说你实在有问题也可以给钱找 Redhat 付费解决
    sunny352787
        8
    sunny352787  
       14 小时 20 分钟前 via Android
    @m1nm13 十多年前很火的,现在没听说过太正常了
    mooyo
        9
    mooyo  
       13 小时 8 分钟前
    因为最早只有 lua 这套方案,没别的能用,最近有人又搓了一套 js 的,现在也有人用 js 了。
    mooyo
        10
    mooyo  
       13 小时 8 分钟前
    @mooyo 就是纯粹的路径依赖
    levelworm
        11
    levelworm  
       13 小时 4 分钟前 via Android
    Lua 不是很流行的游戏脚本语言吗?
    kk2syc
        12
    kk2syc  
       12 小时 47 分钟前
    没有米家之前,在用单片机继电器/PLC 的时候,为了让家里人方便,我也是硬生生手搓了一套 lua 脚本热更的家居控制。
    jim9606
        13
    jim9606  
       8 小时 56 分钟前 via Android
    纯粹路径依赖。
    热更方案有很多选择,lua js python 之类的都可以。lua 属于在大型商业项目(WoW)上用得早而且取得成功的。然后就是没问题就别动了。
    chendy
        14
    chendy  
       5 小时 39 分钟前
    @guyeu +1 高中时候吭哧瘪肚研究怎么写宏,很多年后才知道那玩意是 lua
    Lynntox
        15
    Lynntox  
       5 小时 35 分钟前
    @sunny352787 好几年前我也喜欢 CentOS 现在慢慢转 ubuntu
    mayli
        16
    mayli  
       5 小时 23 分钟前
    lua 比起 py/js 主要是轻量级+快,集成到 c/c++很容易
    对于游戏公司,除了这个,应该就是路径依赖了。
    murmur
        17
    murmur  
       5 小时 13 分钟前
    @drymonfidelia lua 解析器就三四百 kb ,你可以整个全重写,别人想逆向得闲逆向解析器,分析你的指令吗设计
    cyrivlclth
        18
    cyrivlclth  
       4 小时 52 分钟前
    我很怀疑楼主说的国外手游不用 lua 热更的这个前提存不存在,因为 supercell 这种,也是用的 lua 热更。
    angryfish
        19
    angryfish  
       4 小时 46 分钟前
    那请问国外用什么呢?
    dzdh
        20
    dzdh  
       4 小时 45 分钟前
    @sunny352787 #5

    我一开始学 Linux 接触的是 RedHat Linux 9
    encro
        21
    encro  
       4 小时 45 分钟前
    @sunny352787

    centos 那还得从红帽子开始说起。
    nightwitch
        22
    nightwitch  
       4 小时 13 分钟前
    手游热更是刚需(不然 Apple / Google Play 重新发版的审核能等死人
    国内外都一样,只能说国外手游玩少了
    INCerry
        23
    INCerry  
       4 小时 3 分钟前   ❤️ 1
    现在新项目手游热更用 lua 也开始少了,用 HybridCLR 的多起来了,直接 C#热更
    coderzhangsan
        24
    coderzhangsan  
       3 小时 2 分钟前
    @sunny352787 centos 那完全是红帽子,当时服务器系统市场红帽子影响比较大,培养了一大堆红帽子运维工程师以及建立了相关培训认证体系,其社区免费版 centos 有这颗大树背书,推广起来就容易多了。
    ScepterZ
        25
    ScepterZ  
       3 小时 0 分钟前
    我发现我都想不出来有什么国外手游,在国内貌似没什么火的
    iyiluo
        26
    iyiluo  
       2 小时 58 分钟前
    和 mybatis 差不多吧,都是大公司开始用,然后国内中小公司也沿用了
    mxT52CRuqR6o5
        27
    mxT52CRuqR6o5  
       2 小时 46 分钟前
    路径依赖+1 ,以前那个年代可没有 node.js 、quickjs ,当年没有太多的选择
    lua 和 python 一样可以很容易调用 C ,而又比 python 轻,具体的历史可以看看知乎上的一些回答
    https://www.zhihu.com/question/395593519
    https://www.zhihu.com/question/21717567
    CloveAndCurrant
        28
    CloveAndCurrant  
       2 小时 45 分钟前
    魔兽先用的,后来云风学了在大话西游用 lua ,就在国内带火了。不过现在有 quickjs 了,JavaScript 比 lua 是一个不错的选择。
    Katrol
        29
    Katrol  
       2 小时 16 分钟前
    路径依赖,而且用过 lua 热更都是久经考验了,游戏项目最重要的是稳定。就比如说做引擎、做图形的见到华为的设备都后怕,时不时都会碰到点毛病
    kingzeus
        30
    kingzeus  
       1 小时 41 分钟前
    作为游戏开发人员来解释下:
    1. 游戏开发中很早就在用脚本了,用什么语言实现的都有,主要是提供了动态能力,一个是方便策划动态配置,也可以减少大量的编译时间。
    2. 之后随着互联网出现,游戏发行方式改变了,版本更新速度变快了,同时因为审核的不确定性,热更优先级就大大提高,所以脚本就越来越重要了

    说回,为什么用 lua
    1. lua runtime 非常小,执行效率高,支持嵌入,可以定制。对比其他脚本语言优势明显
    2. 还有一个很重要的点,热更的代码和非热更代码要隔离开,试过 C#热更就知道了,同一种语言实现一不注意就混在一起了。lua 和原生代码直接在语言层面上隔离了

    其他的都不是重点
    areless
        31
    areless  
       1 小时 7 分钟前
    不止你说的手游公司,lua 在运维领域一直很火。只是 NODEJS 带走了黏合层编写的一部分流量。lua 编写简单。有了 luajit 后,速度又很快。nginx 、PostgreSQL 、Redis 等等大部分主流服务组件都支持 lua 去扩展。openresty 更是把 lua 提升到了高并发 web 编程语言的地位。lua 实现的网关有 kong ,还有 lua 也占领了 waf 等一些列细分领域。你别看互联网上 PHP JAVA PYTHON 语言诸多,大部分流量都是 lua 小脚本在扛着。有部署在 CDN 的,有部署在各个模块组件里面。
    SunsetShimmer
        32
    SunsetShimmer  
       29 分钟前
    Mutoo
        33
    Mutoo  
       25 分钟前 via iPhone
    国外很火的 Roblox 里的所有游戏都是用 Lua 写的。他们还自己实现了一个 LuaU 方言
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4949 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 05:48 · PVG 13:48 · LAX 21:48 · JFK 00:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.