Для чего нужна статистика
Статистика помогает игроку видеть прогресс, а владельцу — анализировать аудиторию и баланс.
Однако бессистемный сбор каждого события быстро увеличивает базу и создаёт нагрузку.
Определите цель
Возможные цели:
- рейтинг;
- личный профиль;
- достижения;
- баланс команд;
- аналитика онлайна;
- выявление популярных карт;
- проверка возвратов;
- история наказаний.
Не собирайте данные только потому, что плагин умеет это делать.
Основные показатели
Для классического режима могут использоваться:
- убийства;
- смерти;
- соотношение;
- точность;
- победы;
- время игры;
- число сессий;
- последняя активность.
Для Jail, Zombie или BHOP нужен другой набор.
SteamID
Используйте устойчивый идентификатор, а не ник. Ник может измениться и не является уникальным.
Отображаемое имя можно хранить отдельно как последнее известное значение.
Боты
Боты не должны искажать рейтинг. По возможности исключайте:
- убийства ботов;
- время игры ботов;
- искусственные сессии;
- тестовые аккаунты;
- технические подключения.
Иначе первые места займут игроки, которые фармили искусственных соперников.
Производительность базы
Не отправляйте тяжёлую запись на каждое событие без буфера.
Используйте:
- очередь;
- пакетную запись;
- индексы;
- ограниченный пул соединений;
- архивирование старых событий;
- агрегированные таблицы.
Срок хранения
Сырые события можно хранить меньше, чем итоговую статистику.
Например, подробные события удаляются через определённый срок, а общий рейтинг сохраняется.
Сброс сезона
Если используется сезонный рейтинг, заранее опишите:
- дату;
- что обнуляется;
- что сохраняется;
- награды;
- архив;
- влияние блокировок.
Не сбрасывайте статистику внезапно.
Резервная копия
Перед обновлением статистического плагина создавайте дамп базы.
Проверяйте возможность восстановления и совместимость старой базы с новой версией.
Конфиденциальность
Не публикуйте IP-адреса, почту и внутренние идентификаторы без необходимости.
Публичный профиль должен содержать только данные, относящиеся к игре и понятные пользователю.
Аналитика владельца
Полезные показатели проекта:
- новые игроки;
- возвраты;
- средняя сессия;
- часы активности;
- карты ухода;
- заполнение;
- частота ошибок подключения.
Сопоставляйте внутренние данные с доступностью сервера на cs2-monitor.com.
Итог
Статистика должна соответствовать режиму и приносить пользу игроку или владельцу.
Исключайте ботов, ограничивайте сырые данные, защищайте базу и регулярно создавайте резервные копии.