
1 theqiang 2022 年 3 月 31 日 via Android 不懂,不知道是不是之前的网上蹦迪实现原理 |
2 murmur 2022 年 3 月 31 日 剑三 25 人副本就乱的必须屏蔽特效了,万人同屏呢,怕不是连名字都不配显示 |
3 shunia 2022 年 3 月 31 日 好像说了什么,又好像什么都没说 |
4 shunia 2022 年 3 月 31 日 介绍技术产品不能光说废话,至少稍微聊一下做到这件事情的一些方法和细节吧,做了什么样的优化导致能实现这样的效果? 而且两台 128 核的机器?和上面的那些测试在比啥啊? |
5 xiangyuecn 2022 年 3 月 31 日 看起来就像一个伪需求 |
6 Jooooooooo 2022 年 3 月 31 日 这...来个视频展示效果呗. |
7 paradoxs 2022 年 3 月 31 日 什么游戏需要万人同屏啊。。 传奇打沙巴克吗 |
8 kop1989smurf 2022 年 3 月 31 日 这个“万人同屏”其实光一个 AOI 并不能说明问题。 1 、每个游戏的同步频率不同。 2 、每个游戏根据需求(游戏类型,玩法,反作弊等综合因素)不同,导致每次同步的数据量不同。 3 、楼主举的 4 个例子,其硬件环境并不统一。 |
9 Maboroshii 2022 年 3 月 31 日 via Android 一个 aoi 范围内有一万人吗? |
10 israinbow 2022 年 3 月 31 日 好, 可以去拉元宇宙大饼投资了. |
11 Huelse 2022 年 3 月 31 日 只是数据同屏?最后还是要分块的吧? |
12 learningman 2022 年 3 月 31 日 1080p 有 200 万像素点,万人同屏就是一人两百,大概 20*10 |
13 mzlzero 2022 年 3 月 31 日 @learningman 不是一万人平分你的屏幕空间,比如一万人可以叠在一起 |
14 Vindroid 2022 年 3 月 31 日 嗯,利好元宇宙 |
15 leiuu 2022 年 3 月 31 日 最近正好在看《架构之美》,看到 MMO 立马点进来了。 |
16 lysS 2022 年 3 月 31 日 @learningman 产品就是这样的,起尼玛一些什么玩意名字。其实就是 1w 长并发 |
17 Kinnice 2022 年 3 月 31 日 使用 2 台 128 核服务器,从上面挨个阅读下来我以为是两台 8 核呢。 每个数据摘要都没有可对比性。每个数据摘要中的 cpu 性能都没有体现,i3 和 i9 可不一样 |
18 cheng6563 2022 年 3 月 31 日 做的不错,有版号了吗 |
20 danhahaha 2022 年 3 月 31 日 我 5 年前就实现了一个万人同屏抢红包 |
21 seakingii 2022 年 3 月 31 日 晕死,别人好心开源个东西,没必要一堆嘲讽吧. 有用就用,感觉没技术含量就轻轻放过吧. 就我自己来说,感觉这个"万人同屏"确实是非常复杂的,很有技术难点 |
22 guabimian 2022 年 3 月 31 日 游戏是互联网产品里最有技术含量的 无论服务端 客户端 图形图像 音视频 算法等等各方面 做 crud 的就不要随意鄙视啦 |
24 qq296015668 2022 年 3 月 31 日 大佬。先膜下 |
25 luckyrayyy 2022 年 3 月 31 日 我玩过同屏,人数最多的游戏是永恒之塔,最多号称 3000 vs 3000 打架, 不光特效、人物模型需要魔改客户端文件屏蔽,角色名称都得屏蔽显示,然后卡成 ppt.... |
26 chairuosen 2022 年 3 月 31 日 消息风暴怎么解决 |
27 yaott2020 2022 年 3 月 31 日 via Android B 站那个修狗夜店就是这个做的吗? |
28 GGMM 2022 年 3 月 31 日 @yaott2020 修狗夜店我记得也是一个游戏,通过 danmu1 发送指令到游戏里来实现操控。但是蹦迪只需要一个人蹦,不需要与其它的用户交流,实体之间的数据不需要同步,所以我觉得单线程高并发应该就可以了。 |
29 c0xt30a 2022 年 3 月 31 日 好奇问下: 1 。 每个玩家在算法里是抽象为一个平面上的圆 /正六边形还是一个三维的圆柱体?或者更复杂的不规则三维模型? 2 。玩家之间的碰撞是怎么检测并模拟的? 3 。寻路算法是怎么设计的? 纯粹是好奇,如果问题很幼稚 /愚蠢还请 OP 原谅。 |
30 snw 2022 年 3 月 31 日 via Android 老罗前些天做广告的那个网游? |
31 VirgilMing 2022 年 3 月 31 日 反正我知道的是 魔兽世界怀旧服运行到安其拉的时候,经历了测试服之后,暴雪一顿优化,开门事件该卡还是卡。 |
32 wanacry 2022 年 3 月 31 日 就算是现实世界也没做到万人同屏啊?你有见过一万人同时在你的视野中吗? |
33 Nazgull 2022 年 3 月 31 日 感谢分享,没事看一下。 |
34 x86 2022 年 3 月 31 日 文字太长不想看,想看视频效果,添加的假人不算 |
35 whileFalse 2022 年 4 月 1 日 @wanacry @VirgilMing @c0xt30a @luckyrayyy @mzlzero @learningman @Jooooooooo 楼主应该只关注服务端技术。 客户端(玩家)很可能是只会移动和发送通用消息(可以理解为说话)。玩家在移动时,会进入离得近的其它玩家的视野,并从离得远的玩家的视野中消失。视野内其他玩家说的话自己能听到。 服务端只负责做这么几件事: * 计算玩家之间的视野范围,将其他玩家进入 /离开视野范围的消息通知当前玩家 * 当某个玩家移动时,将移动事件广播给视野内的其他玩家 * 当某个玩家说话时,将其广播给视野内的其他玩家 楼主研究的是怎么尽可能高效地计算视野,并依据视野广播相关消息。 |
37 documentzhangx66 2022 年 4 月 1 日 楼主说的这些,无非就是想通过优化,来支持所谓的万人同屏。 但所谓的优化,就是通过牺牲一些东西,来换取另外一些东西。不过某些场景,是无法牺牲特性的。 另外 EVE 曾经请了世界级的顶级算法与服务器大佬做优化,但也就那样了,千人就开始卡屏。 制约 N 人同屏的性能问题,主要在于单核的算力不足,以及各种网络设备随机 IO 的性能差。 |
38 taowen 2022 年 4 月 1 日 为啥分享个技术,这么多冷嘲热讽的?好好聊技术不行吗? |
39 yogogo 2022 年 4 月 1 日 摸下大腿 |
40 winglight2016 2022 年 4 月 1 日 @wanacry 我的印象中有过三次,千禧年大家在广场上一起倒计时,亚运会火炬、奥运会火炬过来的时候大街上挤满了人,就是前胸贴后背的那种,我相信有一万人了 |
43 tomari 2022 年 4 月 1 日 万人同屏( Unity includes a 10,000 NPC scene ),这个人,为什么是 NPC ? NPC 不是指的 non-player character 吗? |
44 fx777 2022 年 4 月 1 日 我有个疑问,万人国战,你服务器技术是撑住了。 但是用户的电脑 /手机, 能顶住吗? |
45 root01 2022 年 4 月 1 日 只能说牛逼 plus 了 如果真的在游戏这样玩, 我选择退出。 人多到我是谁我在哪都不知道呢。 |
46 cs8425 2022 年 4 月 1 日 这老哥跳又出来了啊.... 之前主打游戏状态之类的数据都该丢 redis 直接否定多数游戏场景的计算跟强一致性的刚需, 还是要靠内存内操作达成的事实 整个主题都在"redis 的异步读写每秒可以支持 10 万次"上面反覆横跳 Orz mark 观望一下这次又要卖啥药.... |
47 iqoo 2022 年 4 月 1 日 随着摩尔定律的升级,MMO 万人同屏最终成功! |
49 th00000 2022 年 4 月 1 日 有压力测试结果可以参考一下吗? 压力测试方案是否能公开? |
50 starix 2022 年 4 月 1 日 @documentzhangx66 说的挺对; 曾经参与的 MMO 国战游戏,同屏压力在于客户端(网络数据传输以及显示压力),一个玩家周围最大能显示多少,按照九宫格或是半径计算,从服务端传过来每个周围玩家的数据都是非常庞大的(模型、时装、头发、装备外显等等)然后这种相互之间的数据都是在实施变化。 |
51 th00000 2022 年 4 月 1 日 @th00000 #49 看了一下知乎上的文章, 貌似万人只是在 AOI 内放着, 也没进行任何的接近真实的有效同步, 如果是这样的话, 离万人同屏貌似还有一些差距。 |
52 starix 2022 年 4 月 1 日 @th00000 真的是理论数据看看就行,我之前国战项目不是没跑过机器人压测,但是在真实问题前面,这些都是买家秀和卖家秀的区别。显示瓶颈可以通过算法控制单体玩家需要看到的玩家数和数据,但是网络瓶颈是我们当时遇到最无法解决的,需要广播出去的数据就那么些,但是同时并发广播给那么多个客户端,客户端接收的数据量又非常大,瞬时压力导致卡顿非常明显,以此影响战斗,得不偿失。 |
53 scr 2022 年 4 月 1 日 万人同屏的 mmo 游戏,客户端服务器压力什么的先不说,可以先算算简单的移动同步需要多少的网络带宽。 |
54 wanacry 2022 年 4 月 1 日 via iPhone @winglight2016 #39 但是是你的视野里同一时间装不下这么多人,你得来回扫视,才能让你感觉出有上万人 如果是站在比较高或者远的地方不需要扫视就看到了上万人,那么细节也想必是丢失严重的 |
56 imherer 2022 年 4 月 1 日 |
58 shunia 2022 年 4 月 1 日 上面那些照顾 PO 主的是 PO 主 QQ 群里的群员吗? 这个东西就是懂的都懂,他说的确确实实全是废话,不懂的才会在那里瞎咧咧。 万人同屏从服务器端的纯技术实现上来说也根本就是废话,因为你不考虑任何实际情况的话,万人同屏不就是一万个用户信息的数据结构吗?即便加上消息系统,你不考虑带宽、延迟和前端实现的情况下,随便写不也能实现? 再说测试用例的问题,一万个 NPC 放在同一个屏幕里,就好比 Unity 的 ECS 例子一样,同屏上十万个同方向移动的对象,fps 也能上 60 ,但是有意义吗?更何况他还拿两台 128 核的机器在这玩非真实场景的负载。 |
59 shunia 2022 年 4 月 1 日 更别说 TMD 代码仓库一点进去就是让你加 QQ 群,一句有用的话没有。 再加上我一看代码更来气,整个有用的就一个 bigworld 类啊,干啥了?给地图分块了。其他 50% 的代码是三方库。我一个前端都看得出来这是水代码啊 |
60 devcat 2022 年 4 月 1 日 后面的这个名词解释笑死了 > 4. 万人同屏( Unity includes a 10,000 NPC scene ) 在同客户端屏幕内展现 1 万个游戏对象。对于游戏服务器是将 1 万个游戏对象放入 AOI 范围内。 前面说的是万人同屏,但是英文却是 10,000 NPC ,众所周知 NPC 的全称是 non-player character ,也就是非人角色,那万“人”同屏指的是一个人非人同屏呗? |
61 pkoukk 2022 年 4 月 1 日 AOI 一万的意思是,中心的 BOSS 放了一个 AOE ,周围 1 万人都会掉血么? 想起我曾经玩的网游,客户端支持的同屏只有 100 左右,再多机器受不了 但是服务端显然不止,起码有 300-500 ,所以打团战的时候经常死于不明 AOE ,甚至有时候你被身边的敌人打死了,因为客户端同屏限制,你看不到这个人 所以恕我直言,更大的 AOI 反而导致玩家聚集时的体验更差。毕竟玩家不可能用 128 核的机器玩游戏 |
62 seakingii 2022 年 4 月 1 日 @shunia 随便扣帽子?什么毛病? 技术上有问题就讲技术上的问题,楼主骗钱就拿出证据. 我就是看不习惯这些没有证据就乱指责的人,还有你这种随便扣帽子的人.我是不是也可以说你是有扣帽子习惯的红卫兵的后代? 你不能要求所有做开源的人都是顶尖高手,不骗人钱,就算是水一点也不犯法. 如果楼主的代码能对别人有点帮助,多少也是好事.如果太水浪费了别人的时间,就是不得了的罪行了? |
63 ysy950803 2022 年 4 月 1 日 写得挺好的,学习了。不知道楼主这个优化和 WOW 的无缝相位技术有什么优劣区别呢? |
64 ysy950803 2022 年 4 月 1 日 回忆起早年九城运营 WOW 的时候,去阿拉希盆地(不是战场,是野外地图)打阵营战,估计也就几百上千人,双方交战卡成 PPT ,然后没多久整个服务器就宕机了,甚至还有回档的情况,那些没参与战斗掉线的玩家一脸懵逼哈哈哈。 |
65 crackhopper 2022 年 4 月 1 日 @cs8425 我跟你观点一样,上次就跟这哥们 battle 过一次,还被对方一顿喷,说我缺乏工程师素养。 |
66 hackfly 2022 年 4 月 1 日 客户端没必要万人同屏吧,顶多几十人就可以解决了,一般都是基于距离剔除 |
67 aru 2022 年 4 月 6 日 期待 OP 忽悠成功,拉到投资 |
68 greatx 2022 年 4 月 6 日 小作文语气和民科一模一样,看着就不太靠谱。 |
69 xingyuc 2022 年 4 月 6 日 reddit place 那种不限时间就好玩了 |
70 felixcode 2022 年 4 月 6 日 via Android 楼主开创了"万人同屏"这个词并掌握了解释权和实现权,谷歌搜索排名第一。 |