Игровые системы

Лидерборд в игре: рейтинг, раунды и награды

Как работает готовый лидерборд iDos Games - таблицы с раундами, награды за место и за набранные очки, защита от накрутки очков - и как настроить его в кабинете.

Обновлено: English

Лидерборд - готовая система рейтинга: таблицы с раундами, награды за место и за набранные очки. Очки, места и награды считает сервер. Вы настраиваете таблицы в кабинете, а игра отправляет результат и показывает рейтинг.

Что видит игрок

  • Таблицы вкладками: у каждой карточка со своим счётом, местом и таймером до конца раунда.
  • Топ игроков с подсветкой себя и медалями у первой тройки.
  • Награды за место и награды за очки во всплывающих окнах; награду за очки забирают там же.
  • Окно с наградой прошлого раунда: появляется само, когда раунд закончился, с кнопкой «Забрать».
  • Кнопку «Играть» на карточке, если в игре есть режим, где набирают очки.
  • Значок на вкладке, когда игрока ждёт награда.
Лидерборды
12 450
320
Неделя!
Сезон
Мой счёт12 840
Место#7
До конца 2д 04:13
Награды
Играть
ShadowFox25 120
2Mira22 980
3KnightOwl19 400
4Pixel_Pete15 210
5Luna14 030
6Arrow13 115
7Вы12 840
8Grizzly11 900
Каждая включённая таблица - вкладка; значок - ждёт награда.
Карточка игрока: счёт, место и таймер до конца раунда.
Отсюда открываются награды за место и за очки; «Играть» ведёт в режим игры.
Медали у первой тройки, игрок подсвечен в списке.
Пример. Экран лидерборда: карточка игрока с таймером раунда и топ игроков.

Как устроена таблица

  • Раунды. Таблица повторяется циклом (например, каждую неделю), идёт по расписанию или цепочкой раундов.
  • Как считается счёт. Сумма всех результатов, лучший результат, лучшее время или последнее значение.
  • Награды за место - по диапазонам мест в конце раунда: 1-е место, 2-3-е, 4-10-е и так далее.
  • Награды за очки - вехи внутри раунда: «набери 1000 очков за неделю».

Откуда берутся очки

Очки приходят из источников, заданных у таблицы:

  • Результат из игры (ClientScore). Игра отправляет число, например счёт забега. ⚠ У источника задайте ограничения: максимум за одну отправку, за сутки, паузу между отправками. Без этого источника таблица не примет число из игры вовсе.
  • События, которые сервер считает сам, например покупки или выполненные квесты. Подделать их из игры нельзя.

Шаг 01Добавьте лидерборд в проект

Напишите ИИ-кодеру: «Добавь недельный лидерборд по лучшему счёту». Он поставит готовую систему и научит игру отправлять результат. Вкладка появится у игроков, когда в кабинете будет включена хотя бы одна таблица.

Шаг 02Настройте таблицу

Откройте кабинет, выберите проект и перейдите в LiveOps → v2 → Таблица Лидеров.

  1. Нажмите Добавить таблицу и задайте её ID, например weekly_score.
  2. Выберите расписание раундов и способ подсчёта счёта.
  3. Добавьте источник очков. Если очки отправляет игра - ClientScore с ограничениями.
  4. Задайте награды за места и, при желании, награды за очки.
  5. Нажмите Сохранить.

Кнопка ИИ на странице открывает помощника: опишите таблицу словами, он предложит правки, а вы проверите их и сохраните.

Шаг 03Проверьте и выпустите

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

Для разработчиков

Лидерборд работает через client.leaderboard из @idosgames/core.

TypeScript
// Отправить результат: сервер сам применит способ подсчёта и ограничения
const sub = await client.leaderboard.submitScore('weekly_score', 150)
if (!sub.ok) return showError(sub.error)
sub.data.NewScore // счёт после подсчёта

// Экран с несколькими таблицами: топ и прогресс игрока одним запросом
const overview = await client.leaderboard.getOverviewBatch(['weekly_score', 'season_pvp'])

// Забрать всё, что ждёт: награды за место и за очки
await client.leaderboard.claimAllRewardsBatch(['weekly_score', 'season_pvp'])
  • Счёт меньше или равный нулю SDK отклоняет сам, без запроса.
  • Новый счёт берите из NewScore ответа: при «лучшем результате» худший результат счёт не меняет.
  • Рейтинг друзей - getFriendsLeaderboard(leaderboardID).

Подробное описание полей - в навыке leaderboard-system, его отдаёт MCP-сервер SDK.

Частые вопросы

Можно ли накрутить очки, отправив большое число из игры?

Нет, если таблица настроена правильно. Число от игры таблица принимает только с источником ClientScore, а у него есть ограничения - максимум за одну отправку, за сутки и пауза между отправками.

Сколько таблиц может быть в игре?

Несколько. Каждая включённая таблица - отдельная вкладка экрана лидерборда со своим раундом и наградами.

Есть ли рейтинг среди друзей?

Да. SDK отдаёт ту же таблицу, отфильтрованную по друзьям игрока.

Смотрите также

Сделайте свою игру

Опишите идею одним предложением - ИИ-кодер соберёт её, и она откроется по своей ссылке.