Лучшие онлайн игры ONGAB logo
Статистика авторитета: как это работает: обложка
Ур. 4 Поддержать Подписаться

Статистика авторитета: как это работает

Аллоды Онлайн

  •    •  
Поддержать Подписаться
17 5,831 29 0
0

Свой первый пост я начну с описания внутренностей сервиса.

Основная задача сервиса - расширить цифры, которые показаны на официальной странице статистики и "оживить" их.

Там вы видите лишь текущее количество очков гильдий и ее место в таблице ТОП-100.

В моем сервисе есть ряд улучшений:

1) Вы видите не только авторитет, но и его прирост за вчера/сегодня/за 7 дней/за 14 дней/за 30 дней. Это позволяет планировать стратегию роста и следить за темпами.

2) Вы видите сколько вас отделяет очков от гильдии, которая идет впереди. И можете знать, сколько осталось набрать очков гильдии, которая находится на 1 место ниже вас. Эти цифры позволяют следить за вашим темпом среди соперников и видеть как сильно вы теряете позицию или, наоборот, настигаете ближайшего соперника.

3) И, наконец, все цифры можно сравнивать с другими гильдиями.

В недавнее время сервис был изменен. По сути я полностью переписал его код и практически полностью поменял алгоритмы сбора информации и его подсчета. Остался только минималистичный дизайн сайта, который я считаю удачным - его фишка в том, что он не "рвет" глаз. Так же я не стал обвешивать сайт свистелками-перделками, чтобы было все красиво. Поэтому дизайн получил мелкие правки и остался тем же.

Статистика состоит из двух частей: сборщика информации (граббер) и сайта, на котором показывается информация (паблик).

Граббер.

Представляет собой ряд минималистичных скриптов (чанков), задача которых выполнить свою функцию и больше ничего. Некоторые чанки умеют запускать другие чанки, а некоторые засыпают и никому ничего не сообщают.

Так, например, чтобы записать информацию в базу данных по типу "дата-гильдия-очки" требуется последовательный запуск 4 скриптов: выбрать сервер, скачать страницу с официального сайта, вычленить цифры, сохранить данные. Затем еще один скрипт записывает все цифры в базу данных. Его задача - снизить количество сохраняемой информации в базу данных в 10 и более раз.

Представьте, себе, что я сохраняю все цифры авторитета в базу данных. В целом получается где-то 10-20 записей в сутки. Например, 4 утра - 100 очков, 5 утра - 200 очков ... полночь - 3000 очков.

А на самом деле все эти цифры не нужны. Чтобы знать сколько гильдия заработала авторитета за сутки, нам потребуется только самая последняя запись до 4 утра "вчера", и цифра на текущее время. Вот этим и занимается пятый скрипт - он сохраняет только последнюю запись или обновляет их, если они сегодняшние. В итоге на каждый период у нас остается последняя запись с цифрами авторитета. Если период меняется, самая последняя цифра там и остается.

В итоге в базе данных каждая гильдия представлена только одной записью авторитета в сутки. Итого - 800 записей в сутки, чтобы хранить информацию по всем серверам.

Как подсчитывается прирост авторитета.

Все было бы просто, но есть один нюанс. Дело в том, что расчетный период оканчивается не в полночь, а в 4 часа утра и следует учитывать, что период "сегодня" выпадает на две даты. Запрос должен выбрать правильный период в зависимости от текущего часа и запросить на него число авторитета. Затем отсчитать назад требуемое количество дней и снова получить цифру авторитета. Бывает, что такой цифры не находится.

Раньше: сервер не "огорчался" отсутствующей цифрой и шел дальше. Он находил цифру рядом (например еще на 2 дня ранее), и считал ее результатом. Но это давало приближенный результат.

Теперь: сервер, не получив цифру авторитета за нужный период, возвращает ноль и вы не увидите прирост очков. На самом деле это правильно - больше вас не вводят в заблуждение приближенными цифрами.

