公司新闻

游戏知识实验课:回放外推为何要设置最长预测时间——两帧快照与2拍外推上限(练习22)

2026-10-31

只拿到最近两份位置快照时,可以沿最近速度短暂预测当前位置。时间越久,方向和速度不变的假设越难成立,因此例子给外推设置明确上限。

本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。

规则与输入

两份快照时刻递增,位置是二维整数。以两点间平均速度作恒速外推;查询都不早于最新快照,超过外推上限后停在上限时刻的预测位置,不继续远走。结果用精确分数保留。

快照(0,[4, 7])和(2,[-1, 3]),预测上限2 [2, 4, 5, 13, 10, 2, 2, 11, 2, 11, 13, 11, 12]

逐步推演

查询时刻2,距最新快照0拍,实际预测0拍,速度['-5/2', '-2'],预测位置['-1', '3'];处于允许预测范围。

查询时刻4,距最新快照2拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];处于允许预测范围。

查询时刻5,距最新快照3拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

查询时刻13,距最新快照11拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

查询时刻10,距最新快照8拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

查询时刻2,距最新快照0拍,实际预测0拍,速度['-5/2', '-2'],预测位置['-1', '3'];处于允许预测范围。

查询时刻2,距最新快照0拍,实际预测0拍,速度['-5/2', '-2'],预测位置['-1', '3'];处于允许预测范围。

查询时刻11,距最新快照9拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

查询时刻2,距最新快照0拍,实际预测0拍,速度['-5/2', '-2'],预测位置['-1', '3'];处于允许预测范围。

查询时刻11,距最新快照9拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

查询时刻13,距最新快照11拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

查询时刻11,距最新快照9拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

查询时刻12,距最新快照10拍,实际预测2拍,速度['-5/2', '-2'],预测位置['-6', '-1'];已限制继续外推。

超过外推上限的查询全部停在同一预测端点,不能当作继续收到新位置。

怎样独立检查

先求最新时刻到查询时刻的有效预测时长,不能超过规定上限;再分别核对两轴的位移是否为速度乘这段时长。多个超出上限的查询应得到相同位置。

外推结果是基于假设的估计,不是实际收到的新位置。角色若中途转向,预测会产生误差;上限只限制偏移继续累积,并不保证估计正确。本例没有处理新快照到来后的校正或画面平滑。

练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。