我正在Ruby on Rails中构建一个网页游戏,它依赖于一个选择你自己的冒险机制以及一个等待时间的系统(一个la Zynga和15米,30米,1小时等概念回归) )。
但是,我需要一个游戏循环在后台运行以持续运行并检查玩家正在等待的“任务”是否准备就绪,如果是,请ping用户(电子邮件/智能手机推送通知/他们想要的任何内容) 。我显然需要做的不仅仅是这个,但这是核心功能。
我不想把它扔进Rails控制器,因为我不需要在每个页面视图上运行游戏逻辑,或者当大量用户打开时它会受到重创,而我只需要循环到连续运行(以设定的间隔)并处理运行多人游戏后端所需的所有小任务。
什么语言/技术最适合这个,或者我甚至需要完全放弃我的Ruby / Rails基础?
编辑:这个游戏没有“持久”世界,并且不需要与客户端持久连接。游戏分布在许多页面上,并且它将具有一些异步功能(顶部的新闻'自动收报机'有推送更新等)。
答案 0 :(得分:1)
我的想法是,玩家将进行一次动作,然后(通过推杆或私人酒吧)向其他玩家广播,轮到他们。
答案 1 :(得分:1)
听起来你正在寻找某种背景工作者。 Heroku支持一个可以设置为每十分钟运行一次的调度程序;文档在这里:http://devcenter.heroku.com/articles/scheduler?preview=1
否则,Resque(https://github.com/defunkt/resque)或DelayedJob(https://github.com/tobi/delayed_job)之类的系统将成为处理定期内省而不占用控制器的好插件。
答案 2 :(得分:0)
如果事件已经完成,请检查页面加载或JS请求。例如,当您显示通知您的用户有关结束时间的过程的页面时,您将使用JA更新它,当时间到达0.0s然后刷新页面或使用AJAX并显示该过程已完成的信息。如果用户离开页面并返回,您将知道他已完成该过程。