A9VG电玩部落论坛

 找回密码
 注册
搜索
楼主: centon

1级低士气2周目BOSS无伤(整个新活,持续更新)

[复制链接]

精华
1
帖子
13862
威望
1 点
积分
17095 点
种子
2516 点
注册时间
2007-2-3
最后登录
2024-5-2
发表于 2023-3-11 20:14  ·  河北 | 显示全部楼层
本帖最后由 寂静之声 于 2023-3-11 21:11 编辑
raiya2 发表于 2023-3-11 19:40
那么我就问你,如果游戏里面每秒程序问询60次,那么在这1/60秒内的所有输入还有游戏中发生的事情,以及他 ...


不管缓冲多少内容,本质都是为了逻辑帧提供数据。上一个逻辑帧接收数据,生成下一个逻辑帧。一个逻辑帧是一个游戏状态,它是结果。你说的有前后顺序逻辑关系的是上一帧和下一帧的关系。游戏是离散变化的,不是连续变化。游戏是离散变化的,不是连续变化。游戏是离散变化的,不是连续变化。游戏逻辑是有固定频率的。你的CPU,GPU再快的游戏的逻辑频率也是固定的。这是游戏软件决定的不取决于硬件,硬件要做的是保证逻辑帧的稳定,尽可能多的生成渲染帧。

游戏就是切割成一块一块的各个状态,芯片多快也要报告给游戏。

精华
0
帖子
8362
威望
0 点
积分
8684 点
种子
523 点
注册时间
2009-7-29
最后登录
2024-5-2
发表于 2023-3-11 22:34  ·  上海 | 显示全部楼层
本帖最后由 raiya2 于 2023-3-11 22:40 编辑
寂静之声 发表于 2023-3-11 20:14
不管缓冲多少内容,本质都是为了逻辑帧提供数据。上一个逻辑帧接收数据,生成下一个逻辑帧。一个逻辑帧是 ...


我觉得你搞错了一件事情。我要求的是,能够计算出,一个行为是在哪一个毫秒做的,就行了。这个计算时可以60Hz频率进行的,并不需要即时到1000Hz。

这1/60秒的一个节点里面,有没有1毫秒单位的时间数据和先后顺序?这个顺序是不是参与逻辑计算?因为很明显,你要计算一个东西是不是在60Hz节点的时间之内,不可能是1/60秒为计时单位的吧?你也说了,数字计算机的所有行为都是离散的,都是一个个点,那么怎么标清楚这些点是离散的呢?肯定是有时间标记的。

如果这一个节点内的所有数据,都是以毫秒为单位记录的,那么它不过就是以60Hz频率进行当前的计算,但是计算结果依旧是毫秒为单位的。这事情就像记账一样,一个月算一次,算的是每天甚至每小时的帐,有什么问题吗?

而且很明显,这个数据是跨越节点的,是可以追溯到之前的几个节点的。比如说可以输入有3/60帧的误差吧?那既然所有的行为,都有毫秒为单位的时间标记,而且都是向过往可追溯的,那么计算一个动作的判定的时候,增加一个他是哪一毫秒做的这样的判定,有什么问题吗?

精华
1
帖子
13862
威望
1 点
积分
17095 点
种子
2516 点
注册时间
2007-2-3
最后登录
2024-5-2
发表于 2023-3-12 00:50  ·  河北 | 显示全部楼层
raiya2 发表于 2023-03-11 22:34
本帖最后由 raiya2 于 2023-3-11 22:40 编辑



我觉得你搞错了一件事情。我要求的是,能够计算出,一个行为是在哪一个毫秒做的,就行了。这个计算时可以60Hz频率进行的,并不需要即时到1000Hz。

这1/60秒的一个节点里面,有没有1毫秒单位的时间数据和先后顺序?这个顺序是不是参与逻辑计算?因为很明显,你要计算一个东西是不是在60Hz节点的时间之内,不可能是1/60秒为计时单位的吧?你也说了,数字计算机的所有行为都是离散的,都是一个个点,那么怎么标清楚这些点是离散的呢?肯定是有时间标记的。

如果这一个节点内的所有数据,都是以毫秒为单位记录的,那么它不过就是以60Hz频率进行当前的计算,但是计算结果依旧是毫秒为单位的。这事情就像记账一样,一个月算一次,算的是每天甚至每小时的帐,有什么问题吗?

而且很明显,这个数据是跨越节点的,是可以追溯到之前的几个节点的。比如说可以输入有3/60帧的误差吧?那既然所有的行为,都有毫秒为单位的时间标记,而且都是向过往可追溯的,那么计算一个动作的判定的时候,增加一个他是哪一毫秒做的这样的判定,有什么问题吗?


