1
arch9999 2022-05-16 21:54:32 +08:00
先死的人打出去的子弹,是没有伤害的。
|
2
pkoukk 2022-05-16 21:54:45 +08:00
没怎么打过 csgo ,但是小时候在网吧 cs1.5 的时候,有专门的对狙图
同时身亡概率还蛮高的,可能那会 tick 比较低吧 |
3
arch9999 2022-05-16 22:01:05 +08:00
没看后半段,同一 tick 内互相造成致死伤害,CSGO 是随机一人死亡。不过我感觉是先送达数据包到服务端的一方存活。
|
4
jsq2627 2022-05-16 23:16:38 +08:00
按照一般程序员的逻辑,在一个 tick 内,肯定是把 buffer 队列里的数据包按顺序逐个处理,那就有先后了
至于 buffer 里这两个包的先后又是怎么确定的,这就涉及 OS 以及上联各级路由器的包转发策略了 :D |
5
jsq2627 2022-05-16 23:21:41 +08:00
万一在 LAN 里两台电脑的包正好同时到达交换机(“同时”指在交换机的一个时钟周期里),如果交换机是按照从端口从左到右从上到下扫描过去,那么左上角端口网线连着的选手一定更具有竞争优势 🤣
|
6
XiaoGouBa 2022-05-16 23:29:14 +08:00 via Android
死后伤害就没有效判定了,v 社可能在延迟上做了手脚,所以 0.0078125s 同时开火根本不可能发生?
|
7
Maboroshii 2022-05-17 00:42:22 +08:00 via Android
随缘就行了,没必要计较这么点时间差吧。人类根本无法感知
|
8
across 2022-05-17 01:35:52 +08:00 via iPad
反正最后是在服务器上计算判断,这个又没法并行,事件可能按游戏内时间戳排序,有可能一帧之内两方子弹都命中对方,这种极小概率,要不要一起死都不太影响游戏性。
|
9
Mutoo 2022-05-17 06:17:47 +08:00
有些游戏的结束判定并不是每帧计算的,而是每 N 帧判定,例如 N=30 ,这种情况是可以判定平局的。这种小概率事件没有什么必要,真正的高手比赛赛制也不会是简单的一局定输赢。
|
11
kop1989smurf 2022-05-17 09:27:05 +08:00 1
首先,明确两个概念。
1 、服务器端其实没有极端的“同时”概念,客户端互斥的操作逻辑关系可以靠队列。(所以会出现玩家游戏体验与游戏判定不符的情况,比如你还没看到人,你就已经死了) 2 、业务判断很大程度上不能只依赖 1tick 。(因为 1tick 不可靠,只依赖 1tick 很容易出现意料之外的效果,比如吞子弹) 明确了这两个概念之后,是不是相对逻辑就明晰了? 业务上,互杀可以实现,也可以不实现,纯看需求(判定规则)。 至于说“这样是否公平”,我认为只要判定标准,以及双方延时是一致的(这个延时不一定和 ping 值成线性关系,这要看延时优化),其实就公平。 |
12
LaGeNanRen 2022-05-17 09:31:25 +08:00 1
9 楼说的是对的,首先这实在是太小概率事件了
pvp 时,判定都是上传到服务器的,就像你本地的弹道落点和服务器的弹道落点有差一样,以服务器的为准 比如开镜对狙,假如结果上你是死掉的那个,其实你本地可能按下左键开枪了,甚至看到枪械开枪的动画了,但最后显示你死了,这个时候就是玩家常常说的“怎么我这枪没伤害啊”,这样一想是不是懂了,在打 faceit 之类的国外服务器,延迟比较高的时候会常见一些 两边对枪同时死的情况有,但我大号玩了 1500h ,加上小号还有帮朋友上分,我算总共玩了 2000h 吧,就遇到过一次吧,实在是太小概率了 |
13
tukela 2022-05-17 09:36:35 +08:00 via iPhone
还得考虑弹道命中率问题。
弹道不是百分百命中,会漂移。 所以有时候会出现明明打中了,实际上没有中。 |
14
glfpes 2022-05-17 09:40:12 +08:00
死后如果无法造成伤害,那的确不可能同时死亡
像 LOL 技能有弹道,经常出现对拼同时死亡的情况 |
15
hhaobao 2022-05-17 10:17:19 +08:00
听着很有意思的, 虽然不做游戏服务端开发, 请问各位这方面有啥书可以看一下的?
|
16
zjj19950716 2022-05-17 10:30:41 +08:00
同一条直线上,子弹和子弹会不会对冲掉
|
17
CSGO OP @zjj19950716 😄,看来你没玩过这种游戏,CSGO 压根没有子弹。战地游戏倒有子弹,飞出去还要时间,存在同时死亡。
|
18
Senorsen 2022-05-17 12:49:28 +08:00
小时玩 CS1.6 遇到过同时身亡,CSGO 不知。
|
19
eGlhb2Jhb2Jhbw 2022-05-17 13:13:05 +08:00
@CSGO #17 没咋玩过,CSGO 没有子弹吗?我咋记得有个视频是开枪了,但是没打中,被反杀了,然后裁判慢放看见是弹起的瓶子挡住了狙的子弹。
|
20
across 2022-05-17 15:06:09 +08:00 via iPhone
@eGlhb2Jhb2Jhbw 普通游戏射击验证做射线检测就可以了,不用考虑子弹速度,ak 飘移也是枪口自己歪了,不是弹道弯了。这类不需要子弹,弹壳动画放一放得了。
某些特别武器,比如榴弹枪,rpg 速度慢的,或者写实性强的,专门做弹道物理,然后检查弹道上的碰撞情况。 |
21
MiketsuSmasher 2022-05-17 17:46:53 +08:00
CSGO 不知道。
但如果是 WOTB ,双方各有一辆残血坦克,在足够远的距离上朝对方开炮,确实会出现同时死亡的情况。 |
22
krixaar 2022-05-17 18:00:08 +08:00
有 csgo 的奇思妙想先搜搜 3kilks
|