为什么我没有回应任何对 luacluster 的质疑?

2022-04-18 11:49:11 +08:00
 gantleman
luacluster 已经发布了快一个月了。
我没有回应任何对于这个项目的质疑。
qq 群也没有加任何一个人。
发布后的这 3 个多星期,都一直忙着在做数据库接入的工作。
后面还要整理技术文档。

为什么要在 V2EX 发布这个的声明,
因为这里是所有渠道宣传效果最好的一个论坛。
对于 luacluster 质疑的,代码,示例都放在哪里。您想看就看不想看可以不看。
因为 luacluster 已经成为了事实上的技术标杆。
只要你想研究无缝大地图和万人同屏甚至游戏服务器就绕不开 luacluster 。

这里我明明确确的表示,luacluster 是一个成果不是一个产品。
我发布的是一个技术成果。在我发布 luacluster 之前,
没有人知道实现万人同屏需要 128 核还是 256 核。
也没有人能说清楚制约分布式服务器效率的是内存还是 CPU 还是带宽。
甚至大家都不知道制约分布式服务器的问题在哪。
我不但提高了服务器的上限,能承载更多个人。
也提高了服务器下线,能用更少的机器承载更多的人。

无论你是赞美,质疑,藐视,漫骂。
luacluster 就是座山,就在哪里。
你见,或者不见我,我就在那里,不悲不喜。

做开源软件确实很辛苦,大部分项目很难做出成果。
但当你做出的东西可以推动一个行业发送改变的时候。
站在山顶的感觉还是很奇妙的。
3242 次点击
所在节点    程序员
21 条回复
learningman
2022-04-18 11:56:00 +08:00
略狂,就看是真狂还是打脸了
murmur
2022-04-18 11:59:21 +08:00
但是万人同屏是个伪需求啊,尤其是打着良心的网游都要卖外观,我这花大价钱买的衣服你给我万人同屏不打死你
akira
2022-04-18 12:41:27 +08:00
@murmur 总要有人先做出改变呀。 已经想到了几个场景,
太空战斗,伊谢尔伦攻防战
大海战,数千人同屏的大海战
凡尔登绞肉机,诺曼底登陆战
好像都是战争题材的。。
Kinnice
2022-04-18 13:48:48 +08:00
我觉得回应质疑的最好方法是拿出一个 demo ,例如 douyin/ks/b 站这种直播间 万人同屏,进一个用户或者一个弹幕就生成一个形象,而不是不回应。
xgfan
2022-04-18 14:51:28 +08:00
https://v2ex.com/t/693150#reply84

上次的死锁终结解决方案怎么没下文了啊
dcoder
2022-04-18 15:20:42 +08:00
万人同屏的... 啥游戏? MMORPG, ACT, FPS, 还是联众棋牌? 区别可太大了
nuk
2022-04-18 15:33:04 +08:00
这个预测玩家移动有点像守望先锋的预测回退,可以让玩家感受的延迟变低。。
ztxcccc
2022-04-18 15:34:48 +08:00
EVE 这种星战题材的也没万人同屏需求吧
felixcode
2022-04-18 15:45:46 +08:00
既然推动了一个行业,能不能介绍一下业界应用和反馈?
XiLingHost
2022-04-18 15:48:58 +08:00
@ztxcccc 几百人都不用同屏,同星系就要时间膨胀了
Kinnice
2022-04-18 16:12:53 +08:00
如果说 "已经成为了事实上的技术标杆","绕不开",但是却没有任何第三方做例证,我感觉有些 false , big and null
Chinsung
2022-04-18 16:37:58 +08:00
请问一下,这是一个封装了 redis 集群常用 lua 脚本的项目吗
changnet
2022-04-18 17:20:33 +08:00
```
因为 luacluster 已经成为了事实上的技术标杆。
只要你想研究无缝大地图和万人同屏甚至游戏服务器就绕不开 luacluster
```
楼主实在狂得可以,不去拉投资实在可惜。做技术讲究的是脚踏实地,你犯了这个大忌,难免在论坛里被人锤。

“成为事实上的标杆”要有事实,是哪个游戏用 luacluster 实现,并且成为标杆了??我倒是没听过
“无缝大地图”之前就有人在做了的,网易、腾讯的一些网游都有,当然除非你觉得他们的地图不够大
“万人同屏”这个需求最大的限制是客户端而不是服务器,服务器其实只有 aoi 这一模块有压力而已

