BonBonSlick
@BonBonSlick
WebDev - vanilla edition

Как бы вы делали систему достижений на сайте?

Всем думаю известен сайт evrl.to, ну или Steam) У них очень интересная система ачивок для пользователя, думаю они реализованы программно по разному, хотелось бы узнать как и как вообще такое делают. Потому что то как я себе это представляю, думаю будет сильно нагружать систему.

В моем понимании, это надо будет что то в условия, по которому юзер будет получать ачивку, каждое действие юзера, мы заходим проверяем все ачивки, или конкретную для конкретного действия, и обновляем ее(пример: 10 комментариев из 100) статус для юзера , или ставить пунктик "получено".

Так ли это? Сильно ли это будет грузить сайт? Как ето реализовано в Steam / evrl.to? Как бы вы реализовывали подобный функционал?
  • Вопрос задан
  • 298 просмотров
Решения вопроса 1
  • Q2W
    @Q2W
    При написании комментария можно увеличивать счётчик комментариев юзера. Это не дорого обычно.

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

    При просмотре пользователем своего прогресса по ачивкам вывести ему значение счётчика его комментариев дёшево, а константу с пороговым значением вообще считай бесплатно.
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы