Справка
1. Вступление
1.1 Где я?
Вы находитесь в разделе помощи к системе DSeye.ru — анализатору онлайн игры DestinySphere.
В этом разделе мы постарались собрать основную информацию о возможностях использования системы.
Если после его изучения у Вас остались вопросы — свяжитесь с нами и мы постараемся осветить их в данном разделе.
1.2 О проекте
Данный проект создан и будет развиваться для облегчения отслеживания развития отдельных игроков и общей динамики игры.
Официальный День Рождения проекта 11.02.2011. В этот день свет увидела первая публичная альфа-версия.
Принципы:
- вся собираемая информация доступна всем пользователям без каких-либо ограничений и приоритетов;
- регистрация необязательна и требуется лишь для тех сервисов, которые не могут быть реализованы без оной;
- система стремится предоставлять актуальную информацию, но не гарантирует этого;
- монетизация возможна только через добровольные пожертвования (нет рекламы, спама и т.д.).
Технические аспекты
Система написана на ZendFramework (php) и python. Работает всё на CentOS / Apache / nginx / MySQL / memcached и хостится на vds от majordomo — 2200МГц / 2Гб Озу / 512 swap / 30Гб HDD.
Основное ядро системы состоит из двух скриптов — постоянного обновления информации и ежедневного сборщика статистики по мирам/альянсам. Первый из них каждые несколько минут скачивает csv-файлы старых или новых рейтингов с сайта игры и анализирует пришедших/ушедших игроков, переезды сот и другую информацию. Второй — запускается ежедневно около полуночи и сохраняет слепок статистики по мирам и альянсам. На основании этих данных ведётся построение исторических графиков.
Кроме основных, в течении дня трудятся ещё несколько скриптов, отвечающих за вторичный функционал.
- Сборщик мусора — запускается глубокой ночью и удаляет старые данные из системы.
- Обновлялка новых рейтингов — постоянно парсит страницы новых рейтингов на сайте игры и обновляет параметры игроков в нашей системе.
- Обновлялка старых рейтингов — по аналогии с новыми рейтингами, парсит страницы старых рейтингов на сайте игры и обновляет параметры игроков.
- Сборщик данных по онлайну — каждый час сохраняет данные о количестве игроков в игре всех версий.
- Обновлялка РА — постоянно парсит страницы хелпера на предмет РА игроков и обновляет их у нас.
- Парсер игры — заходит в игровой клиент и просматривает комплексы каждого кольца на предмет изменения статусов ворот (щит, отпуск и т.д.).
Статистика по мирам и альянсам собирается путём слепков данных по ним в полночь каждого дня. Поскольку миров и альянсов не так много, мы можем позволить себе хранить эти данные в таком виде за достаточно длительный промежуток времени.
Со статистикой по игрокам дело обстоит сложнее — их много и для каждого важно что бы даже малейшие изменения в показателях были зафиксированны, поэтому хранение такого количества слепков привело бы к огромной и медленной базе. Поэтому вместо хранения жёсткого количества «слепков» статистики мы храним данные обо всех изменениях (инкрементная статистика). Такой механизм с одной стороны позволяет видеть малейшие изменения показателей, а с другой избавляется от издержек на игроков, у которых показатели меняются крайне редко.
Направление развития
Основных путей развития два:
- агрегация и анализ (в том числе прогнозирование) игровых показателей миров/альянсов/игроков;
- различные инструменты для эффективного поиска/отслеживания/оповещения об изменении в тактических показателях
Первое направление призвано помочь в оценке развития различных игровых сущностей и, на основании этих данных, планировать стратегию игры. Сюда следует относить всё, что связано с различной статистикой и подведением итогов развития.
Второе направление создано для эффективной игры «здесь и сейчас». Основными модулями этого направления можно считать автопоиск, персональный мониторинг и расширенный поиск игроков.
1.3 Разработчикам
Мы открыты для диалога с разработчиками, которые хотят использовать наши данные в своих проектах. Некоторые плюшки уже реализованы и подробно описаны на соответствующей странице. Если вам необходим другой специфичный функционал или какие-либо данные — обращайтесь, мы не жадные =)
2 Основы
2.1 Навигация
- Основное меню — всегда активно, включает в себя разделы, относящиеся ко всему проекту в целом и выпадающий список миров, для быстрого перехода.
- Меню по миру — становится активно после выбора мира и включает разделы, содержащие информацию по выбранному миру.
- Меню по альянсу — доступно при выборе альянса и предоставляет доступ к различным разделам информации по нему.
Переход к интересующему Вас миру осуществляется при помощи меню миров, расположенного в левой части большинства страниц основных разделов или при помощи быстрого перехода, находящегося на первом уровне главного меню.
На внутренних страницах заголовок, кроме своей основной функции, является ещё и так называемыми "хлебными крошками". К примеру, со страницы игрока вы можете быстро перейти к его альянсу.
В правом верхнем углу находится небольшое меню авторизации.
Оно предоставляет доступ к страницам входа / регистрации, а для уже авторизованных пользователей обеспечивает быструю навигацию по персональным разделам.
Кроме того, на страницах профиля данное меню продублировано слева, на месте меню выбора мира.
На некоторых страницах, справа под главным меню, находится значок помощи.
Этот значок приведёт Вас в ту часть данного руководства, которая описывает работу с выбранным разделом.
2.2 Работа с графиками
Большинство статистической информации отображается в виде интерактивных графиков.
- Если разрядность данных слишком велика — используется автоматическое сокращение по тысячным.
- Информация об отдельной точке отображается при наведении на неё. На некоторых графиках также отображается дельта изменения параметра относительно предыдущего значения.
- Легенда, помимо своей основной функции, позволяет скрывать/отображать отдельные серии данных.
- График можно масштабировать для подробного просмотра отрезка времени. Для этого выделите интересующий вас промежуток с зажатой левой клавишей мыши. Отменить масштабирование можно с помощью миникарты графика (5) или с помощью кнопок готовых интервалов(6).
2.3 Работа со списками
Списки игроков/колоний/альянсов представлены в виде разлинованных построчно таблиц.
- Большинство заголовков столбцов позволяют сортировать всю таблицу по соответствующему параметру.
- Под таблицей находится панель постраничной навигации, реализующая так называемую "резиновую пагинацию", по аналогии с google.com.
- Переключатель количества строк на странице позволяет выбрать удобное вам значение.
- При клике на строку она будет выделена цветом. Это позволяет, к примеру, визуально пометить цели в результатах расширенного поиска.
Обратите внимание — сортировка по домашней соте работает без учёта кольца.
3 Особые разделы
3.1 История изменений
В данном разделе можно посмотреть изменения мира за выбранный день.
- Навигация осуществляется с помощью стрелок "вперёд/назад".
- Кроме перелистывания истории по одному дню с помощью стрелок, реализован быстрый переход к необходимой дате. Достаточно кликнуть мышкой на текущую дату и выбрать необходимую в выпавшем календаре.
- Внутри некоторых столбцов присутствует разделение по времени.
- Рядом с каждым игроком (кроме графы смены альянса) отображается его текущий альянс.
Обратите внимание — отображаемые изменения ограничены 100 записями. Данное ограничение призвано сократить нагрузку на базу данных и отменено для авторизованных пользователей.
3.1.1 Max изменения
Изменения параметров (дельты) обновляются при каждом изменении показателей у игроков.
Для всех игроков мира дельты рассчитываются, как разница между старым и новым значениями, и сохраняются вместе со статистикой.
Впоследствии выбираются несколько наибольших по модулю дельт за текущие сутки, из полученного набора удаляются значения меньше порогового и сохраняются с датами этих изменений.
Благодаря такому алгоритму, в начале новых суток выводятся незначительные изменения, которые постепенно вытесняются более значимыми.
3.1.2 Изменения статуса ворот
Статус ворот игроков большинства миров передаётся нам в csv-файлах, но, к сожалению, у данного параметра бывает лишь два возможных значения — закрыты или открыты. В следствии этого наша система не может отслеживать "защиту новичка", "бан", "силовой щит" и другие особые статусы.
3.1.3 Переезды
С переездами по домашним сотам всё просто — если у игрока с одним и тем же ником изменился адрес домашней соты значит он переехал и будет отображён в этом разделе.
На переездах колоний остановимся подробнее. В данном анализе мы опираемся на адрес колонии и её название. В общем случае алгоритм выглядит следующим образом:
- Каждое имя из старых колоний игрока ищется в новых колониях этого же игрока.
- Если ничего не находим — значит колония была удалена.
- Иначе сверяем адреса у старой и новой колонии с одним и тем же именем.
- Если адреса не совпадают — значит, колония переехала.
В обоих типах переездов новые игроки (только что добавленные в мир) не учитываются.
Обратите внимание — на основании предоставляемых нам данных нет возможности гарантированно определять такие неигровые действия, как смена ника или переименование колонии.
Все подобные операции оцениваются нашей системой как удаление одного игрока (или колонии) и приход нового игрока, следовательно переезды в данном случае ничего не покажут.
Переименование колонии интерпретируется как удаление колонии со старым именем и добавление колонии с новым именем.
Кросс-переименование (когда пара колоний одного игрока меняются именами) интерпретируется как пара переездов.
3.2 Быстрый поиск игроков
Быстрый поиск игроков реализован внутри каждого мира и позволяет искать по части ника или названию домашней соты (не менее 3х символов) без учёта регистра (заглавные буквы равны прописным).
Это удобно когда вам надо вспомнить "как же звали того парня?" помня лишь часть его ника или же для быстрого перехода к конкретному игроку.
Просто начните вводить искомое выражение в поле ввода и вам покажут подходящие варианты.
Если вам не известен мир игрока, воспользуйтесь сервисом глобального поиска.
В обоих поисках есть скрытая фишечка — символ нижнего подчёркивания "_" интерпретируется как "один любой символ".
Это позволяет искать игроков по маске, например, по поисковой фразе "111_n" найдутся такие игроки как 111andrejj111 и 111snake.
Обратите внимание — отображаемые результаты поиска ограничены 50 игроками. Данное ограничение призвано сократить нагрузку на базу данных и ослаблено для авторизованных пользователей.
3.3 Расширенный поиск игроков (поиск грядок)
- В фильтре статуса ворот учитывается только домашняя сота (мельсион нельзя закрыть).
- В фильтре альянсов можно выбрать несколько значений путём зажатия кнопки CTRL.
- Границы параметров можно задавать вручную или при помощи ползунков — просто зажмите и тащите =)
Ссылки внизу таблицы результатов позволяют вернуться к поиску с заданными настройками и скачать результаты в формате csv для работы с ними в excel или другой программе. Это удобно, если вы хотите дать ссылку на данный поиск своему союзнику или показать новичкам настройки поиска грядок. Кроме того, данный функционал является неотъемлемой частью автопоиска и позволяет запоминать часто используемые настройки. Ссылка действительна в течении 30 дней с момента её последнего использования.
Обратите внимание — отображаемые результаты поиска ограничены 100 игроками, но сортировка работает со всем набором найденных игроков. Данное ограничение призвано сократить нагрузку на базу данных и ослаблено для авторизованных пользователей.
3.4 Карта игроков
3.4.1 Базовое использование
Каждый отрезок карты представлен в виде таблицы, в которой столбцы представляют комплексы, а строки — соты. По краям таблицы можно видеть координатную сетку, которая в паре с номером кольца составляет полную координату каждой соты.
- Перемещение по карте происходит посредством стрелок. Один клик по стрелке перелистывает карту на некоторое количество комплексов (по умолчанию 3 комплекса) вправо или влево. Карта полностью повторяет поведение кольца, поэтому клик влево от первого комплекса приведёт вас к последнему.
- Кроме того доступен быстрый переход к интересующему вас комплексу. Если вы указали слишком большое число — карта сведёт его к максимальному комплексу на этом кольце.
- Настройки работы карты собраны над ней и могут быть изменены вами в любой момент. Все изменения применяются автоматически.
Пустые и заполненные ячейки таблицы обозначают незаселённые и заселённые соты соответственно. Рассмотрим подробнее отдельную соту игрока (ячейку таблицы).
- На фоне соты (ячейки) нарисовано условное изображение расы игрока. В цвет расы также покрашен его ник.
- В центре размещены ссылки на страницу игрока и его альянс (откроются в новом окне).
- Сверху находятся иконки, показывающие уровень развития различных характеристик (рейтинг, бо и другие). На каждую из иконок можно навести мышкой и посмотреть точное значение.
- Внизу выводятся точные показатели РА и НРА.
Все ячейки карты кликабельны и ведут к загрузке детальных данных по игроку.
Более подробно об этом вы можете почитать далее, в разделе Подробный просмотр.
3.4.2 Подробный просмотр
В небольшой размер соты игрока на карте невозможно вместить всю доступную информацию. Частично решить данную проблему призвана функция подробного просмотра.
Под основным окном карты есть два небольших окошка.
В одно из них (активное) подгружается подробная информация о выбранном игроке.
Для этого достаточно кликнуть в пустое место внутри соты (ячейки) любого игрока и немного подождать.
Переключение активного окна происходит посредством клика по одному из них. Это позволяет сравнивать двух игроков, загрузив информацию по каждому из них в отдельное окно.
3.5 Колонии альянса
На данной странице можно посмотреть все колонии отдельно взятого альянса.
Колонии одного игрока разбиваются на отдельные строки, поскольку это таки разные колонии, хотя и принадлежащие одному игроку.
Фактически, данный раздел является табличным аналогом карты мельсиона с фильтром по альянсу.
3.6 Страница игрока
Данная страница призвана отображать всю известную информацию о игроке.
Для большинства игроков доступен поиск их сообщений на форуме соответствующей версии игры.
Это может быть полезным, когда вы собираете информацию о его активности.
Соты игрока в других мирах определяются по критерию одинакового ника. К сожалению, может возникнуть ситуация, когда данная информация будет не верна. Это связанно с тем, что разные версии игры имеют независимые системы регистрации и один и тот же ник может быть зарегистрирован разными людьми.
3.7 Страница альянса
Данная страница является краткой сводкой информации по текущим показателям и последним изменениям внутри выбранного альянса.
Обратите внимание — последние изменения отображаются для текущего состава игроков альянса. То есть, если игрок перешёл в другой альянс — в изменениях отобразится лишь этот переход, исключая остальные, даже более ранние, изменения его параметров (статус ворот, переезды и т.д.).
4 Личный кабинет
4.1 Регистрация
Указанный вами почтовый адрес не будет использоваться для спама и не будет передан третьим лицам.
4.1.1 Зачем регистрироваться?
Во первых, вы сможете использовать весь доступный функционал.
Во вторых, для Вас будет увеличен лимит найденых игроков в поиске (быстром и расширенном) и снят лимит отображаемых записей в истории изменений по миру.
В третьих, потратив несколько минут на регистрацию, вы дадите нам очередной стимул развивать проект в лучшую сторону =)
4.1.2 Регистрация
Регистрация бесплатна и анонимна. На один и тот же почтовый ящик можно зарегистрировать несколько аккаунтов — это может понадобиться если у вас несколько сот.
В форме, доступной из главного меню, вам потребуется ввести почтовый адрес, логин и пароль.
После успешной регистрации вам будет отправлено письмо с инструкцией по подтверждению адреса электронной почты, однако вы можете сразу начинать пользоваться сервисом, не подтверждая email адрес.
Рядом с полем пароля присутствует идентификатор сложности пароля.
Рекомендуем обращать на него внимание, а также не вводить пароль аналогичный паролю в игру =)
4.1.3 Подтверждение email
После успешной регистрации вам было отправлено письмо с инструкцией по подтверждению принадлежности данного адреса электронной почты к Вашему аккаунту.
Весь процесс подтверждения сводится к вводу специального кода активации в форме подтверждения.
Если после успешной регистрации вам не пришло письмо с инструкцией по подтвердению, вы можете попробовать запросить его ещё раз, отправив запрос из специальной формы.
4.1.4 Восстановление пароля
На странице с формой входа есть ссылка для восстановления пароля.
Введите Ваши имя пользователя и email, указанный при регистрации, и мы вышлем вам инструкцию по восстановлению пароля.
Письмо будет отправлено только в том случае, если вами при регистрации был указан корректный email и, разумеется, он в рабочем состоянии.
Если вы не указывали email-адрес или потеряли контроль над ним — свяжитесь с нами.
4.1.5 Смена пароля
Вы можете в любой момент сменить текущий пароль от аккаунта с помощью специальной формы. Она доступна по ссылке из профиля.
Заполните все поля и отправьте запрос — изменения вступят в силу мгновенно.
4.2 Профиль
4.2.1 Основное окно
В профиль можно попасть кликнув по нику в правом верхнем углу главного меню, а также кликнув по основному логотипу в левом углу.
В основном окне собрана краткая сводка по аккаунту и используемым сервисам, а также ссылки на другие доступные функции.
4.2.2 История пользователя
Все действия с аккаунтом, как то "смена пароля" или "вход в систему" фиксируются в истории вашего аккаунта.
В кратком виде данная история отображается в основном окне профиля.
Из меню профиля или по ссылке "подробнее" в кратком списке событий вы можете перейти к странице истории всех действий с аккаунтом.
Обратите внимание — помимо действий, доступных после успешной авторизации, мы также фиксируем все внешние попытки воздействовать на аккаунт (запросы восстановления пароля, неудачные попытки входа и т.д.).
Это позволяет отследить попытки взлома вашего аккаунта и заранее принять контрмеры.
4.3 Автопоиск
Данный сервис предназначен для быстрого доступа к часто используемым настройкам расширенного поиска игроков. Альтернативой такого функционала может выступать хранение закладок на различные поиски в браузере — тут уж кому как удобнее.
4.3.1 Основное окно
Страница управления всем автопоиском аккаунта доступна по соответствующему пункту меню профиля.
Тут вы можете видеть все сохранённые настройки поиска, сгруппированные по своим мирам.
Кроме того, последние использованные настройки поиска отображаются в основном окне профиля.
- Все названия миров являются ссылками на главную страницу мира.
- Рядом с каждым поиском есть кнопка для удаления выбранной записи.
- Под каждой группой присутствует ссылка на расширенный поиск по миру, где вы можете произвести поиск с новыми параметрами и добавить его в свой автопоиск.
4.3.2 Добавление / изменение
Добавление новых и изменение уже сохранённых настроек осуществляется на странице расширенного поиска по соответствующему миру.
Произведите поиск по нужным параметрам и дождитесь результатов.
Над списком найденных игроков вы увидите кнопку "Добавить в автопоиск".
Нажмите на неё, в открывшемся блоке выберите требуемое действие, введите имя нового поиска (или выберите одно из существующих, если желаете изменить уже добавленные настройки) и нажмите "сохранить".
5 Прочее
5.1 Статистика онлайн
Данные по текущему онлайну берутся с сайта игры (различные версии отдельно) и отображаются в виде графиков за длительный промежуток времени.
На графике по дням данные сводятся к среднему, максимальному и минимальному значениям за сутки.
5.2 Таблица археологического рейтинга
В этой таблице приведены данные по количеству очков археологического рейтинга выдаваемых за каждый найденный артефакт.
Эти данные получены экспериментальным путём (отдельное спасибо Gryzzly и hamsterOK) в мирах Водолея и Эридана, но скорее всего являются верными и для остальных миров.
Если вы нашли несоответствие с вашей динамикой арх. рейтинга — напишите нам.
5.3 Калькулятор времени раунда
С помощью данного сервиса стало возможным достаточно точно рассчитать время раунда между двумя армиями известного веса. Введите два значения продовеса армий и выберите мир.
Формула рассчёта времени была взята отсюда.
Текущие настройки миров следует смотреть тут.
5.4 НРА
НРА или новый рейтинг активности был задуман как замена РА от хелпера. Основной претензией к РА с нашей стороны было полное игнорирование таких игровых событий, как переезд игрока или вход в альянс, а также отсутсвие ависимости от изменений новых рейтингов.
НРА игроков обновляется каждые несколько минут и все изменения сохраняются в виде статистики изменений (по аналогии со всеми остальными изменениями игроков).
НРА есть мгновенный показатель предполагаемой активности игрока в данную минуту. Тоесть чем текущий НРА выше - тем вероятнее, что игрок в данный момент на соте. НРА всегда лежит в промежутке от 0 до 200 с точностью до двух знаков после запятой.
В своих рассчётах мы опираемся на такие показатели, как изменение статуса ворот, изменение состава колоний, переезды, переходы по альянсам, а также изменения новых рейтингов (археологии, науки, строительства). Вычисляем количество секунд с последнего изменения и домножаем это число на индивидуальный множитель веса. По итогам сложения всех компонент мы получаем НРА.
В итоге по графику изменения НРА игрока можно видеть предполагаемые пики активности и периоды бездействия. Как использовать данную информацию - решать вам.
5.5 Бот
Робот DSeyeBot — это разработанная нами программа сканирования смежных с нами ресурсов. Сканирование — это процесс, в ходе которого наш робот находит и считывает разнообразные данные.
Робот не должен обращаться к сайту чаще, чем раз в секунду (в среднем). Это относится к большинству сайтов, но из-за задержек сети, в короткие периоды времени эта частота может оказаться несколько выше. Как правило, робот должен загружать только одну копию каждой из страниц. Если же он загружает страницу несколько раз, это может быть вызвано остановкой и перезапуском робота.
Робот предназначен для распределенной работы на нескольких компьютерах. Это обеспечивает рост эффективности и масштабирования системы по мере увеличения числа сканируемых ресурсов. Поэтому в ваших журналах могут быть записаны обращения от нескольких компьютеров в домене dseye.ru с роботом DSeyeBot, указанным в качестве агента пользователя. Наша цель заключается в том, чтобы просканировать как можно больше страниц на сайте за один раз, не снижая пропускной способности сервера.
Если вас не устраивает создаваемая роботом нагрузка на ваш сервер, свяжитесь с нами, чтобы решить данную проблему максимально быстро и эффективно.
5.6 Аддон
Наш проект предоставляет аддон для нескольких популярных браузеров — в данный момент это chrome, firefox и opera. С помощью этого аддона вы сможете быстро производить поиск игроков на нашем сайте с помощью контекстного меню браузера.
После установки аддона, в контекстном меню браузера (возникает при клике правой кнопкой мыши) добавится пункт "Искать на DSeye.ru".
Обратите внимание — пункт меню появляется только если на странице есть выделенный текст. Поиск ведётся по строке с максимальной длиной в 50 символов. Если вы выделили слишком много текста он просто обрежется при поиске.
5.6.1 Настройки
У аддона есть несколько пользовательских настроек, позволяющих изменять важные моменты его поведения.
Обратите внимание — в браузере firefox добраться до пользовательских настроек можно лишь описанным тут способом.
Окно настроек представляет собой небольшой список доступных для изменения пунктов.
В нашем случае вы можете изменить следующие настройки:
Имя | По умолчанию | Описание |
Ограничиваться доменами игры | Выключено | Если включено — пункт контекстного меню будет появляться только на сайтах игры. Если отключить данный пункт то меню будет доступно везде. |
Сохранять историю запросов | Включено | Если включено — все запросы поиска сохраняются в локальном хранилище браузера и доступны для просмотра. | Отправлять статистику использования | Включено | Разрешение на отправку анонимной статистики по использованию аддона авторам проекта. |
5.7 История создания
Разработка Глазика (именно так называют этот проект друзья) велась достаточно долго, поэтому некоторые факты и люди могли быть забыты. За исправлениями и упоминаниями обращайтесь =)
Всё начиналось с того, что неким игроком был сделан жутко удобный скриптик, создающий на основании csv-рейтингов таблицу колоний выбранного альянса и красящий строки таблиц в соответствии с РА игрока.
Каким-то образом исходники этого скрипта утекли в сеть и попали в наши руки (исходники кстати нашлись в закромах).
Интереса ради скрипт был отрефакторен и выложен как фишечка на наш аловый форум под именем "Всевидящее око" (далее ВО).
На этом бы всё и закончилось, если бы эта, казалось бы, рядовая фишечка, не стала популярной среди актива альянса.
По просьбам была добавлена поддержка нескольких альянсов, приведён в порядок внешний вид, добавлена Терра-Нова (там располагается наша приёмка), перетрясены коэфициенты цветового разделения и начали вынашиваться планы по доработке до поддержки нескольких колец (помимо мельсиона).
Именно в этот момент возникла идея привести данную карту мельсиона (а это именно карта, просто в виде таблицы, с фильтром по альянсу и разукрашенная по РА) к виду отдельного сервиса, работающего в автоматическом режиме и поддерживающего все миры, альянсы и кольца.
Первое упоминание о разработке нового ВО логи форума относят к 14.12.2009. Именно незадолго до этой даты случился прецедент с представителем дружественного альянса, который случайно наткнулся на ВО и возмутился наличием подобной статистики о их але, что подстегнуло интерес разработчиков (ведь если кому-то мешает, значит кому-то должно помогать =) ).
Через месяц или два анализа требований и рисования тех макетов картина нового ВО стала принимать более конкретные очертания, и стало понятно к чему всё идёт.
А шло всё к тому, что для всех задуманных фишек придётся реализовать автоматизированные сбор, хранение и обновление информации по всем игрокам/альянсам/мирам в игре.
И, хоть изначально это и не планировалось, благодаря наличию столь обширных данных, сервис легко будет доработать до поддержки большинства функций хелпера — единственного (на тот момент) живого ресурса подобного рода.
Первоначальные макеты, кстати, были найдены в архивах форума и перенесены сюда, памяти ради.
Но это сейчас ясно видится, что надо было сразу делать второй хелпер, а в тот момент мы этого совершенно не замечали.
Поэтому первая версия Глазика была рассчитана исключительно на карту игроков, а за всеми остальными данными отправляла на сайт хелпера.
На эту версию ушло около двух месяцев, и это была первая версия, показанная игрокам своего альянса.
По результатам недельного теста работало всё стабильно, и разработка функционала продолжилась.
Приступив к разработке графиков миров и альянсов, мы впервые уткнулись в заданные нами же ограничения по собираемым данным — пришлось дорабатывать систему до сбора статистики миров и альянсов. Это потребовало ещё один месяц работы и графики стали доступны для просмотра по секретной ссылке. После этого система была оставлена в работающем состоянии, а разработчик ушёл сдавать сессию, временами заглядывая в логи =)
Прошёл ещё месяц, другой, сессия была успешно сдана, отпуск отгулян на морях, и пришло время приводить в порядок frontend часть системы (то бишь то, что видят пользователи), поскольку до этого вся разработка велась вокруг внутренней части, являющейся основным "двигателем" системы.
Месяц разработки закончился неожиданным и опасным сигналом извне — хелпер перестал открываться.
А поскольку наш Глазик за всеми деталями отправлял людей именно туда, то разработка фактически встала с вопросом "что делать?!".
Некоторое время спустя стала известна причина простоя вышеообозначенного ресурса — пожар в датацентре, где хостился проект. Этот момент можно назвать переломным в развитии Глазика — мы, наконец, поняли, что лучше и надёжнее будет реализовать весь необходимый функционал в рамках своего проекта, нежели опираться на сторонний ресурс.
Данное решение привело к весьма основательному перекраиванию большей части скриптов и к сентябрю уже третья версия двигателя Глазика увидела свет. Пришло время доделывать frontend.
К середине осени появились сведения о новых рейтингах (археология, наука и т.д.) и к внутренностям пришлось ненадолго вернуться.
Благо, эти доработки не заняли много времени, поскольку новая версия системы была готова ко всему =)
Новые рейтинги, кстати, администрация собиралась выкладывать в csv файлах, но воз и ныне там =( Поэтому после полугода кушанья обещаний был написан собственный парсер страниц с данными рейтингами на сайте игры.
Собственно именно из-за ожидания новых рейтингов запуск готовой по сути системы так долго откладывали — как можно показывать списки игроков, где половина граф пусты?
За это время был написан парсер РА игроков с хелпера, реализован механизм загрузки графиков с него же, написан сборщик статистики онлайна (просто ради интересу), переделаны графики и ещё мнооого чего было добавлено/убрано/переделано.
Стоит отметить, что на альфа-тест система была отправлена, по сути, в авральном режиме =))
А дело было так.
Глазик был выложен в общий доступ достаточно давно, но без афиширования адреса найти его было сложно (да и мало кто знал, что стоит искать).
Однако, это оказалось по силу поисковым роботам, которые его "скушали" и добавили в выдачу поисковых запросов.
Так его и нашёл игрок дружественного альянса и, поскольку титры были указаны, информация о находке быстро дошла до нас.
Благо на тот момент разработчик находился в отпуске и смог уделить достаточное количество времени, чтобы довести дизайн до удобоваримого состояния и кое-как доделать критичный функционал.
В результате альфа-теста было поправлена куча багов, переработаны некоторые разделы и добавлен мелкий, но удобный функционал. Кроме того, что самое смешное, у карты игроков — того, с чего всё начиналось — был найден фатальный недостаток и она была изъята из общего пользования и отправлена на переработку. Наконец, 02.05.2011 был опубликован пресс-релиз на официальном форуме игры и открыт публичный бета-тест.
С тех пор ведётся планомерное развитие Глазика, внутренности рефакторятся, дизайн улучшается — в общем, всё как обычно =) Мы рады, что кто-то следит за новостями и пользуется предоставляемыми возможностями нашего любимого проекта.
За сим всё. История хоть и не большая, а память хранит и душу нам греет. =)