摘取自 https://www.v2ex.com/t/847585?msclkid=c2b79945bef311eca9160fa12532cb75 的一些信息:

```
这样我们就实现了一个非常惊人和高效的异步通信系统。任意进程和线程中的对象通信只要最多 2 步就可以完成。找到 upd 端口发过去,找到线程队列发过去。在任意环境下只要拿到 entity id 就可以快速知道封包的目的地。实现在分布式网络内的任何对象之间像普通函数调用一样的调用。什么网络编程,什么多线编程可以统统见鬼去了。
```
事实上我们公司的 rpc 调用早就可以实现根据玩家 id 唯一直接异步调用,也可以根据服务器 id 异步调用,还能根据 lua 函数函数指针直接调用,比你这个方便多了,这个可以提高开发效率,但对运行效率有个毛用。游戏行业各家都有自己封装的 rpc ,没什么大惊小怪的


```
万人同屏顾名思义要做服务器上处理 1 万个玩家的位置同步问题。1 万个玩家的位置同步每次要产生 1 亿个消息。1 万乘 1 万产生 1 亿个消息。请记住 1 亿这个数字后面我们要反复提及到。

首先我们先分析 1 亿个消息的产生流程。服务器会收到 1 万个客户端发起移动的请求。1 万个请求是没有问题的,现在服务器处理 10 万个链接问题都不大。所以这 1 万个请求一般的服务器压力都不大。问题是这 1 万个请求,每个请求要产生 1 万个新的请求发送给其他的玩家。这样服务器就扛不住了。一下产生了 1 个亿的 io 需求,哪种消息队列都扛不住,直接 mutex 就锁死了。

所以我使用了 CreateMsgList 接口创建了一个消息 list 。哪么 io 请求就转变为插入 1 万个 list 的操作。然后将这个 list 和消息队列合并在一起。这样就 1 亿个 io 请求变为 1 万个 io 请求,io 请求一下就压缩了 1 万倍。同样的道理我们也可以把发送给给客户端的封包进行压缩。处理 1 亿个封包请求很难但处理 1 万个封包难度就低很多了。下面是封包压缩的部分代码
```
我寻思楼主是不是没做过游戏,甚至之前没做过底层。我见过的游戏服务器,哪个没有个 buffer ,所有发送的 io 都是缓冲成二进制流发出去,怎么就产生了 1 个亿的 io 。另外在游戏中请慎用压缩,游戏和 web 不一样的地方是通信频繁,但数据量小,一个攻击包、移动数据包才几个字节,启用压缩会导致客户端解包压力比较大。现在流量不值钱,还不如直接发送


```
我们要把玩家的移动描述成一段时间的状态。有位置,方向,速度,开始时间,停止时间的完整状态。这样在每个客户端就可以根据这些信息,推断出玩家移动的正确状态
```
这个,我都不知道要怎么说了。需要做在场景里移动的游戏,哪个不是这么做的?难道楼主之前做游戏是定时持续发送玩家的状态? 而不是有变化才发?


要实现万人同屏的核心:比如如何减少 aoi 事件,用哪种 aoi 更优。客户端如何支持这么大的量还能不发热,如何渲染这么多实体,视角切换如何才能避免渲染看不见的实体,这些东西完全没提到
felixcode
2022-04-18 18:00:36 +08:00
你们随便问好了,过段时间楼主可以再开个帖

为什么我还是没有回应任何对 luacluster 的质疑?
为什么我坚决不回应任何对 luacluster 的质疑?
为什么我不回应任何对 luacluster 的质疑还继续开帖?
我没有回应任何对 luacluster 的质疑,你有什么办法吗?
为什么我没有回应任何对 luacluster 的质疑,还是热度这么高?
lscho
2022-04-18 19:17:11 +08:00
本来看了帖子觉得是个牛逼的东西。

但是搜索了一下,并没有发现那些事实可以证明“luacluster 已经成为了事实上的技术标杆。”
seeker
2022-04-19 00:45:14 +08:00
本贴不是回应是什么。。。
ZRS
2022-04-19 02:24:28 +08:00
感觉在看民科吧
siweipancc
2022-04-19 09:28:25 +08:00
你多少有点大病,流汗
NealLason
2022-04-19 09:51:14 +08:00
尴尬
ruanimal
2022-04-19 10:08:22 +08:00
虚空打靶

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/847620

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX