大家好,

我很好奇 multiplayer 游戏是如何在小文件大小里保存玩家录像的。听起来像是一道工程奇迹。大致看起来很容易实现,但很可能不是。

比如说在 FPS 游戏里,玩家角度、运动、跳跃等数据以及其他玩家的数据都需要被存储。例如在 CS 游戏中,烟幕、其他玩家操作等都需要被记录。在游戏中,有时候玩家需要交换武器,检查枪支,抛弃枪在特定地方等情况。

我认为他们可能是把这些数据存储成这样:

| player_id | primary_weapon | ... | health | armor | position | angle | timestamp |

也可能存在另一个文件存储地图本身。

然后通过使用时间戳来显示游戏。

他们有时候会使用压缩算法和二进制格式等方式来实现文件压缩,减少录像文件的大小。