伤害值的不同强烈影响游戏的逻辑结果,比如我这一刀砍下去,敌人受的伤害不同,可能表现就不同,比如伤害轻敌人有霸体他可能会顶着伤害挥刀砍我,如果伤害重一些他可能会出现大硬直,伤害再重一些他可能就死了。游戏也要根据上面的结果渲染不同的动画,比如渲染敌人砍我的动画,还是渲染敌人硬直的动画,抑或渲染敌人倒地死亡的动画。所以伤害这种强烈影响游戏逻辑的数据是肯定要与逻辑帧绑定的。不与逻辑帧绑定的数据肯定是不参与影响游戏结果的数据。比如每秒中光线反射多少次,肯定是频率越高越好,但是光线反射的频率再高只是让游戏的效果更真实,玩家看到的画面更好,而不会影响游戏逻辑结果。
发自A9VG Android客户端

精华
1
帖子
13862
威望
1 点
积分
17095 点
种子
2516 点
注册时间
2007-2-3
最后登录
2024-5-2
发表于 2023-3-12 01:13  ·  河北 | 显示全部楼层
raiya2 发表于 2023-03-11 22:34
本帖最后由 raiya2 于 2023-3-11 22:40 编辑



我觉得你搞错了一件事情。我要求的是,能够计算出,一个行为是在哪一个毫秒做的,就行了。这个计算时可以60Hz频率进行的,并不需要即时到1000Hz。

这1/60秒的一个节点里面,有没有1毫秒单位的时间数据和先后顺序?这个顺序是不是参与逻辑计算?因为很明显,你要计算一个东西是不是在60Hz节点的时间之内,不可能是1/60秒为计时单位的吧?你也说了,数字计算机的所有行为都是离散的,都是一个个点,那么怎么标清楚这些点是离散的呢?肯定是有时间标记的。

如果这一个节点内的所有数据,都是以毫秒为单位记录的,那么它不过就是以60Hz频率进行当前的计算,但是计算结果依旧是毫秒为单位的。这事情就像记账一样,一个月算一次,算的是每天甚至每小时的帐,有什么问题吗?

而且很明显,这个数据是跨越节点的,是可以追溯到之前的几个节点的。比如说可以输入有3/60帧的误差吧?那既然所有的行为,都有毫秒为单位的时间标记,而且都是向过往可追溯的,那么计算一个动作的判定的时候,增加一个他是哪一毫秒做的这样的判定,有什么问题吗?


1/60秒的时间范围内,有前后逻辑的就是帧查询窗口内有没有收到指令,玩家输入了一个什么数据,没等到输入也是一个数据,然后硬件根据这个数据再结合上一帧完成计算给出结果,而这一帧又成了下一帧计算的数据依据,如此往复。这一帧的时间内没有游戏逻辑的前后,有游戏逻辑前后的一定是上一帧和下一帧的关系。因此游戏的逻辑只能识别帧查询窗口内有没有指令,而不知道这个指令是在查询窗口的哪一个具体的毫秒内输入的。
发自A9VG Android客户端

精华
1
帖子
13862
威望
1 点
积分
17095 点
种子
2516 点
注册时间
2007-2-3
最后登录
2024-5-2
发表于 2023-3-12 01:53  ·  河北 | 显示全部楼层
raiya2 发表于 2023-03-11 22:34
本帖最后由 raiya2 于 2023-3-11 22:40 编辑



我觉得你搞错了一件事情。我要求的是,能够计算出,一个行为是在哪一个毫秒做的,就行了。这个计算时可以60Hz频率进行的,并不需要即时到1000Hz。

这1/60秒的一个节点里面,有没有1毫秒单位的时间数据和先后顺序?这个顺序是不是参与逻辑计算?因为很明显,你要计算一个东西是不是在60Hz节点的时间之内,不可能是1/60秒为计时单位的吧?你也说了,数字计算机的所有行为都是离散的,都是一个个点,那么怎么标清楚这些点是离散的呢?肯定是有时间标记的。

如果这一个节点内的所有数据,都是以毫秒为单位记录的,那么它不过就是以60Hz频率进行当前的计算,但是计算结果依旧是毫秒为单位的。这事情就像记账一样,一个月算一次,算的是每天甚至每小时的帐,有什么问题吗?

而且很明显,这个数据是跨越节点的,是可以追溯到之前的几个节点的。比如说可以输入有3/60帧的误差吧?那既然所有的行为,都有毫秒为单位的时间标记,而且都是向过往可追溯的,那么计算一个动作的判定的时候,增加一个他是哪一毫秒做的这样的判定,有什么问题吗?


