Для чего нужна статистика

Статистика помогает игроку видеть прогресс, а владельцу — анализировать аудиторию и баланс.

Однако бессистемный сбор каждого события быстро увеличивает базу и создаёт нагрузку.

Определите цель

Возможные цели:

  • рейтинг;
  • личный профиль;
  • достижения;
  • баланс команд;
  • аналитика онлайна;
  • выявление популярных карт;
  • проверка возвратов;
  • история наказаний.

Не собирайте данные только потому, что плагин умеет это делать.

Основные показатели

Для классического режима могут использоваться:

  • убийства;
  • смерти;
  • соотношение;
  • точность;
  • победы;
  • время игры;
  • число сессий;
  • последняя активность.

Для Jail, Zombie или BHOP нужен другой набор.

SteamID

Используйте устойчивый идентификатор, а не ник. Ник может измениться и не является уникальным.

Отображаемое имя можно хранить отдельно как последнее известное значение.

Боты

Боты не должны искажать рейтинг. По возможности исключайте:

  • убийства ботов;
  • время игры ботов;
  • искусственные сессии;
  • тестовые аккаунты;
  • технические подключения.

Иначе первые места займут игроки, которые фармили искусственных соперников.

Производительность базы

Не отправляйте тяжёлую запись на каждое событие без буфера.

Используйте:

  • очередь;
  • пакетную запись;
  • индексы;
  • ограниченный пул соединений;
  • архивирование старых событий;
  • агрегированные таблицы.

Срок хранения

Сырые события можно хранить меньше, чем итоговую статистику.

Например, подробные события удаляются через определённый срок, а общий рейтинг сохраняется.

Сброс сезона

Если используется сезонный рейтинг, заранее опишите:

  • дату;
  • что обнуляется;
  • что сохраняется;
  • награды;
  • архив;
  • влияние блокировок.

Не сбрасывайте статистику внезапно.

Резервная копия

Перед обновлением статистического плагина создавайте дамп базы.

Проверяйте возможность восстановления и совместимость старой базы с новой версией.

Конфиденциальность

Не публикуйте IP-адреса, почту и внутренние идентификаторы без необходимости.

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

Аналитика владельца

Полезные показатели проекта:

  • новые игроки;
  • возвраты;
  • средняя сессия;
  • часы активности;
  • карты ухода;
  • заполнение;
  • частота ошибок подключения.

Сопоставляйте внутренние данные с доступностью сервера на cs2-monitor.com.

Итог

Статистика должна соответствовать режиму и приносить пользу игроку или владельцу.

Исключайте ботов, ограничивайте сырые данные, защищайте базу и регулярно создавайте резервные копии.