Преферанс (тест асинхронного чата)

14 views
Skip to first unread message

avl

unread,
Oct 10, 2009, 9:59:48 AM10/10/09
to Coffee'n'code Donetsk
С последнего банкета нашел несколько часов времени и сделал заготовку
под асинхронный преф на tornado.
Авторизация через гугловый openid

"Ленивое" создание комнат при первом заходе пользователя в зал.
И полностью асинхронный чат. Пока что работает только он.

Просьба немного потестить в ie, бо я эти ie только на картинках вижу.

http://trellis.litovchenko.com/

Чуть позже подниму под проект trac и mercurial репозиторий.
Доступ к исходникам будет только для активных участников cnc.

avl

unread,
Oct 18, 2009, 3:52:13 PM10/18/09
to Coffee'n'code Donetsk
"Вышла" версия 0.2 pre-alpha

http://trellis.litovchenko.com/

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

avl

unread,
Oct 23, 2009, 10:37:04 PM10/23/09
to Coffee'n'code Donetsk
Вышла версия 0.3.0 pre-alpha (Build Date: 2009/10/23, Revision:
20226d792563)

http://trellis.litovchenko.com/

- Отключение неактивных игроков после 5-минутного таймаута
- Моментальное оповещение всех находящихся в онлайне о количестве
игроков в онлайне
- Можно "создавать" партии выбирая простые конвенции
- При создании партии отводится минутный таймаут (от создателей
"создать за 60 секунд")
- Процесс создания виден всем онлайн игрокам, находящимся в комнате
- Отмена конвенций приводит к моментальному освобождению стола без
ожидания таймаута
- Более надежная авторизация. Теперь OpenId провайдер явно
запрашивается на обязательное наличие email и name атрибутов.
first_name, last_name являются опциональными.
- Влив проекта в mercurial репозиторий. Использование cvs-like
keywords для идентификации версии сервера

avl

unread,
Nov 1, 2009, 12:02:14 PM11/1/09
to Coffee'n'code Donetsk
Продолжаю по выходным тратить по несколько часов на trellis не взирая.

Вышла версия 0.3.5 pre-alpha (Build Date: 2009/11/01)

http://trellis.litovchenko.com/

- Режим ожидания игроков для созданной игры
- Функции cесть за стол / отказаться от неначатой игры
- Отмена партии если до начала все "севшие" встали из-за стола
- Автостарт партии при наборе нужного количества игроков
- Первая раздача и показ своих карт. показ пока что несортированный,
но раздача вполне реальна
колода тусуется методом Кнута-Фишера-Йейтса.
http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
- Показ статистики столов в холле (количество игроков и партий)
- Окно информации об игроке
- Более информативный показ "где именно находится игрок в данный
момент"

PS.
Изображения карт временно "позаимствованы" с ныне почившего в бозе
Алератора.
Требуется помощь грамотного дизайнера для отрисовки эксклюзивной (но в
тоже время привычной) колоды.

Artem Dudarev

unread,
Nov 1, 2009, 12:10:08 PM11/1/09
to cnc-d...@googlegroups.com
У Паши и Кости было желание сделать похожее с шахматами. Может быть
имеет смысл дать им доступ к коду, чтобы они его форкнули.

Сашин пример с продвиженим проекта вдохновляет :) Сейчас потрачу пару
часов на ukropol. Сделаю так чтобы он ретвитил посты, за которые
голосовали. Если кому интересно -- начну думать вслух через пол часа в
волне.

2009/11/1 avl <alex.lit...@gmail.com>:

--
Artem
http://www.hotaround.com

avl

unread,
Nov 1, 2009, 12:44:49 PM11/1/09
to Coffee'n'code Donetsk
> У Паши и Кости было желание сделать похожее с шахматами. Может быть
> имеет смысл дать им доступ к коду, чтобы они его форкнули.