Таким образом получаются приросты за сегодня/вчера/.../30 дней.

Паблик

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

Как же работает таблица "Все сервера"? Если у нас спрашивают только один сервер, выводится 100 записей. Иначе - выводим все 800. То есть таблица "все сервера" всегда содержит 800 записей, которые представляют результат самых последних расчетов статистики.

Интересные факты:

  • Раньше в статистике авторитета "Аллодов Онлайн" на сервере "Молодая гвардия", находилась гильдия под названием "Веселый Роджер". Однажды ее удалили админы, но затем игроки создали ее заново. В таблице статистики было две гильдии с полностью одинаковым названием.
  • Это было трагедией для распознавания гильдий. Представьте себе, что вы почтальон, и у вас письмо на ФИО "Полшестов Нестоян Лежанов". Вы звоните в дверь, а вам открывает два брата-близнеца. Как вы определите кому отдать письмо? Сами братья, конечно, разберутся между собой кому именно пришло письмо - они знают друг-друга в отличие от вас. Вот в такой ситуации и работала статистика. Для этого сборщика была сделана специальная система определения, которая должна была поймать дубля или не дать при его исчезновении записать цифры не той гильдии. Однажды гильдия-дубль исчезла из списка и участок кода с костылем (чего греха таить - был очень даже такой грубый костыль) был выпилен.

  • Однажды сервер статистики перестал считать некоторые гильдии и упрямо выставлял им одно и то же количество очков
  • Я не замечал этой ошибки несколько месяцев до тех пор, пока глава одной из топ-гильдий не написала мне про странное поведение цифр. Каково же было мое удивление, когда оказалось, что эта гильдия набрала такое количество очков (больше двух миллиардов), что эта цифра перестала помещаться в базе данных. Тип INTEGER как раз и вмещал такую цифру(2 миллиарда 147 миллионов 483 тысячи 647), а больше просто не мог. Я сменил тип ячейки памяти на следующий BIGINT, и все заработало.

    С тех пор я не отношусь к цифрам в своих прогнозах столь беспечно.

  • Чаще всего сайт посещают во вторник. Это самый "посетительный" день. А всего в день сайт посещают в среднем 500 разных человек. Рекорд - 921 человек за сутки.
  • Сервер "Наследие джунов" мог быть подключен в прошлой версии сайта в течение пяти минут, но не подключался более года. Причина банальная - я забывал, а когда помнил - не имел доступа к исходному коду и каждый раз обещал себе, что сделаю это. Абыдно до сих пор.
  • Рождение граббера новой версии состоялось 23 февраля 2012 года. Теперь он "вечно" хранит данные о гильдиях. Граббер старой версии хранил данные только 40 дней, а потом они стирались ради экономии места. Конечно, это не означает, что все гильдии имеют цифры с этой даты - некоторые не так давно вошли в список ТОП-100, а также часто не работал официальный сервис статистики, однако цифры хранятся и когда-нибудь им будет найдено применение.

Сервис работает по адресу: http://allods.spacerstore.com.

Добро пожаловать.

17


