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