我读了这篇文章:如何设计一个重放系统,但是它并不能真正回答我的问题。
我的游戏是用游戏的客户端“视图”作为与服务器“模型”和“控制器”分开的程序构建的。(有点像mmo或以此方式构建的任何多人游戏)。服务器端始终是游戏的“真相”,它仅接受动作请求作为来自客户端的输入,并输出事件和“当前状态”消息。
游戏模型和规则是完全确定的,并且具有固定的“刻度”更新周期,因此在服务器端,我既可以记录发送到客户端视图的事件,也可以记录操作请求。两者都与特定的循环编号相关。
问题是:在这种情况下,要设置重放系统,我应该使用输入内容还是用户操作请求(如此处所建议)或事件?
在我看来,两者将给出完全相同的输出。我可以看到的唯一区别是:
- 事件提供真正的输出,而必须处理操作请求以提供事件。
- 动作请求可能要记录的数据要少得多。
还有其他事情要考虑吗?