Ruby on rails 我应该使用什么语言/技术向基于RubyonRails的Web游戏添加游戏循环?

Ruby on rails 我应该使用什么语言/技术向基于RubyonRails的Web游戏添加游戏循环?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在用Ruby on Rails构建一个网络游戏,它依赖于一个选择你自己的冒险机制,再加上一个时间等待系统(la Zynga和15米、30米、1小时等概念) 但是,我需要在后台运行一个游戏循环,以不断运行并检查玩家等待的“任务”是否已准备就绪,如果已准备就绪,则ping用户(电子邮件/智能手机推送通知/他们想要的任何内容)。我显然需要它做的不仅仅是这些,但这是核心功能 我不想把它扔进Rails控制器中,因为我不需要在每个页面视图上运行游戏逻辑,也不需要在大量用户打开时对其进行重击,我只需要一个

我正在用Ruby on Rails构建一个网络游戏,它依赖于一个选择你自己的冒险机制,再加上一个时间等待系统(la Zynga和15米、30米、1小时等概念)

但是,我需要在后台运行一个游戏循环,以不断运行并检查玩家等待的“任务”是否已准备就绪,如果已准备就绪,则ping用户(电子邮件/智能手机推送通知/他们想要的任何内容)。我显然需要它做的不仅仅是这些,但这是核心功能

我不想把它扔进Rails控制器中,因为我不需要在每个页面视图上运行游戏逻辑,也不需要在大量用户打开时对其进行重击,我只需要一个循环来连续运行(以设定的间隔)并处理运行多人游戏后端所需的所有小任务

什么语言/技术是最好的,或者我甚至需要离开我的Ruby/Rails基金会吗?< /P>
编辑:这个游戏没有一个“持久的”世界,也不需要与客户端的持久连接。该游戏分为多个页面,它将具有一些异步功能(顶部的新闻“ticker”会推送更新,等等)

如果事件已经完成,则检查页面加载或JS请求。在示例中,当您显示通知用户流程结束时间的页面时,您将使用JA对其进行更新,当时间达到0.0s时,则刷新页面或使用AJAX并显示流程结束的信息。如果用户离开页面并返回,您将知道他已完成该过程。

请签出或


我的想法是,玩家将进行一次移动,然后(通过推送器或私人酒吧)向其他玩家广播轮到他们了。

听起来你在寻找某种背景工作者。Heroku支持一个调度程序,您可以设置为每十分钟运行一次;文件如下:


否则,像Resque()或DelayedJob()这样的系统将是很好的插件,可以在不占用控制器的情况下处理定期自省。

逻辑必须是服务器端,因为所有信息都是服务器端的,我希望尽可能少地向客户端公开游戏逻辑和信息。(我认为玩家黑客/欺骗/利用的可能性要小得多)。是的,但我在用户端的帖子里有什么逻辑?在用户端只有一个计时器可以检查是否刷新,所有任务完成测试都在服务器端,如果没有完成,则重新加载页面并再次显示计时器。我不确定这是否能解决我的问题,但这些都是有用的工具,其中一个将非常有用,谢谢!!我正在挖这两个工具,非常感谢。我迫不及待地想和他们一起玩。你知道,我知道Heroku的worker dyno和日程安排系统——我想我是在避免它,因为我已经在使用Heroku的应用程序,带有web dyno,所以在web dyno上没有免费的worker dyno——我想避免仅仅为了学习/构建而支付35美元/月@克丽斯利:我认为你不需要为Heroku的调度系统配备后台工作人员。我知道我有一个免费的应用程序,每小时运行一次Cron,每月3美元,而且它没有任何后台工作人员。Heroku的支持页面上的一条说明指出“请注意,调度器插件将运行一次性进程,该进程将计入您当月的dyno小时数。”Heroku为您提供750个免费小时,其中只有720个用于您的免费web dyno-如果您每天在调度器中使用的实际处理时间少于一小时,你仍然应该被Heroku的日程安排系统免费覆盖。你是对的!谢谢你,先生。我想我仍然可以避免使用Heroku的系统,如果只是为了确保我的应用程序在Heroku之外运行的话。但是我读到的关于Resque和DJ的文章越多,我就越意识到其中一个会起作用。谢谢你回答我的问题!