Сейчас пока что hg репозиторий via ssh под моим основным аккаунтом на
сервере.
На следующей неделе я подниму уже наверно человеческий трак со всеми
фичами,
Репозиторий сответствено будет via http c вменяемым ограничением прав
на коммит.
Если кому-то нужно сейчас, то плз в почту, отвечу аттачем с текущим
revision

По поводу шахмат.
Сделать pure шахматы для двоих via comet на самом деле не просто, а
_очень_ просто.
Но это скорее будет просто "попробовать технологию", а не сделать
шахматы.
И для этого будет вполне достаточно просто посмотреть examples от
tornado.

trellis проектируется с расчетом на разные настольные игры (не только
преферанс)
Выделяются интерфейсы, реализовав которые, можно будет легко создавать
игры.
Шахматы в trellis будут второй игрой после того как преферанс будет
обкатан, и
общий API устаканен.
Также будет выделен общий API для ботов. Собственно написание ботов
это отдельная, и весьма интересная AI тема. Особенно если учесть что
ботам
будет доступна информация об истории всей игры, включая сколько
времени
человек думал над тем или иным ходом, часто ли блефовал на мизере, что
этот игрок
любит сносить, и т. д.

PS. Если у кого-то остались инвайты на волну, плз поделитесь одним.

Artem Dudarev

unread,
Nov 1, 2009, 12:49:47 PM11/1/09
to cnc-d...@googlegroups.com
инвайт на волну послал

2009/11/1 avl <alex.lit...@gmail.com>:

--
Artem
http://www.hotaround.com

avl

unread,
Nov 8, 2009, 2:32:51 PM11/8/09
to Coffee'n'code Donetsk
Вышла версия 0.3.6 pre-alpha (Build Date: 2009/11/08)

http://trellis.litovchenko.com/

- Корректная визуализация раздачи для обоих типов столов (на троих и
на четверых)
- Процесс торговли (пока что без ограничений. просто можно торговаться
по кругу)
- За столом могут находиться наблюдатели
- Открыты исходники и поднят trac по адресу http://trac.trellis.litovchenko.com/
(new tickets are welcome)

avl

unread,
Nov 15, 2009, 4:40:37 PM11/15/09
to Coffee'n'code Donetsk
Традиционный еженедельный дайджест.

Вышла версия 0.3.9 pre-alpha (Build Date: 2009/11/15)

http://trellis.litovchenko.com/

- Предварительная торговля (распасы и мизер пока не реализованы.
Только игра)
- Просмотр прикупа
- Уход Без 3-х
- Снос играющего
- Заказ игры
- Пас/Вист/Полвиста

На траке выложена пара скриншотов
http://trac.trellis.litovchenko.com/

avl

unread,
Nov 22, 2009, 4:38:11 PM11/22/09
to Coffee'n'code Donetsk
Еженедельные вести с полей

Вышла версия 0.3.10 pre-alpha (Build Date: 2009/11/22)

http://trellis.litovchenko.com/

- Реализован игровой процесс распасов (как на троих, так и на
четверых)
- Работает как обычный, так и "ростовский" вариант распасов (без
открытия прикупа)
- Простой показ текущего количества взяток, и общей горы/пули игроков

Амнистия на распасах пока что не снимается
Остальные варианты игр также все еще не работают, поэтому
пока что можно играть в распасы в вечной партии.

Если кому не лень, пожалуйста попробуйте сыграть вживую
несколько кругов распасов, и найденные баги, слить на trac
http://trac.trellis.litovchenko.com/

Pashka R.

unread,
Nov 23, 2009, 12:35:28 AM11/23/09
to cnc-d...@googlegroups.com
Ура! Сегодня будет чем на работе заняться!

//wbr Pashka R. <pashka....@gmail.com>

2009/11/22 avl <alex.lit...@gmail.com>:

avl

unread,
Nov 29, 2009, 8:41:20 AM11/29/09
to Coffee'n'code Donetsk
В связи со скоропостижным отъездом в отпуск на 2 недели,
сейчас только небольшой багфикс релиз.

