我正在尝试使用GAE后端实现一个2人回合制游戏。这个游戏需要的第一件事是一个非常简单的匹配制作系统,其运作方式如下:
(编辑:我的假设是,如果我能想出这个,大多数其他操作我基于回合的游戏可以使用相同的实现)
这可以在Apple Gamecenter和Xbox Live中轻松完成,但我宁愿在开放且独立于平台的后端(如GAE)上实现此功能。经过一些研究,我发现了GAE实现的以下选项:
鉴于比赛制作是网络游戏中非常基本的操作,我不能成为第一个遇到这种情况的人。因此我的问题是:
答案 0 :(得分:1)
您可以使用以下方案中的cron任务来完成此任务:
define MatchRequest:
requestor = db.StringProperty()
opponent = db.StringProperty(default = '')
用户A要求匹配,创建MatchRequest实体,其中A作为请求者,对手为空。 用户A轮询以查看对手场的填充时间。 用户B请求匹配,创建MatchRequest实体,其中B作为请求者。 用户B池以查看对手场的填充时间。
每20秒运行一次的cron作业?或者运行:
现在当A和B接下来进行投票时,他们会看到他们有对手。
根据GAE docs on crons免费应用程序最多可以有20个免费的cron任务。对于少量用户而言,这些crons所需的计算量应该很小。
这将是安全方式,但我不确定它是否是最便宜方式。它也很容易实现。