29 комментариев
  • аватар

    12 комментариев, согласно традиции :)

  • аватар

    лови плюс за хорошую работу)

  • аватар

    Плохая традиция, а вот сервис хороший, спасибо за труды

  • аватар

    Едрён батон, не думал что у ГЛ такой отрыв от Армады на ГВ.

    Рекомендую:

    • Выводить уровень гильдии
    • Цветовое разделение гильдий по фракциям
    • Кнопки для просмотра статистики по каждой фракции в отдельности.
    • При наведении на строку гильдии, сравниваются все параметры по всем столбцам для всех гильдии (день, неделя месяц): если авторитет больше выделять красным, меньше - зелёным.
    • Средний прирост авторитета за год, пол года. Возможно графики роста для каждой гильдии.

  • аватар

    Статистика это хорошо.

    Еще помнится был такой вот сайт у него вообще супер функционал.

    http://guilds.dreamsline.su/

    Если бы его кто-нить реанимировал

  • аватар

    За пост категорически плюс, но в пост пойдёт минус. По той же традиции за коммент;)

  • аватар

    Отличный обзор и сервис. Отправлен на главную.

    Не хотел бы разместить его на нашем портале? Копирайты и ссылка гарантируются.

  • аватар

    Когда я сохранил пост, его не было видно в Блогосфере. Я подумал, что, наверное, надо дать один коммент, и тогда пост появится. Не зря ж почти каждый блого-пост содержит такую запись? И после этого коммента, пост появился в блогосфере. Так что если я что-то нарушил, пардон, не знал :)

  • аватар

    Ты имеешь ввиду разместить сервис или ссылку на сервис?

  • аватар

    Копию сервиса с копирайтом и ссылкой на твой сайт.

    + рекламку на его аолайв страницу в боковом меню и отдельную новость.

  • аватар

    Спасибо за предложение. Я его обдумаю.

  • аватар

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

  • аватар

    Система вывода записи в поле "комментируемые" была придумана Авиларом :)

    при появлении первого комментария запись выводится в блок справа, в комментируемые, при этом большая часть блогосференян часто комментят записи именно из того блока :)

  • аватар

    Денай, а ты случаем не играешь в Дъяблу 3 ? А то толи на хорадрике, то ли на офф. форуме такой ник увидел)

    А за главный пост +, ибо хороший сервис)

  • аватар

    Выводить уровень гильдии

    Да, планируется в следующей выливке.

    Цветовое разделение гильдий по фракциям

    Проблематично, поскольку я не знаю где могу вытянуть фракционную принадлежность. Вручную долго и неточно, и в топ-100 могут появиться новые гильдии.

    При наведении на строку гильдии, сравниваются все параметры по всем столбцам для всех гильдии (день, неделя месяц): если авторитет больше выделять красным, меньше - зелёным.

    Это такой яваскрипт будет, что я пока подумаю. Кроме того, есть подозрение, что изменение цветов во всей таблице съест кучу ресурсов компьютера клиента и испортит внешний вид таблицы.

    Лучше пока использовать сортировку: она ничего не подсвечивает, но располагает все в требуемом порядке.

    Возможно графики роста для каждой гильдии.

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

  • аватар

    Я? ну как сказать... пекло прошёл, 4 класса до 60 довёл, на ХК прошёл нормал и жду фикса всяческих багов. В общем поигрываю чуток. Не то чтобы уж особо.

  • аватар

    Не, ничо не нарушил. ггнопост по-другому в то место где ты их не видишь и не попадёт. Ну или явится всё же кто-то, кто напишет что пост ггно. В остальных же случаях пост всё равно виден через "новые" и всё равно станет виден в этой твой блогосфере как только кто-то его откомментит. Первый коммент к посту от его же автора - признак того что автор побаивается своей ущербности и того что его великое творение не заметят (см. Авилар). Не думаю что это хорошая традиция. Лучше заводи новые традиции, действительно годные. Ты, в отличие от многих здешних авторов, это мог бы.

    З.Ы. Если в пост крепить картинки с сиськами, просмотров тоже будет больше, но аналогично не думаю что это была бы хорошая традиция и не думаю что я бы за такие посты ставил плюс. Хотя плюсы да минусы ни на что не влияют же, так что пофиг

    З.З.Ы. Свежий пост, а в нём аж 50 комментов! Наверно офигенная тема, надо глянуть. Ой *%^&$%#! Все 50 комментов от автора поста. Да ну его @#$%^&&*!

  • аватар

    Спасибо за сайт. пользуюсь уже давно. отдельное спасибо за добавленную сортировку по авторитету. долгое время копировал в excel и там уже вычислял темпы. теперь всё просто. еще раз Спасибо!

  • аватар

    Проблематично, поскольку я не знаю где могу вытянуть фракционную принадлежность. Вручную долго и неточно, и в топ-100 могут появиться новые гильдии.

    Самый надёжный способ определения фракционной принадлежности - юзербары - название гильдии+цветовая дифференциация, но я фз как это выковыривать.

    P.S.: но для начала можно использовать местную базу данных - http://armory.aolive.ru/characters

  • аватар

    Юзербары - проходимся по оф форуму (топики по номерам перебираем) и записываем все юзербары оттуда. Распознавать должно быть не сложно т.к. картинки строятся по одной схеме и никуда ничо не прыгает. Занятие на один вечер, думаю из топа большинство гильдий уже за первый прогон фракцией обзаведётся. Где инфы нет - не отображать, фигли делов то.

  • аватар

    Пока что можно надежно вытащить фракционную принадлежность с рейтинга кораблей.

    Как ни странно, но там есть столбец со стороной, которой принадлежит гильдия.

  • аватар

    Да с какого перепугу это ввел Авилар, если год назад он сам бурчал на эти промо-комментарии?)

  • аватар

    Кстати, месяца 2 назад был блог, который прям с наглостью все эти традиции использовал) В начале была красивая картинка, далее шли структурированные списком вопросы, при этом кат был логично посередине, при этом еще вопросы были написаны предложениями с запятыми и точками. Но вот 2 комментария - 1 промо, второй от кого-то там. Ибо вопросы наитупейшие, но рейтинг был где-то около +10.

  • аватар

    Давно пользуюсь, хороший сайт. Спасибо

  • аватар

    По Расколу есть вот такая статистика: http://www.ao-legion.ru/guilds-rating/

    Что скажите?

  • аватар

    1) Можно было сделать все сервера.

    2) Некорректные данные в дельте, есть предположение, что авторитет считают не от 4 часов утра, а от 12 ночи.

    3) динамика БСЛ стоит +1 место... Я, честно говоря, сколько помню, они всегда на этом месте.

    4) Обновление раз в три часа не слишком актуально: официальный сервер работает с интервалом полчаса, максимум час. Правда у меня чуть сложнее - мне надо обойти все сервера. Поэтому выставлен забор одной страницы с одного из шардов раз в три минуты.

    А так очень неплохо сделано, есть разделение по фракциям, нормальная цветовая гамма, сортировка.

  • аватар

    Можно, но гильдия "расколовская" и статистика по другим серверам не интересна.

    Дельта берется суммарная без привязки к 4 утрам. Тем более, как Вы говорите, статистика обновляется раз в полчаса-час, то при чем тут 4 часа утра?

    БСЛ, как и другая гильдия, может не набирать авторитета для первого места. Фениксы летом довольно часто выходят на первое место.

    Раз в три часа - вполне нормальное время, т.к. live трансляцию делать не хочется ) Статистики по набору за час нет, есть только за сутки, но и это вполне хватает, чтобы понять динамику набора.

  • аватар

    У вас цифры авторитета с 0 до 4 часов утра попадают в графу "сегодня", тогда как они принадлежат графе "вчера". Отсюда совсем другие цифры в статистике за одни сутки. На большом промежутке, например "30 дней", это незаметно, но в целом дает неигровую картину, так как в игре авторитет обнуляется в 4 утра, а с полуночи до 4 утра идет достаточно много полетов в астрал.

    Насчет БСЛ не буду спорить, но мне всегда казалось, что они стоят на первом месте уже очень давно. Сейчас их и Фениксов разделяет 300+ миллионов авторитета. Достаточно большая цифра.

    P.S. От статистики по набору за час и я отказался. Польза сомнительная, а контрольных точек в 24 раза больше.

  • аватар

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

Оставлять комментарии могут только зарегистрированные пользователи
Материалы в тему
×
Новая лига, вступаем =) Mass Effect
Закрыть все