迷你游戏 - 自动递增值服务器端

时间:2018-04-25 09:21:25

标签: php laravel

我正在努力制作游戏。现在这是我的问题: - 我创造了一个Miner对象,以25小时/小时的速度收获石头 - 我有一个UI,显示他有多少石头。 - 现在我需要一些工作来检查所有用户和他们当前的石头,每小时他们将获得的石头数量,并将其添加到他们当前的石头。

这应该在服务器启动时保持运行。有没有办法在Laravel中实现这一点?

亲切的问候:)

1 个答案:

答案 0 :(得分:1)

  

他们每小时都会得到它并将它添加到他们当前的石头上。

这对你的php服务器端来说是巨大的开销。您可以使用Linux上的cron命令或Windows上的任务管理器来调用脚本计数器,但这是非常糟糕的想法。想象一下,你以后会有100万玩家,你的服务器会经常中止并且工作太慢。

您需要在每个ping_request或specific_harvest_request为唯一用户计算此收获。这样可以减轻负荷。例如: userA有10块石头,他离开游戏并在20小时后返回游戏,当他登录时你开始CalcHarvestMethod并且他得到了20*25=500 stones。收获必须由每个用户计算,不得有这个逻辑的另一个启动器。用户在线时每15秒调用一次ping_request,并在ping_request中调用CalcHarvestMethod

  

现在我需要某种工作来检查所有用户及其当前状态   石

你应该计算每个玩家当前的石头数量,不计算他们离线时可以获得的石头。如上所述,它的开销太大了。