On Friday, January 13, 2012 at 12:48 AM, Denis Bazhan wrote:
Народ кто то пробовал писать серверную часть для игры в контакте на ROR ?Может есть у кого что почитать по этой теме?
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Немножко облегчу вам задачу, а заодно облегчу душу и расскажу о моих
последних экспериментах :)
Рельсы сгодятся лишь для создания прототипа или довольно простой игры,
где вся игровая логика вписывается в концепцию "запрос-ответ". Если в
какой бы то ни было момент игры нужно послать клиенту "ответ" без
соответствующего ему запроса - все, приехали, рельсы можно выкидывать
на помойку.
Вы своим вопросом меня замотивировали дописать таки давно валявшийся
блогопост про наши эксперименты с разработкой нового игрового сервера
:) Надеюсь, окажется полезным:
http://railorz.ru/articles/156-evented-game-server/
13 января 2012 г. 8:39 пользователь Denis Bazhan
<denis....@gmail.com> написал:
> Спасибо большое за информацию.
>
> 13 января 2012 г. 2:04 пользователь Andrey Ognevsky <a.ogn...@gmail.com>
> написал:
>
>> Поищи тред, который Алекс Дмитриев создавал, как раз по поводу игры. Ну и
>> он сам, и Макс Лапшин смогут лучше рассказать, да и не раз тут про это
>> говорилось, поделюсь своими соображениями:
>>
>> -- для справочных данных (вещи, миссии, etc) использовать MongoDB или
>> что-то подобное
>> -- для хранения ассоциаций использовать Redis
>> -- использовать EventMachine для главного игрового процесса
>> -- по возможности использовать Backbone/Spine/etc на клиенте, а сервером
>> отдавать JSON
>> -- по возможности использовать вебсокеты
--
Alex V. Dmitriev
Jabber/GTalk/MSN/AIM: rene....@gmail.com
Skype: rene-dekart
Blog: http://railorz.ru
Неужто так сложно juggernaut или ему подобное использовать?
Не сложно. Вопрос исключительно подхода и стройности системы. Можете
описать целиком систему, построенную с использованием Juggernaut? Я,
если честно, слабо представляю, возможно ввиду недостатка знания этого
инструмента.
Juggernaut — это такой неработающий сервер для рассылки сообщений по
подкюченным флешкам.
Нерабочий, потому что работает только с XML Socket и потому что для
посылки по каналу перебирает всех клиентов и смотрит, не подписан ли
клиент на канал.
А так же для авторизации свежеподключенного пользователя делает
синхронный вызов к рельсам. Т.е. автор сделал proof-of-concept а
фтыкатели решили, что этим можно пользоваться.
Если читал мою заметку по ссылке, можешь вкратце свое мнение сказать?
Мне интересно
13 января 2012 г. 14:01 пользователь Max Lapshin
<max.l...@gmail.com> написал:
> 2012/1/13 Alex Dmitriev <rene....@gmail.com>:
>>> Неужто так сложно juggernaut или ему подобное использовать?
>>
>> Не сложно. Вопрос исключительно подхода и стройности системы. Можете
>> описать целиком систему, построенную с использованием Juggernaut? Я,
>> если честно, слабо представляю, возможно ввиду недостатка знания этого
>> инструмента.
>>
>
> Juggernaut -- это такой неработающий сервер для рассылки сообщений по
> подкюченным флешкам.
>
> Нерабочий, потому что работает только с XML Socket и потому что для
> посылки по каналу перебирает всех клиентов и смотрит, не подписан ли
> клиент на канал.
>
> А так же для авторизации свежеподключенного пользователя делает
> синхронный вызов к рельсам. Т.е. автор сделал proof-of-concept а
> фтыкатели решили, что этим можно пользоваться.
>
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror...@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
> Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
--
Джагернаута переписали на nodejs, и оно отлично пашет и поддерживает
100500 всевозможных вариантов доставки пуш-сообщения, лонг-поллы и
вебсокеты и в конце концов флеш (и даже какой-то страшный ActiveX
HTMLFile для IE)
> Нерабочий, потому что работает только с XML Socket и потому что для
> посылки по каналу перебирает всех клиентов и смотрит, не подписан ли
> клиент на канал.
Как следует из вышесказанного, это тоже не правда.
Окей, хорошо, он поддерживает push и прочее для доставки событий с
сервера на клиент. Вопрос - как доставлять с клиента на сервер?
GET /blabla HTTP/1.1
Host: game.tld
ну и так далее ;)
Жабаскриптом тем же ajax запросы посылать на события от клиента. А
клиент получает события от других клиентов по пуш каналу уже.
и автор для примера использования указывает на:
https://github.com/maccman/holla
"Holla is a group chat app. The UI is built in a RIA fashion - i.e. is
totally asynchronous and super fast. I've open sourced it for a book
I'm writing on building Rich Internet Applications with JavaScript."
Good examples for:
* CSS3 theming (inspired by http://jquerymobile.com)
* Spine JS frontend
* Less
* Sprockets
* Juggernaut 2
* Async uploads with progress
Prerequisites
* Ruby 1.9.2
* Bundler
* Redis
Вот ещё описание (старое):
http://alexmaccaw.co.uk/posts/holla
демо здесь:
http://maccman-holla.heroku.com/
On Jan 13, 2:22 pm, Alex Dmitriev <rene.dek...@gmail.com> wrote:
> > Джагернаута переписали на nodejs, и оно отлично пашет и поддерживает
> > 100500 всевозможных вариантов доставки пуш-сообщения, лонг-поллы и
> > вебсокеты и в конце концов флеш (и даже какой-то страшный ActiveX
> > HTMLFile для IE)
>
> Окей, хорошо, он поддерживает push и прочее для доставки событий с
> сервера на клиент. Вопрос - как доставлять с клиента на сервер?
>
> --
> Alex V. Dmitriev
> Jabber/GTalk/MSN/AIM: rene.dek...@gmail.com
Ну а че, всё по делу. Я не очень хороший комментатор, мне и так ясно,
какие у рельс ограничения.
Ты спрашивай у топикстартера =))
Маленькие комментарии:
1) я бы вообще не стал ориентироваться на флеш-сокеты. Нафиг они
нужны, если есть long-poll
2) к чему опрашивать 100 раз в секунду что-то? Это очень жестокая
вещь. Если хочется push, то надо ставить что-то, что делает push.
13 января 2012 г. 14:48 пользователь Max Lapshin
<max.l...@gmail.com> написал:
Если клиент будет на флеше, то серверный бэкенд лучше всего писать на
java и для этого уже есть готовый сервер http://www.smartfoxserver.com/
(пример игры "Backyard monsters" на facebook) Во всяком случае решение
уже протестировано и на нем заработаны сотни денег. А так topface и
лицемер написаны на ror, но там, увы, только десятки денег. Вобщим как
обычно - технологию под задачу и лучше не писать велосипедов.
13.01.2012 2:48, Denis Bazhan пишет:
> Народ кто то пробовал писать серверную часть для игры в контакте на ROR ?
> Может есть у кого что почитать по этой теме?
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком
> группы "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror...@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> ror2ru-un...@googlegroups.com
> Дополнительные варианты находятся на странице группы
> http://groups.google.com/group/ror2ru?hl=ru
--
Всегда Ваш, Илья Плотников
Согласен на 100%
> 2) к чему опрашивать 100 раз в секунду что-то? Это очень жестокая
> вещь. Если хочется push, то надо ставить что-то, что делает push.
Это пока в тестовом окружении. На моем буке redis вывозит порядка
7000+ опросов в секунду (через ruby-клиент) - вполне достаточно для
тестирования.
Для рабочего окружения нужная какая-то очередь заданий с мало-мальской
обработкой отвалившихся обработчиков (фэйлы, рестарты и прочее). Тот
же редис умеет pub-sub, но очередь сообщений нигде не хранится и при
фэйле воркера все сообщения успешно теряются. Это можно обрабатывать,
но пока это все на стадии эксперимента - не хочется заморачиваться.
Сегодня буквально наткнулся на сравнение производительности разных
очередей. Может кому будет полезно:
On 13 янв, 13:07, Alex Dmitriev <rene.dek...@gmail.com> wrote:
> Вы своим вопросом меня замотивировали дописать таки давно валявшийся
> блогопост про наши эксперименты с разработкой нового игрового сервера
> :) Надеюсь, окажется полезным:
> http://railorz.ru/articles/156-evented-game-server/
Эклектичненько, на мой взгляд. Хотя работать должно.
Я бы сразу ушел на Erlang. Там идеология в точности соответствует
задаче, а в Yaws "из коробки" поддержаны вебсокеты...
3 февраля 2012 г. 7:49 пользователь EXO <alex...@gmail.com> написал: