Хорошая игра, но игроков как то мало… Я ожидал хаброэффект, а 7 человек совсем не претендуют на это звание.
А вообще (не сочтите рекламой) для меня стандартом вэб преферанса является www.gambler.ru/…
Дело в том, что клиент гамблера это standalone java application. А это как-раз то, от чего хочется уйти, чтобы иметь возможность играть anywhere на всем, на чем есть браузер.
Ну можно по крайней мере подсмотреть немного как сделано у них и взять кое-что полезное :). Все-таки гамблеру уже лет 8 не меньше если не ошибаюсь, так что они думаю много костылей повидали )
У 100 одновременно активно играющих игроков в онлайне, и заполненных кешах по статистике игр, потребление памяти в районе 25Mb RES. Утечек явных (не собираемых GC) пока не замечено.
ОС — FreeBSD. реактор — kqueue. WCPU для тех же 100 игроков в районе 0.15% на довольно посредственном железе.
То есть запас довольно большой.
Можно конечно сказать мол «наши демоны никогда не падают», но понятно, что в реальной жизни бывает всякое.
При теоретически возможном падении (еще пока что не падало ни разу) высокоуровневый обработчик исключений _попытается_ закрыть и сбросить в базу все текущие игры.
Попробовал поиграть. Наблюдается небольшая недоработка. Если играющий предлагает сколько он берет то карты его не высвечиваются вистующим :) Надо бы пофиксить ;-)
К чёрту детали! Спасибо за openID аутентификацию и веб интерйейс. Как раз то, что нужно. А то под Линуксом жуткими костылями ставил windows версии программы «Марьяж». Плюсую во все стороны и в закладки.
Google != OpenID
Если нажать на кнопку авторизации, появляется окно входа в гуглосервисы.
А как авторизоваться по OpenID у какого-то другого провайдера?
В ближайшее время дополнительно появятся кнопки авторизоваться через «yandex», «facebook», «livejournal».
авторизация у _произвольного_ OpenID чревата побочными социальными эффектами и пока что не планируется
А можно кратенький ликбез — меня напрягла надпись «rellis-club.com запрашивает информацию из вашего аккаунта Аккаунт Google»
Мой логин-пароль проходят через вас, или гугль сам сообщает типа «ок, пусти его, я его проверил»?
именно так. «гугль сам сообщает типа «ок, пусти его, я его проверил»»
trellis-club.com никогда не узнает ваших паролей.
В этом весь смысл openid. И это абсолютно для вас безопасно.
Скорей всего вас не выкинуло (там кстати можно безболезненно опять подойти к столу)
Просто есть такой баг что при потере фокуса в поле ввода сообщения в чате кнопка backspace cрабатывает как BACK в браузере.
Раз уж «Корректная работа под любыми современными браузерами.», то в Safari под Windows не работает ссылка, показывающая окно со списком игроков онлайн.
И еще… Название проекта явно предполагает не только преферанс. «Тысячу» не планируете?
википедия утверждает что это (в определенном смысле) одно и то же en.wikipedia.org/wiki/Comet_%28programming%29
However in practice, Comet applications typically use Ajax with long polling to detect new information on the server
Нужна кнопка «Быстро начать игру», чтобы сесть за стол где уже есть два игрока.
Не смог сыграть ни разу больше круга — после первой не сложившейся партии выкидывает из любого стола, из-за того что в предыдущей игре у какого-то игрока таймаут.
Присоединюсь и добавлю:
4) Хочется пообщаться с игроками по окончании партии, но из-за стола силком выволакивают. Может в окошке с окончательным рассчетом можно оставить чат?
5) Набирал что-то в чате, вылезло окошко с предложением «Пас-Вист» и перехватило фокус, я в это время жмакнул на пробел и пасанул. Хорошо не десятерную заказал.
Уже поправили. Спасибо. Также добрые хабралюди нашли еще несколько проблем, которые либо уже исправлены, либо будут исправлены в течении суток.
Но все это вступит в силу только с плановым обновлением сервера. (через 2 дня)
Периодически выкидывает из игры с сообщением «не проявляете активности»
Не расчитываются висты в случае, если игра заканчивается приедложением, на которое все соглашаются
Интересно. Я делаю почти то же самое — мультиплеерный «Сапёр» (sweepminer.com).
Пробовал использовать Juggernaut, в нем вместо Комета используется невидимый флэш, который держит соединение с сервером. Не понравилось, перешел на Orbited + Morbidq. Теперь нет проблем у тех, кто сидит за прокси.
Для авторизации выбрал только Facebook Connect, из Фейсбука же и беру аватарки игроков.
Правила сейчас такие: игра идет на одном поле, чужие поставленные флажки не видно. Но видно клетки, раскрытые другими участниками. Побеждает тот, кто первым правильно расставит все свои флажки. За каждую раскрытую клетку дается очко — тому, кто ее раскрыл.
Но я хочу придумать что-то другое. Проблема в том, что сейчас игроки идут ноздря к ноздре всю игру, и интрига возникает только в последние три секунды матча — кто же первым поставит последний флажок. Надо сделать так, чтобы на победу влияло, сколько очков за игру набрал участник, а не только то, что он первым поставил флажки.
Обычно народ ближе к вечеру собирается поиграть.
При хабраэффекте одновременно играли 150 человек.
Проблем все еще много. Но ежедневно выходят новые фиксы,
выравнивающие положение.
Правила преферанса обычные (из кодекса)
По history на trac нетрудно догадаться что до сегодняшнего дня ни одного.
Но в данном случае это неважно. Главное то, что проект будет развиваться.
И развиваться динамично. Сегодняшний тест добрых хабралюдей направил
приоритеты задач в нужное русло.
И хотя сервер под хабраэффектом не падал,
проблемы выявились серьезные но вполне решаемые.
а как можно получить сам код, чтобы с удобством в нем разобраться или дописать что-либо?
я так понимаю там hg. есть анонимный доступ на чтение в репозиторий?
Нет. Анонимного доступа в репозиторий нет и не будет.
Максимум что есть (и так и останется) — браузинг всех исходников через web.
НО. После обкатки API будет фриз ядра, и независимые разработчики смогут писать
свои игры под эту платформу (преферанс — только первая игра, но будут и другие).
Вот у них, необходимый доступ будет
понимаю. но какой в этом смысл?
код по сути-то открыт, но легкого доступа нет. Т.е. особо упорный все одно достанет, ведь так? уж лучше открыть read-only доступ, так удобнее разбираться в архитектуре, чтобы приобщиться впоследствии к написанию-развитию.
да, и странно, почему вы отказались от websocket, если есть js-либы, которые его эмулируют для старых браузеров. ну или на худой конец AMQP-сервер, для надежности и скорости.
Упорный все достанет, но это не будет иметь особого смысла просто потому, что апдейты частые
и код очень быстро устаревает. (совсем упорные конечно напишут парсер но это уже будет overq)
Но с другой стороны всегда можно пойти и посмотреть как именно сделаны те или иные части
но форкать сам проект затруднительно. И это сделано намеренно.
Насчет WebSockets и AMPQ. Думали над обоими словами.
Пришли к выводу что не стОит. По многим причинам.
Никак не решается. Соединение в один момент времени только одно.
Но по нему приходят все типы сообщений
Делать по другому — значит отказаться от значительной доли браузеров
Веб-Преферанс на Python