- Исправлен баг с неправильным определением взятки при игре в распасы
на троих
http://trac.trellis.litovchenko.com/ticket/3

- После того как последний игрок кидает карту, теперь включается
небольшой таймаут чтобы
все успели рассмотреть кто и чем забрал
http://trac.trellis.litovchenko.com/ticket/4

- Все логи чата теперь асинхронно пишутся в базу.
Теперь если и выражаться, то только по делу :)

Работа над проектом возобновится во второй половине декабря

avl

unread,
Dec 20, 2009, 6:38:20 PM12/20/09
to Coffee'n'code Donetsk
Вернулся таки из отпуска.
http://litovchenko.com/blog/2009/12/thailand/

Немного непонятно как адаптироваться когда из +40 в -15 да сразу
в сугроб по пояс, видать чтобы медом не казалось, но жизнь
продолжается.

Вышла версия 0.4.0 pre-alpha (Build Date: 2009/12/20)
http://trellis.litovchenko.com/

- Введено понятие "предложение". Теперь любой из игроков
может предложить закончить партию (остальные участники могут принять
либо отказаться)

- Соответственно партии теперь могут закрываться, рассчитывая
статистику и
рейтинг игрокам, и освобождая столы.

- Более информативная панель отладки http://trellis.litovchenko.com/debug/
показывает всех игроков в онлайне и подробную информацию о всех
текущих открытых играх.
Конечно никаких прикупов сносов позволяющих получить преимущество в
игре
не показывается, но история торговли и ходов - вполне.

- Исправлен баг, предположительно приведший ранее к такому позору
http://trac.trellis.litovchenko.com/attachment/ticket/6/Untitled-1.jpg
(отдельное спасибо репортеру)

PS. По прежнему полноценно играть можно только в распасы, но теперь
вся история игр сохраняется, и все результаты, начиная с сегодняшнего
дня уже пойдут в рейтинг.

Pashka R.

unread,
Dec 20, 2009, 7:24:51 PM12/20/09
to cnc-d...@googlegroups.com
Завтра покидаем карты :)

//wbr Pashka R. <pashka....@gmail.com>

2009/12/21 avl <alex.lit...@gmail.com>:

> --
>
> Вы получили это сообщение, поскольку подписаны на группу Coffee'n'code Donetsk.
>
> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу cnc-d...@googlegroups.com.
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу cnc-donetsk...@googlegroups.com.
> О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/cnc-donetsk?hl=ru.
>
>
>

avl

unread,
Jan 15, 2010, 2:39:08 PM1/15/10
to Coffee'n'code Donetsk
Тихо и незаметно вышла версия 0.4.1 pre-alpha (Build Date: 2010/01/15)
http://trellis.litovchenko.com/

- Ведутся расчеты вистов пули и горы для любых видов игр
- Исправлено: http://trac.trellis.litovchenko.com/ticket/7 (Зависшая
фраза)
- Исправлено: http://trac.trellis.litovchenko.com/ticket/9 (Порядок
карт на столе)
- Реализовано http://trac.trellis.litovchenko.com/ticket/1 (Сообщения
о ходе игры в чат)
- Исправлен ряд мелких багов
- Для проверки расчетов написаны test suites (используется unittest из
сандартной python library)

Теперь уже _почти_ можно играть.
Для полноценной игры (если не обращать внимания на вебсайт со
статистикой,
рейтингами, и прочим) не хватает трех вещей:

- возможность при игре всветлую ходить вистующему за пасующего
(карты в светлую видно, но пасующий пока что ходит самостоятельно)

- игра при достижении пули договоренного значения не заканчивается
(но можно вручную предложить рассчитать и согласиться)

- не реализована обработка таймаута и наказание убежавшего игрока
(кончился интернет/электричество или позорно ретировался,
неважно)

Pashka R.

unread,
Jan 15, 2010, 3:30:17 PM1/15/10
to cnc-d...@googlegroups.com
Саша, отдых пошел тебе на пользу!

