我想知道实时浏览器游戏如何像ogame一样工作?
你如何不断更新资源等内容?
我唯一的建议就是让计算机24-7开启,但这不可能。
答案 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.
因此,无论何时金额或收入发生变化,都要记录时间戳,资源金额和资源收益率。然后,您将获得所有数据,以便在将来的任何时间点计算资源量。