大家好,我正在开发一个游戏引擎,或者说是一个专门用于实现我梦想中的游戏引擎。 我希望能够支持多人游戏,因此经过一些研究后似乎最好的方法是先按照多人游戏的方式编写游戏,然后在单人游戏的情况下,只运行一个本地服务器。这是为了避免在之后的时间里重新编写整个游戏来支持多人游戏。
我在某个地方卡住了,游戏的一个核心方面是它是高度可预测的随机生成的。 我的目标是使得服务器和客户端都可以给出相同的数据,给定相同的种子。 一个优势是,客户端可以生成和服务器相同的环境和对象,只有通信是为了复制其他玩家和物理对象(服务器不需要告诉客户端关于随机生成对象的存在,因为它预计客户端已经在本地生成了它)。 如果客户端想要与一个随机生成的对象进行交互,它们实际上需要要求服务器允许追踪和复制到其他玩家的结果(因为交互可以在客户端完全解决,由于其可预测性质)
我担心的是,如果我编写游戏使得单人游戏只是一个本地部署的服务器和客户端,那么同样的随机生成数据将在同一台电脑上存在两次,看起来是冗余的。在我的情况下,如果我选择描述的多人游戏第一实现方式,那么支持多人游戏就变成一个快速设置的过程,但代价是数据冗余和潜在的代码冗余。
评论 (0)