好奇,所以来了解一下
![]() |
1
lizhenda 4 天前
lua 好用,只是不更新了,不过依然是首选的呀。
|
![]() |
2
maocat 4 天前
lua 的痛点就是他的数组下标起始位是 1
|
4
GeruzoniAnsasu 4 天前
抽象能力很弱,所有逻辑得用字符串拼接和 table 来实现。虽说 table 很万能,但这个数据结构本身就是非常原始的。宿主得提供足够多足够强大的接口,让 lua 只写循环、判断、匹配,那就还算舒服。
|
5
crackidz 4 天前
缺点太多了吧,现在很多已经在用 TypeScript 了,甚至用 C#也不错啊
|
![]() |
6
guanzhangzhang 4 天前
没有自带类,需要写法才能实现
|
7
Dorathea 4 天前
感觉问题是不是偏了?
你的问题有假设 Lua 有痛点, 但实际上或许是使用场景的不同(所有语言都有痛点, 只是场景是否适合) Lua 在游戏服务器中, 我接触到的: * 将 Lua 和 C/C++ 结合, 快速实现业务需求 * 一个单纯的工具语言 * 纯 Lua 的游戏服务器 作为 1, 2 项, Lua 是合格的, 第三个出现的频率相当低, 某种意义上就不该这么用 没有自带类, 抽象能力弱, 等等... 这些我认为本来就不是 Lua 这个脚本语言的目标, 如果有这些需求, 我不会去用 Lua, 其他语言可以实现得更好 或者说实际上语言发展到现在, 太卷了, 那些 Lua 没有的 feature 并不是 Lua 不努力, 不好 |
![]() |
8
donaldturinglee 4 天前 via Android
单 lua 拿出来对比 py 和 go 不行吧。实际上 lua 可能还是做一些需要热更新的场景然后集成到 c++/c 里面
|
![]() |
9
geekvcn 4 天前
lua 世界最大的开源社区是魔兽世界插件,这就是最大的痛点。然后才是嵌入式和各种游戏引擎脚本,游戏服务器脚本
|
![]() |
10
yplam 4 天前 via Android
主要是轻量高性能,以及历史原因吧,新项目感觉可以选 wasm
|
11
feixiangcode 4 天前
lua 这门语言,写个小脚本问题不大,要是需要几个人十几个相互配合的项目,还是挺难的。
|
![]() |
12
LanLiang 4 天前
lua 一般是在游戏服务器中作为动态脚本使用
|
![]() |
13
DOLLOR 4 天前
如果一定要选 lua ,我也会选择 TypeScriptToLua🐶
|
14
sunny352787 4 天前
你预设的问题不对,不是 lua 被 python 或者 go 替换了,而是 C/C++被 python 和 go 替换了,lua 在服务端只是作为嵌入式脚本写逻辑,本身并不能搭建完整的服务端,至少没见过人纯用 lua 实现服务端的。
|
15
nevermoreluo 4 天前
弱弱的问下,哪里或者说业界大厂谁选 py 了。。。。
|
![]() |
17
Immortal 4 天前
问的没有上下文其实挺难回答.
之前在游戏公司客户端和服务端用的都是 Lua,也运行得很好. |
18
DexLee OP @nevermoreluo 貌似网易 python 多,腾讯 go 多
|
![]() |
19
bronyakaka 4 天前
@nevermoreluo 都是引擎的脚本
|
20
nevermoreluo 3 天前
@bronyakaka 我知道引擎的脚本,但是 py 的 binding 实现比 lua 的开销高吧,lua 嵌入已经有很大的基础了,感觉 py 没那么大的优势,不过往 ai 靠的话也不好说?
所以我才问有谁家这么搞了,比较好奇。 |
![]() |
21
bronyakaka 3 天前
@nevermoreluo #20 网易自研引擎的脚本是 py
|
23
zxjxzj9 3 天前
lua 一般是作为热更的脚本使用,是跑逻辑的部分,一般来说搭配 lua 的是底下的 C++服务器。但是目前的情况来说,只要你这个游戏没有 pvp 联机内容(甚至有点弱联机也无所谓),那么根本不会有人想用 c++写后端,自找没趣。用 TS python GO 甚至 java 都是可以的。没有 C++自然也不会有 lua 了
|
24
BALDOOR 3 天前
应该是 c++写纯业务不够快,或者编译慢,人员水平参差不齐,容易出问题之类的,还有以前前端也用 lua 热更的原因吧
我在业务层没写过 c++😂,我写过纯 Rust 觉得没啥问题,当然我是 16 年就开始用 rust 的“老人” 现在 lua 只有一些老人坚守或者维护老项目用,新项目几乎要么 go 或者 java ,还有可以前后端通用的 ts/c#,也挺不错的 腾讯以前纯 c++,现在 go 多 网易前后端都是 py 例如三七之类的一些是 Java 阿里那个用 c++和 lua 43 用 erlang PHP/NodeJS 就一大堆了,都是小厂,做轻型/小游戏之类的 c#好像没怎么听说过,初创小公司倒是听过一大堆的,都是写 unity 的没有服务器积累经验,网上找一些开源的直接糊上去,c#开发效率和性能都挺优秀的,我问过以前的老人说他们 0 几年的时候用过.Net ,后来都转 java 了,貌似互联网那边用得也不算多,不怎么待见,不知道为毛,期待 c#的再次爆发 我现在用 Typescript+Rust ,学习速度开发效率和性能全拉爆,街上随便拉条狗过来都能写,爽飞了 现在游戏这边技术或者生态都逐渐向互联网靠拢,开发效率和体验都挺不错的,远远甩开以前各家定制的屎山 如果你不是规则的定制者,那么写什么你也左右不了,还不如加入一家好公司,福利好,好项目,来钱快 如果你是规则的定制者,我建议就是纯 c#或者 typescript+Rust 路线,小到初创,大到宇宙厂,所有需求都能 100%满足 |
25
DexLee OP |
26
BALDOOR 3 天前
@DexLee
18 年那时候用 go 的好像有人会搭配 lua(写业务),其实就是为了热更 现在的话,用 go 的一般是底层架构和上层业务全部用 go 至于为什么不搭配 lua ,游戏服务器技术各种语言/框架/解决方案都有,用什么,要看各家技术人员的喜好吧 go 写业务其实也还好,我曾经给别的团队帮忙的时候写过,虽然我没学过 go ,但也没啥不适应之类的 lua 做简易脚本是一把好手,现在有 typescript 了(有众多好爹撑腰就是牛逼),现在新项目上,用 lua 确实不应该了,性能,开发效率,和框架全部都是过去式了,除了不愿意接受新事物且固执的老人留守外,想放弃就放弃吧,时代必然 |