实时浏览器游戏如何运作?
How does a real time browser game work?
我想知道实时浏览器游戏如何像 ogame 一样工作?
你是如何不断更新资源之类的东西的?
我唯一的建议是让电脑 7 天 24 小时开机,但事实并非如此。
一种可能的情况:
在服务器和客户端之间有一个 http 服务器(当然是 24x7!)和一些 web 套接字,任何更改都会立即通过套接字发送到客户端,因此页面更新很快。
实际上并没有发生什么奇怪的事情.
通常,虽然人们不与游戏互动,但他们拥有相当稳定的资源流。因此,在改变此流量的事件之间,您不需要更新金额,而是计算它。
例如。假设在某个游戏中有一个 stone
资源。玩家从 0 stones
开始,能够建造每小时生产 1 stone
的 stone quarry
,然后可以升级到 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.
所以想法是在数量或收入发生变化时记录时间戳、资源数量和资源收入率。然后您将拥有所有数据来计算未来任何时间点的资源量。
我想知道实时浏览器游戏如何像 ogame 一样工作?
你是如何不断更新资源之类的东西的?
我唯一的建议是让电脑 7 天 24 小时开机,但事实并非如此。
一种可能的情况:
在服务器和客户端之间有一个 http 服务器(当然是 24x7!)和一些 web 套接字,任何更改都会立即通过套接字发送到客户端,因此页面更新很快。
实际上并没有发生什么奇怪的事情.
通常,虽然人们不与游戏互动,但他们拥有相当稳定的资源流。因此,在改变此流量的事件之间,您不需要更新金额,而是计算它。
例如。假设在某个游戏中有一个 stone
资源。玩家从 0 stones
开始,能够建造每小时生产 1 stone
的 stone quarry
,然后可以升级到 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.
所以想法是在数量或收入发生变化时记录时间戳、资源数量和资源收入率。然后您将拥有所有数据来计算未来任何时间点的资源量。