2015-04-03 71 views
1

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

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

我唯一的建议是打开24-7电脑,但不能这样做。

+1

服务器当然是全天候运行。 – Barmar 2015-04-03 20:30:13

+2

'我唯一的建议是让电脑打开24-7,但不能这样做。 '这就是每个网站的工作原理。你认为哪些网站的资源来自哪里? – 2015-04-03 20:31:10

+0

^- 关于上述评论:当然,查看网站的客户端计算机通常不会24/7运行,也不需要。但是,通过一台或多台服务器机器提供网站(呃,它必须来自某个地方?),这些机器通常一天24小时运行。 – Cubic 2015-04-03 20:35:43

回答

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. 

这样的想法是登录时间戳,资源量和每当金额或收入发生变化时资源收入率。然后,您将拥有所有数据来计算将来任何时间点的资源量。

1

一种可能的情况:(!当然全天候)
有一个HTTP服务器,而服务器和客户端之间的一些网络插座,任何更改都立即通过套接字客户端发送的,所以页面的更新很快。
实际上并没有什么奇怪的事情发生。