实时浏览器游戏如何运作?

时间:2015-04-03 20:28:56

标签: real-time game-engine

我想知道实时浏览器游戏如何像ogame一样工作?

你如何不断更新资源等内容?

我唯一的建议就是让计算机24-7开启,但这不可能。

2 个答案:

答案 0 :(得分:1)

一种可能的情况:
有一个http服务器(当然是24x7!)和服务器与客户端之间的一些Web套接字,任何更改都会立即通过套接字发送给客户端,因此页面会快速更新。实际上没有什么奇怪的事情发生。

答案 1 :(得分:1)

通常,虽然人们没有与游戏互动,但他们拥有相当稳定的资源流。因此,在更改此流程的事件之间,您不需要更新金额,而是计算它。

例如。假设在某些游戏中有一个stone资源。玩家从0 stones开始,并且能够构建stone quarry,每小时产生1 stone,然后可以升级为2级,这样就可以产生2 stones每小时。最初,我们知道玩家没有stone quarry所以他的stone收入每小时为0。然后玩家构建stone quarry并进行以下日志条目:

at time T0 player P build stone quarry. He had 0 stones at that moment and stone income is now 1 stone per hour.

从这一刻开始,如果没有任何反应,我们可以随时计算石头的数量,我们不需要保持更新。

如果玩家在某些东西上花费石头,我们会添加以下日志条目:

at time T1 player P spent X stones on <something>. He now has S1 stones and stone income is 1 stone per hour.

之后,即使我们的服务器崩溃(假设日志以某种方式加强),我们也可以随时获得计算结石数量的完整信息。

然后玩家升级stone quarry

at time T2 player P upgraded stone quarry to level 2. He had S2 stones at that moment and stone income is now 2 stones per hour.

因此,无论何时金额或收入发生变化,都要记录时间戳,资源金额和资源收益率。然后,您将获得所有数据,以便在将来的任何时间点计算资源量。