"Ленивое" создание комнат при первом заходе пользователя в зал.
И полностью асинхронный чат. Пока что работает только он.
Просьба немного потестить в ie, бо я эти ie только на картинках вижу.
http://trellis.litovchenko.com/
Чуть позже подниму под проект trac и mercurial репозиторий.
Доступ к исходникам будет только для активных участников cnc.
http://trellis.litovchenko.com/
- Можно ходить по комнатам (и безболезненно возвращаться в зал)
- У каждой комнаты свой чат. (и общий в зале)
- В зале моментально приходят оповещения о перемещении игроков между
комнатами, отображающиеся в статистике комнат
- Можно просмотреть кто в онлайне (и где находится в данный момент)
- IE6 сознательно выброшен из поддержки (городить для него массу
костылей нет ни времени ни желания)
http://trellis.litovchenko.com/
- Отключение неактивных игроков после 5-минутного таймаута
- Моментальное оповещение всех находящихся в онлайне о количестве
игроков в онлайне
- Можно "создавать" партии выбирая простые конвенции
- При создании партии отводится минутный таймаут (от создателей
"создать за 60 секунд")
- Процесс создания виден всем онлайн игрокам, находящимся в комнате
- Отмена конвенций приводит к моментальному освобождению стола без
ожидания таймаута
- Более надежная авторизация. Теперь OpenId провайдер явно
запрашивается на обязательное наличие email и name атрибутов.
first_name, last_name являются опциональными.
- Влив проекта в mercurial репозиторий. Использование cvs-like
keywords для идентификации версии сервера
Вышла версия 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.
Изображения карт временно "позаимствованы" с ныне почившего в бозе
Алератора.
Требуется помощь грамотного дизайнера для отрисовки эксклюзивной (но в
тоже время привычной) колоды.
Сашин пример с продвиженим проекта вдохновляет :) Сейчас потрачу пару
часов на ukropol. Сделаю так чтобы он ретвитил посты, за которые
голосовали. Если кому интересно -- начну думать вслух через пол часа в
волне.
2009/11/1 avl <alex.lit...@gmail.com>:
--
Artem
http://www.hotaround.com
Сейчас пока что hg репозиторий via ssh под моим основным аккаунтом на
сервере.
На следующей неделе я подниму уже наверно человеческий трак со всеми
фичами,
Репозиторий сответствено будет via http c вменяемым ограничением прав
на коммит.
Если кому-то нужно сейчас, то плз в почту, отвечу аттачем с текущим
revision
По поводу шахмат.
Сделать pure шахматы для двоих via comet на самом деле не просто, а
_очень_ просто.
Но это скорее будет просто "попробовать технологию", а не сделать
шахматы.
И для этого будет вполне достаточно просто посмотреть examples от
tornado.
trellis проектируется с расчетом на разные настольные игры (не только
преферанс)
Выделяются интерфейсы, реализовав которые, можно будет легко создавать
игры.
Шахматы в trellis будут второй игрой после того как преферанс будет
обкатан, и
общий API устаканен.
Также будет выделен общий API для ботов. Собственно написание ботов
это отдельная, и весьма интересная AI тема. Особенно если учесть что
ботам
будет доступна информация об истории всей игры, включая сколько
времени
человек думал над тем или иным ходом, часто ли блефовал на мизере, что
этот игрок
любит сносить, и т. д.
PS. Если у кого-то остались инвайты на волну, плз поделитесь одним.
http://trellis.litovchenko.com/
- Корректная визуализация раздачи для обоих типов столов (на троих и
на четверых)
- Процесс торговли (пока что без ограничений. просто можно торговаться
по кругу)
- За столом могут находиться наблюдатели
- Открыты исходники и поднят trac по адресу http://trac.trellis.litovchenko.com/
(new tickets are welcome)
Вышла версия 0.3.9 pre-alpha (Build Date: 2009/11/15)
http://trellis.litovchenko.com/
- Предварительная торговля (распасы и мизер пока не реализованы.
Только игра)
- Просмотр прикупа
- Уход Без 3-х
- Снос играющего
- Заказ игры
- Пас/Вист/Полвиста
На траке выложена пара скриншотов
http://trac.trellis.litovchenko.com/
Вышла версия 0.3.10 pre-alpha (Build Date: 2009/11/22)
http://trellis.litovchenko.com/
- Реализован игровой процесс распасов (как на троих, так и на
четверых)
- Работает как обычный, так и "ростовский" вариант распасов (без
открытия прикупа)
- Простой показ текущего количества взяток, и общей горы/пули игроков
Амнистия на распасах пока что не снимается
Остальные варианты игр также все еще не работают, поэтому
пока что можно играть в распасы в вечной партии.
Если кому не лень, пожалуйста попробуйте сыграть вживую
несколько кругов распасов, и найденные баги, слить на trac
http://trac.trellis.litovchenko.com/
//wbr Pashka R. <pashka....@gmail.com>
2009/11/22 avl <alex.lit...@gmail.com>:
- Исправлен баг с неправильным определением взятки при игре в распасы
на троих
http://trac.trellis.litovchenko.com/ticket/3
- После того как последний игрок кидает карту, теперь включается
небольшой таймаут чтобы
все успели рассмотреть кто и чем забрал
http://trac.trellis.litovchenko.com/ticket/4
- Все логи чата теперь асинхронно пишутся в базу.
Теперь если и выражаться, то только по делу :)
Работа над проектом возобновится во второй половине декабря
Немного непонятно как адаптироваться когда из +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. По прежнему полноценно играть можно только в распасы, но теперь
вся история игр сохраняется, и все результаты, начиная с сегодняшнего
дня уже пойдут в рейтинг.
//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.
>
>
>
- Ведутся расчеты вистов пули и горы для любых видов игр
- Исправлено: 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)
Теперь уже _почти_ можно играть.
Для полноценной игры (если не обращать внимания на вебсайт со
статистикой,
рейтингами, и прочим) не хватает трех вещей:
- возможность при игре всветлую ходить вистующему за пасующего
(карты в светлую видно, но пасующий пока что ходит самостоятельно)
- игра при достижении пули договоренного значения не заканчивается
(но можно вручную предложить рассчитать и согласиться)
- не реализована обработка таймаута и наказание убежавшего игрока
(кончился интернет/электричество или позорно ретировался,
неважно)
//wbr Pashka R. <pashka....@gmail.com>
2010/1/15 avl <alex.lit...@gmail.com>:
В разумных пределах он никому не помешает.
И, раз уж все равно на вчера в 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())
Версия 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!