Какой язык / технику я должен использовать, чтобы добавить игровой цикл в веб-игру на основе Ruby on Rails? - PullRequest
0 голосов
/ 25 января 2012

Я создаю веб-игру в Ruby on Rails, которая основана на механике «выбирай свое приключение» в сочетании с системой ожидания времени (а-ля Zynga и возвращение через 15, 30, 1 час и т. Д.)).

Однако мне нужно, чтобы игровой цикл запускался в фоновом режиме, чтобы постоянно запускаться и проверять, готовы ли «квесты», которые ждут игроки, и если да, пинговать пользователя (электронная почта / push-уведомление смартфона / все, что угодно).они хотят).Мне, очевидно, нужно, чтобы это делало не только это, но это основная функциональность.

Я не хочу бросать это в контроллер Rails, потому что мне не нужно, чтобы игровая логика работала на каждой страницедля просмотра или для того, чтобы это было забито, когда тонны пользователей включены, скорее мне просто нужен цикл для непрерывного выполнения (с заданным интервалом) и обработки всех небольших задач, которые будут необходимы для запуска бэкенда многопользовательской игры.

Какой язык / техника лучше для этого или мне вообще нужно оставить свой фундамент Ruby / Rails?

РЕДАКТИРОВАТЬ: эта игра не имеет «постоянного» мира и имеетнет реальной необходимости постоянных связей с клиентами.Игра распределена по многим страницам, и она будет иметь некоторую асинхронную функциональность (новостная лента в верхней части, в которой размещены обновления и т. Д.).

Ответы [ 3 ]

1 голос
/ 25 января 2012

Проверьте либо PusherApp , либо PrivatePub

Моя идея состоит в том, что игрок проведет движение, а затем рассылает (через пушера или частный паб) другим игрокам, что это их очередь.

1 голос
/ 25 января 2012

Похоже, вы ищете какой-то фоновый работник. Heroku поддерживает планировщик, который вы можете запускать каждые десять минут; документация здесь: http://devcenter.heroku.com/articles/scheduler?preview=1

В противном случае такая система, как Resque (https://github.com/defunkt/resque) или DelayedJob (https://github.com/tobi/delayed_job) была бы хорошим плагином для обработки периодического самоанализа без привязки ваших контроллеров.

0 голосов
/ 25 января 2012

Проверка загрузки страницы или запроса JS, если событие уже завершено.Например, когда вы показываете страницу, которая информирует вашего пользователя о времени завершения процесса, вы обновите ее с помощью JA, когда придет время 0,0 с, затем обновите страницу или используйте AJAX и покажите информацию, что процесс завершен.Если пользователь покинет страницу и вернется обратно, вы узнаете, что он завершил этот процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...