Словолом - игра в слова
Словолом - игра в слова
Словолом http://slovolom.com - игра в слова.
О сайте
Сайт представляет собой онлайн игру в слова: составление слов из букв данного слова. Имеется вход через сторонние сервисы, статистика, список участников.
Сайт полностью написан на Yii и использует MySQL
Используемые компоненты
Yii Bootstrap, Yii Eauth (https://github.com/Nodge/yii-eauth ).
Структура
Структура таблиц базы данных не сложная, но необходимость выполнения большого количества запросов на запись и чтения может привести к заметным тормозам при добавлении слова. Теоритический расчет: данная схема на данной конфигурации потянет до 100 посетителей онлайн.
Для скорости работы сайта необходимо переписать базу данных полностью на быстрое noSQL-решение, например Redis. Задача осложняется необходимостью использовать JOIN’ы, которые в Redis’e отсутствуют.
Рейтинг игроков
Посылается каждый 5 секунд AJAX-запрос. Также включено кеширование результата на те же 5 секунд.
Статистика игрока
Самая тяжелая часть – расчет уникальности слов. Статистика обновляется после добавления слова.
Новые слова
В случае отсутствия слова в словаре, игрок может добавить слово в базу, которое будет окончательно добавлено в словарь только после проверки редактора. При подтверждении слова, оно будет автоматически зачтено участнику.
Расчет статистика
Сколько уникальных слов составлено для данного слова
Расчет рейтинга пользователя для данного длинного слова, который зависит от количества придуманных слов, от уникальности слов и от длины слов.
Расчет полного рейтинга пользователя: среднее арифметическое всех рейтингов для всех играющих слов.
Рейтинг рассчитывается консольным приложением один раз в день по крону только для тех слов, которых прекратили игру.
О сайте
Сайт представляет собой онлайн игру в слова: составление слов из букв данного слова. Имеется вход через сторонние сервисы, статистика, список участников.
Сайт полностью написан на Yii и использует MySQL
Используемые компоненты
Yii Bootstrap, Yii Eauth (https://github.com/Nodge/yii-eauth ).
Структура
Структура таблиц базы данных не сложная, но необходимость выполнения большого количества запросов на запись и чтения может привести к заметным тормозам при добавлении слова. Теоритический расчет: данная схема на данной конфигурации потянет до 100 посетителей онлайн.
Для скорости работы сайта необходимо переписать базу данных полностью на быстрое noSQL-решение, например Redis. Задача осложняется необходимостью использовать JOIN’ы, которые в Redis’e отсутствуют.
Рейтинг игроков
Посылается каждый 5 секунд AJAX-запрос. Также включено кеширование результата на те же 5 секунд.
Статистика игрока
Самая тяжелая часть – расчет уникальности слов. Статистика обновляется после добавления слова.
Новые слова
В случае отсутствия слова в словаре, игрок может добавить слово в базу, которое будет окончательно добавлено в словарь только после проверки редактора. При подтверждении слова, оно будет автоматически зачтено участнику.
Расчет статистика
Сколько уникальных слов составлено для данного слова
Расчет рейтинга пользователя для данного длинного слова, который зависит от количества придуманных слов, от уникальности слов и от длины слов.
Расчет полного рейтинга пользователя: среднее арифметическое всех рейтингов для всех играющих слов.
Рейтинг рассчитывается консольным приложением один раз в день по крону только для тех слов, которых прекратили игру.
Игра в слова - http://slovolom.com
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Играл играл в слова. Обновил страницу. Продолжил играть.
http://awesomescreenshot.com/0a4m0ca69
А еще словарь у вас фиговый. Всякая ахинея типа сочетаний букв кис, тик - в нем есть, зато кучи нормальных слов нет. Мне засчитают мои слова потом, к-х нет в словаре но я нажал кнопку добавить?
http://awesomescreenshot.com/0a4m0ca69
А еще словарь у вас фиговый. Всякая ахинея типа сочетаний букв кис, тик - в нем есть, зато кучи нормальных слов нет. Мне засчитают мои слова потом, к-х нет в словаре но я нажал кнопку добавить?
Re: Словолом - игра в слова
Глюк, спасибо.YaZabylStariyNick писал(а):Играл играл в слова. Обновил страницу. Продолжил играть.
http://awesomescreenshot.com/0a4m0ca69
Оказывается, хороший словарь трудно найти, но поиски продолжаются)YaZabylStariyNick писал(а):А еще словарь у вас фиговый. Всякая ахинея типа сочетаний букв кис, тик - в нем есть, зато кучи нормальных слов нет. Мне засчитают мои слова потом, к-х нет в словаре но я нажал кнопку добавить?
Да, засчитают, но только те, которые являются нарицательными существительными в единственном числе и именительном падеже..
Игра в слова - http://slovolom.com
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Cейчас вернулся на страницу, стало еще прикольнее. Когда уходил так не было
http://awesomescreenshot.com/0bbm0sa73
http://awesomescreenshot.com/0bbm0sa73
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Кстати по поводу запросов каждые 5 сек.
Вы сами досите свой сервер и кеш на 5 секунд вас не спасет. Посмотрите и подумайте
Это раз.
http://i48.fastpic.ru/big/2012/1111/f8/ ... 0b77f8.png
Это два.
http://i48.fastpic.ru/big/2012/1111/6a/ ... 87506a.png
Я не знаю какой там у вас сервер, но надо достаточно маленькое количество пользователей что бы его положить к черту.
Вы сами досите свой сервер и кеш на 5 секунд вас не спасет. Посмотрите и подумайте
Это раз.
http://i48.fastpic.ru/big/2012/1111/f8/ ... 0b77f8.png
Это два.
http://i48.fastpic.ru/big/2012/1111/6a/ ... 87506a.png
Я не знаю какой там у вас сервер, но надо достаточно маленькое количество пользователей что бы его положить к черту.
Re: Словолом - игра в слова
С номерами ошибку исправил, спасибо.YaZabylStariyNick писал(а):Cейчас вернулся на страницу, стало еще прикольнее. Когда уходил так не было
http://awesomescreenshot.com/0bbm0sa73
Расчет рейтинга пользователей - легкий запрос. Поэтому 1 раз в 5 секунд это нормально. Но все равно, данные кешируются на 5 секунд. Досса нет.YaZabylStariyNick писал(а):Кстати по поводу запросов каждые 5 сек.
Вы сами досите свой сервер и кеш на 5 секунд вас не спасет. Посмотрите и подумайте
Слабенький VPS. Что-то творится с сервером: он не нагружен (судя по htop-у), но данные иногда отдаются очень медленно - буду разбираться с проблемой.YaZabylStariyNick писал(а):Это раз.
http://i48.fastpic.ru/big/2012/1111/f8/ ... 0b77f8.png
Кстати по поводу запросов каждые 5 сек.Это два.
http://i48.fastpic.ru/big/2012/1111/6a/ ... 87506a.png
Я не знаю какой там у вас сервер, но надо достаточно маленькое количество пользователей что бы его положить к черту.
П.С. В базу добавляются только нарицательные существительные, но само понятие "нарицательность" - относительное. К примеру, слова "Хакер", "Логин" и т.д. Но уже есть планы как определять какие слова подтверждать, а какие нет.
Игра в слова - http://slovolom.com
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Вот что видит мой внутренний экстрасенс.Слабенький VPS. Что-то творится с сервером: он не нагружен (судя по htop-у), но данные иногда отдаются очень медленно
1. Таблица со словами - mysql-MyIsam. Добавляется новое слово\обновляется какая-нить статистическая инфа - происходит лок на чтение.
2. Просто дофига простых запросов для слабенького впс.
как вывод того и\или другого - очередь запросов=> медленный ответ.
Может поможет.
А вообще прикольный проект Весь день захожу проверить свое положение и дописываю слова)
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Наберете еще сотню другую пользователей и вспомните мои словаДосса нет.
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Добавьте еще пагинацию списка слов, к-й пользователь уже ввел и быстрый поиск по ним с автокомплитом.
А еще можно сделать кнопку типа похвастаться друзьям в соц-сети сколько я набрал слов.
А еще можно сделать кнопку типа похвастаться друзьям в соц-сети сколько я набрал слов.
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Еще наверно стоит ввести систему очков - что бы не по количеству слов лидер выбирался, а по количеству очков - более длинное слово = больше очков. Как-то так.
Re: Словолом - игра в слова
Спасибо за советыYaZabylStariyNick писал(а): Вот что видит мой внутренний экстрасенс.
1. Таблица со словами - mysql-MyIsam. Добавляется новое слово\обновляется какая-нить статистическая инфа - происходит лок на чтение.
2. Просто дофига простых запросов для слабенького впс.
как вывод того и\или другого - очередь запросов=> медленный ответ.
Может поможет.
1. Таблицы InnoDB - там вроде построчная блокировка для update'a
2. Да запросов вроде недофига: играют около 5 человек пока, да и то, не постоянно.
Попробую поставить Nginx как фронт-энд.
Так я и писал в начале, что не выдержит, наверное, 100YaZabylStariyNick писал(а):Наберете еще сотню другую пользователей и вспомните мои слова
Занес в планы.YaZabylStariyNick писал(а):Добавьте еще пагинацию списка слов, к-й пользователь уже ввел
Не оч понятно, зачем это может быть нужно.YaZabylStariyNick писал(а): и быстрый поиск по ним с автокомплитом.
Идея была, но глаза не дошли прочитать, как это делается.YaZabylStariyNick писал(а):А еще можно сделать кнопку типа похвастаться друзьям в соц-сети сколько я набрал слов.
Такая система есть - рейтинг рассчитывается по крону только после того слово прекратило играть:YaZabylStariyNick писал(а):Еще наверно стоит ввести систему очков - что бы не по количеству слов лидер выбирался, а по количеству очков - более длинное слово = больше очков. Как-то так.
- Рейтинг конкретного участника для конкретного слова, которое играет, зависит от средней длины, от средней уникальности и от к-ва придуманных слов и выражается в баллах
- Рейтинг участника общий - это средний рейтинг участника по всем словам, в которые он играл.
Вот топ 1000 http://slovolom.com/index.php?r=user/top
Сейчас пока еще ни одно слово не завершило свою игру, поэтому рейтинг у всех по нулям.
Игра в слова - http://slovolom.com
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Потому что когда слово на другйо странице, мне было бы неудобно клацать и искать. А так в автокомплите можно посмотреть - было оно или нет, и вообще какие сочетания букв для начала слова уже использованы.Не оч понятно, зачем это может быть нужно.
Кстати, а почему такой большой срок игры? Это много слишком, имхо. Чем мотивировано такое решение?только после того слово прекратило играть
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Я бы вас советовал поставить nginx как ВСЕПопробую поставить Nginx как фронт-энд.
И выкинуть нафиг апач.
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Сделайте пожалуйста, я хочу запоститьИдея была, но глаза не дошли прочитать, как это делается.
А еще такие кнопки помогают популяризации сайта очень быстро.
Re: Словолом - игра в слова
Каждое слово играет 7 дней: каждый день появляется новое слово и прекращает играть старое. Поскольку сайт только запущен, то до первого подсчета рейтинга нужно подождать 7 дней, потом рейтинг будет обновляться каждый день.Кстати, а почему такой большой срок игры? Это много слишком, имхо. Чем мотивировано такое решение?
7 дней выбрана как круглая дата (неделя), меньше срок не даст поиграть людям, которые не каждый день могут играть.
Игра в слова - http://slovolom.com
Re: Словолом - игра в слова
Можете пояснить, что именно нужно?YaZabylStariyNick писал(а): Сделайте пожалуйста, я хочу запостить
А еще такие кнопки помогают популяризации сайта очень быстро.
Игра в слова - http://slovolom.com
-
- Сообщения: 130
- Зарегистрирован: 2012.06.13, 12:48
Re: Словолом - игра в слова
Ну например я набрал сколько-слов.
Жму кнопку - показать в фейсбуке.
И там поститься что-то типа "Из слова БЛАБЛАБЛА я собрал Х слов, осталось Y часов, cколько успеете вы?"
Жму кнопку - показать в фейсбуке.
И там поститься что-то типа "Из слова БЛАБЛАБЛА я собрал Х слов, осталось Y часов, cколько успеете вы?"
Re: Словолом - игра в слова
Интересует словарь. Там только существительные, сколько слов, где взяли?
Re: Словолом - игра в слова
Спасибо всем за советы.
Что нового:
- Исправлены ошибки
- Реализован другой механизм расчета итогового рейтинга
- Кнопка "Поделиться результатами"
- Оптимизация и мелкие исправления
Что нового:
- Исправлены ошибки
- Реализован другой механизм расчета итогового рейтинга
- Кнопка "Поделиться результатами"
- Оптимизация и мелкие исправления
Да, около 16 тысяч. На просторах интерната, где именно - уже не помню. Но словарь далеко не идеальный: в нем нет многих слов, а также есть те, что не должны там быть, поэтому игроки регулярно добавляют новые слова.mijgan писал(а):Интересует словарь. Там только существительные, сколько слов, где взяли?
Игра в слова - http://slovolom.com
Re: Словолом - игра в слова
Интересный сайт.
Хотелось бы Юрий сократить срок окончания игры. Исключить короткие слова в 2-3 буквы. Потом может лучше выставлять не длинные слова, а набор букв?
Хотелось бы Юрий сократить срок окончания игры. Исключить короткие слова в 2-3 буквы. Потом может лучше выставлять не длинные слова, а набор букв?