游戏逻辑是以帧为单位,60帧就是16.67毫秒,要想游戏逻辑识别1毫秒的输入差别就得把游戏逻辑在时间上一秒切成1000份,也就是1000帧。你说的3/60的输入误差跟游戏的逻辑是两码事,而是游戏程序设计了指令残留。假如某个超人能在3帧内精准输入升龙拳的指令,他的操作是第一帧输入6,第二帧输入2,第三帧输入了3+A,游戏程序会认为他第一帧输入了6,第二帧输入了6、2,第三帧他输入了623A,即玩家在这一帧完成了升龙拳的指令,下一帧开始升龙拳的前摇。这是不考虑游戏程序本身的延迟。街霸5好像游戏本身的延迟就挺大的,好几帧之后才开始前摇,我玩的少不清楚具体延迟多少。输入误差就是游戏程序储存了几帧之内玩家输入的所有指令,在这几帧之后玩家前面输入的指令才开始无效。
发自A9VG Android客户端

精华
0
帖子
8362
威望
0 点
积分
8684 点
种子
523 点
注册时间
2009-7-29
最后登录
2024-5-2
发表于 2023-3-12 02:33  ·  上海 | 显示全部楼层
寂静之声 发表于 2023-3-12 00:50
伤害值的不同强烈影响游戏的逻辑结果,比如我这一刀砍下去,敌人受的伤害不同,可能表现就不同,比如伤害 ...

不需要的。因为首先游戏中的所有行为,本身切换的间隔不会小于这个计算节点,这是基本逻辑,不是吗?

比如说,你之前1/60秒有一个判定,在攻击或者挨打,下一个1/60秒你就跳起来施法了,这种这么短的间隔很少见。即使可以,也不可能你再下一个1/60秒,你又去发了另一个必杀技。哪怕还可以,那么再再下一个1/60秒,行为的可能性也肯定用完。而NPC也是这样的。所有的行为都是很有限的和可预测的,间隔都远大于时间节点。

而如果在这个时间节点内,你有两个指令同时输入的话,他们一定是有优先级的。判定也是,肯定是有优先级的。总之就是,计算量的需求和速度需求,是远低于你说的这种会产生矛盾的结果的。。只有在有大量单位的游戏,比如说什么无双,什么星际争霸,才会叠加出一个严重的结果。


再加上这种动画显示结果,慢1/60还是快1/60,都是没有影响,因为系统本身引擎的延迟远高于这个时间。你哪怕下一个1/60秒的输入变了,但实际上画面是3/60秒之前的内容。而且,因为结果是可预测的,所以大不了做一个预测回滚机制,比如说,无非就是两个判定上去了,谁打谁。

精华
0
帖子
8362
威望
0 点
积分
8684 点
种子
523 点
注册时间
2009-7-29
最后登录
2024-5-2
发表于 2023-3-12 02:45  ·  上海 | 显示全部楼层
寂静之声 发表于 2023-3-12 01:53
游戏逻辑是以帧为单位,60帧就是16.67毫秒,要想游戏逻辑识别1毫秒的输入差别就得把游戏逻辑在时间上一秒 ...

我的意思是,他可以追溯前几个时间点的数据,里面一定包含着当时的所有数据,包括时间标记。剩下的只是打比方,最终给你看到层面,是毫秒为节点,还是1/60秒节点的,这只是打比方随便用的。

我就问你,他凭什么知道,哪些是第一帧的,哪些是第二帧的,怎么算先后?无论如何他们都会有一个频率远高于1/60的计时和标记。就好像,59秒就是0分。60秒就是1分钟,你想要计算这个是第一分钟,这个是第二分钟,那么就必须有秒。而事实上,计算机内部的时钟,是始终在工作的,最小的可以纳秒为单位。

精华
1
帖子
13862
威望
1 点
积分
17095 点
种子
2516 点
注册时间
2007-2-3
最后登录
2024-5-2
发表于 2023-3-12 07:59  ·  河北 | 显示全部楼层
raiya2 发表于 2023-03-12 02:45


我的意思是,他可以追溯前几个时间点的数据,里面一定包含着当时的所有数据,包括时间标记。剩下的只是打比方,最终给你看到层面,是毫秒为节点,还是1/60秒节点的,这只是打比方随便用的。

我就问你,他凭什么知道,哪些是第一帧的,哪些是第二帧的,怎么算先后?无论如何他们都会有一个频率远高于1/60的计时和标记。就好像,59秒就是0分。60秒就是1分钟,你想要计算这个是第一分钟,这个是第二分钟,那么就必须有秒。而事实上,计算机内部的时钟,是始终在工作的,最小的可以纳秒为单位。


游戏逻辑是以帧为单位,你不接受我也说服不了你。
发自A9VG Android客户端

精华
4
帖子
7729
威望
7 点
积分
6889 点
种子
30 点
注册时间
2007-6-25
最后登录
2023-12-15
发表于 2023-3-14 08:10  ·  上海 | 显示全部楼层
认知越低的人越无法接受真相
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-5-2 07:01 , Processed in 0.223696 second(s), 13 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部