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

How does a real time browser game work?

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

你是如何不断更新资源之类的东西的?

我唯一的建议是让电脑 7 天 24 小时开机,但事实并非如此。

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

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

例如。假设在某个游戏中有一个 stone 资源。玩家从 0 stones 开始,能够建造每小时生产 1 stonestone 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.

所以想法是在数量或收入发生变化时记录时间戳、资源数量和资源收入率。然后您将拥有所有数据来计算未来任何时间点的资源量。