//wbr Pashka R. <pashka....@gmail.com>

2010/1/15 avl <alex.lit...@gmail.com>:

avl

unread,
Jan 17, 2010, 6:54:40 AM1/17/10
to Coffee'n'code Donetsk
On Jan 15, 10:30 pm, "Pashka R." <pashka.rezni...@gmail.com> wrote:
> Саша, отдых пошел тебе на пользу!

В разумных пределах он никому не помешает.

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

Версия 0.4.2 pre-alpha (Build Date: 2010/01/17)
http://trellis.litovchenko.com/

Апдейт минорный по внутренним изменениям, но достаточный
для выделения в деплой-пакет по визуальным.

- Реализован окончательный расчет вистов при закрытии пули
- Текущие висты теперь показываются в процессе игры
- Начаты работы по созданию вебсайта. В угоду performance issues, он
технически
является неотъемлемой частью сервера, имеет доступ к оперативным
кешам,
и работает вообще без базы (ddos insensitivity). В базу (и то крайне
редко) могут
залезть только контроллеры, прошедшие авториацию.
- Немного причесан игровой дизайн. (Ctrl+R)
- Сверстана примитивная главная страница. На ней уже показываются
последние
сообщения в чатах, и рейтинг Топ10 игроков (сортировка пока только
по количеству
сыгранных партий, потому что вменяемую систему рейтингования еще
нужно продумывать.)
- Начали оформляться правила игры http://trellis.litovchenko.com/lawbook/

PS. Хорошие новости с внешних фронтов.
http://github.com/facebook/tornado/commit/7014417608d03e7af2c7aba58ba358d8657a24a2
Наконец-то tornado "из коробки" поддерживает kqueue для BSD/OSX
Это в частности означает что не придется эту поддержку писать самому
(что ломает)
А альтернатива при запуске префа в production - это брать сервер под
богомерзким linux для epoll (что еще более ломает, ибо ненужный
зоопарк, и вообще неправославно).
Хотя глядишь, пока(если) дело до этого дойдет, и /dev/poll под solaris
для tornado подойдет
По стресстестам на более чем посредственной машине, сервер префа 500
активных конкурентных
запросов и на обычном select() тянет легко (на 800 уже проблемы, и
узкое место
именно в select())

avl

unread,
Feb 1, 2010, 1:32:48 PM2/1/10
to Coffee'n'code Donetsk
Вышла новая версия

Версия 0.4.3_1 BETA (Build Date: 2010/02/01)

Проект обзавелся собственным доменом
http://trellis-club.com
(соответственно trac теперь живет по адресу http://trac.trellis-club.com)

Реализована простейшая страница с протоколом
игры. Пример: http://trellis-club.com/stat/1/6/

Полностью реализован режим игры "вист в светлую"

Реакция на настройки стола "Первый ход всветлую"

Реакция на настройки стола "Сталинград"

Произведен серьезный рефактор внутрисерверных кешей.
Реализован потокобезопасный кеш для последних
просмотренных игр и игроков.

TestSuite проекта окончательно оторван и от ui и от
серверного реактора и позволяет запускать тесты даже
под Microsoft Windows, ога.

c:\trellis\src> python.exe test.py
test_piter3_6_as_7 (__main__.PiterTestCase) ... ok
test_piter3_6_as_7_nostal (__main__.PiterTestCase) ... ok
...........
test_whist_pass_open (__main__.TestOpenWhist) ... ok
----------------------------------------------------------------------
Ran 25 tests in 0.160s
OK

Переход основного реактора от simple select()
на kqueue() (FreeBSD/Mac)

Исправлено большое количество багов.

Собственно с этого обновления думаю можно
считать переход из Alpha статуса в Beta.
На данный момент я ядре сервера реализовано
практически все, что требуется для игры в преферанс.
Дальше пойдут интерфейсные рюшки и багофиксинг

Welcome!

Reply all
Reply to author
Forward
0 new messages