V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gantleman
V2EX  ›  程序员

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

  •  
  •   gantleman ·
    gantleman · 2022-04-18 11:49:11 +08:00 · 3521 次点击
    这是一个创建于 979 天前的主题,其中的信息可能已经有所发展或是发生改变。
    luacluster 已经发布了快一个月了。
    我没有回应任何对于这个项目的质疑。
    qq 群也没有加任何一个人。
    发布后的这 3 个多星期,都一直忙着在做数据库接入的工作。
    后面还要整理技术文档。

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

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

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

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

    上次的死锁终结解决方案怎么没下文了啊
    dcoder
        6
    dcoder  
       2022-04-18 15:20:42 +08:00
    万人同屏的... 啥游戏? MMORPG, ACT, FPS, 还是联众棋牌? 区别可太大了
    nuk
        7
    nuk  
       2022-04-18 15:33:04 +08:00
    这个预测玩家移动有点像守望先锋的预测回退,可以让玩家感受的延迟变低。。
    ztxcccc
        8
    ztxcccc  
       2022-04-18 15:34:48 +08:00
    EVE 这种星战题材的也没万人同屏需求吧
    felixcode
        9
    felixcode  
       2022-04-18 15:45:46 +08:00
    既然推动了一个行业,能不能介绍一下业界应用和反馈?
    XiLingHost
        10
    XiLingHost  
       2022-04-18 15:48:58 +08:00
    @ztxcccc 几百人都不用同屏,同星系就要时间膨胀了
    Kinnice
        11
    Kinnice  
       2022-04-18 16:12:53 +08:00   ❤️ 1
    如果说 "已经成为了事实上的技术标杆","绕不开",但是却没有任何第三方做例证,我感觉有些 false , big and null
    Chinsung
        12
    Chinsung  
       2022-04-18 16:37:58 +08:00
    请问一下,这是一个封装了 redis 集群常用 lua 脚本的项目吗
    changnet
        13
    changnet  
       2022-04-18 17:20:33 +08:00   ❤️ 4
    ```
    因为 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
        14
    felixcode  
       2022-04-18 18:00:36 +08:00 via Android   ❤️ 2
    你们随便问好了,过段时间楼主可以再开个帖

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

    但是搜索了一下,并没有发现那些事实可以证明“luacluster 已经成为了事实上的技术标杆。”
    seeker
        16
    seeker  
       2022-04-19 00:45:14 +08:00   ❤️ 1
    本贴不是回应是什么。。。
    ZRS
        17
    ZRS  
       2022-04-19 02:24:28 +08:00 via iPhone   ❤️ 1
    感觉在看民科吧
    siweipancc
        18
    siweipancc  
       2022-04-19 09:28:25 +08:00 via iPhone   ❤️ 1
    你多少有点大病,流汗
    NealLason
        19
    NealLason  
       2022-04-19 09:51:14 +08:00
    尴尬
    ruanimal
        20
    ruanimal  
       2022-04-19 10:08:22 +08:00
    虚空打靶
    vincentjie
        21
    vincentjie  
       2022-04-19 19:22:12 +08:00
    这应该是楼主的一种营销手段吧,毕竟黑粉也是粉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2648 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:00 · PVG 15:00 · LAX 23:00 · JFK 02:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.