Простая многопользовательская игра в Ruby on Rails? - PullRequest
6 голосов
/ 06 октября 2010

Я создал простую карточную игру на Ruby on Rails + ajax с jQuery для анимации.Все работает хорошо, и я хотел разработать многопользовательскую версию.Похоже, это не так просто, как я думал.Я также попытался полностью перенести игру на JS в тег Canvas.Это возможно для меня, и я мог бы сделать анимацию там намного лучше, однако я все еще не знаю, как добавить в нее многопользовательскую часть :( Кто-нибудь уже пытался использовать веб-сокеты с рельсами?стоит ли вообще придерживаться рельсов? Хотелось бы начать с нуля во флеш-памяти, но у меня нет никаких знаний об этом :( Любой совет или учебник будет полезен

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 декабря 2010

Как проще всего решить проблему пользователя? В данном случае это, вероятно, «Я хочу получить уведомление, когда человек, против которого я играю, делает ход». В реальном времени не требуется, просто в течение одной или двух секунд пользователь получает уведомление.

В этом случае было бы проще сохранить приложение Rails таким, какое оно есть, и использовать Jquery для «опроса» новых «ходов» каждые несколько секунд, используя JQuery и плагин, такой как http://plugins.jquery.com/project/smartupdater

Я говорю это как человек, который в настоящее время создает приложение, которое использует Websockets главным образом. Хотя в принципе это здорово, мы создадим версию Flash как запасной вариант для браузеров, которые ее не поддерживают.

2 голосов
/ 20 декабря 2010

Если вы в конечном итоге используете веб-сокеты:

Веб-сокеты могут быть реализованы с помощью Rails, но не все хостинговые среды поддерживают это.Вот пара ссылок, которые могут помочь вам начать:

http://m.onkey.org/websockets-made-easy-with-cramp (требуется Тонкая или Радуга! )

http://www.pusherapp.com/ (если вы используете Heroku, этот вариант является хорошим вариантом)

Для клиентской части некоторые плагины javascript имеют запасной вариант флэш-памяти, если браузер не поддерживает веб-сокеты.Вместо того, чтобы реализовывать всю игру во флэш-памяти, вам лучше использовать такой плагин.(Вашему серверу по-прежнему потребуется поддержка веб-сокетов.) Вот один из вариантов (требует jQuery):

https://github.com/ffdead/jquery-graceful-websocket

Как вы сказали, веб-сокеты очень новые, и в результате они будут весьмаэкспериментальный.Если все остальное терпит неудачу, есть более распространенные решения AJAX.Вполне возможно, что для простой карточной игры вы можете просто периодически запрашивать сервер, используя запросы AJAX, пока другой игрок не сделает ход.Это, вероятно, увеличит нагрузку на сервер, поэтому, я думаю, это зависит от ваших потребностей.

Редактировать:

См. Также: Джаггернаут

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