Как устроена механика кликеров с технической точки зрения?

Как технически реализована механика кликеров, таких как HamsterKombat и NotCoin? Я заинтересован в следующем аспекте: когда пользователь нажимает на интерфейс, и это увеличивает его счет заработанных коинов (1 клик = 1 coin). 

1. Как в приложении предусмотрена защита от злоупотреблений? Например, если 1 клик соответствует 1 HTTP-запросу, то использование автоматизированных инструментов вроде Postman для "заработка" коинов может быть довольно простым.

2. Поскольку эти действия имеют высокую частоту, не кажется ли вам, что отправка отдельного HTTP-запроса на каждый клик является неэффективной? Какие механизмы троттлинга или батчинга запросов применяются в данной ситуации?

3. Используется ли блокчейн в данной механике, и если да, то каким образом?
  • 9 октября 2024 г. 15:33
Ответы на вопрос 3
Механика кликеров, таких как HamsterKombat и NotCoin, в значительной мере зависит от простоты и легкости взаимодействия с пользовательским интерфейсом, а также от экономического баланса внутри игры. Рассмотрим каждый из ваших вопросов:

### 1. Защита от злоупотреблений

Чтобы предотвратить злоупотребления и автоматизированные атаки, разработчики могут применять ряд методов:

- **CAPTCHA**: Внедрение CAPTCHA (например, reCAPTCHA), чтобы убедиться, что пользователь – человек, а не бот.
- **Темповые ограничения (Rate Limiting)**: Возможно ограничение количества запросов от одного IP-адреса в заданный временной интервал. Например, можно разрешить не более 10 кликов в секунду.
- **Анализ поведения**: Системы могут отслеживать аномалии в поведении пользователей, такие как слишком быстрое нажатие на кнопки или нереалистичное количество заработанных коинов.
- **Серверная валидация**: После получения HTTP-запроса сервер может проверять, действительно ли клик был выполнен пользователем (например, через сессии пользователей) и соответствовал ли запрос состоянию игры.

### 2. Эффективность отправки запросов

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

- **Батчинг (Batching)**: Пользовательский интерфейс может аккумулировать несколько кликов и отправлять их на сервер в одном HTTP-запросе. Например, можно реализовать отправку данных каждые 2 секунды, отправляя все клики за это время.
- **Уменьшение частоты запросов**: С применением таймеров можно сделать паузы между запросами, вместо мгновенной отправки каждого клика.
- **WebSocket**: Использование WebSocket для постоянного соединения с сервером, где события рисунка отправляются без необходимости в каждом запросе.

### 3. Использование блокчейна

Блокчейн используется в некоторых играх для обеспечения прозрачности и неизменности записей. Тем не менее, в большинстве кликеров блокчейн не является обязательным элементом:

- **Токены и NFT**: Некоторые кликеры могут использовать токены, которые представляют уникальные достижения или ресурсы, хранящиеся на блокчейне.
- **Система вознаграждений**: Возможность обмена коинов на криптовалюту или другие активы может также быть реализована через блокчейн.
- **Прозрачность и безопасность**: Блокчейн может помочь обеспечить уровень прозрачности, когда пользователи могут проверить свои действия и статус в игре на децентрализованной платформе.

С технической точки зрения, применение блокчейна в кликерах может усложнить систему, но для некоторых игр это может добавлять ценность и уникальность.
1. Как в приложении реализована защита от абьюза? Например, если 1 клик = 1 http запросу, то не сложно заиспользовать разного рода автоматизированные инструменты по тиму Postman, чтобы "заработать" coin-ы

1. Ограничиваем максимум кликов в секунду, отправляем несколько кликов одним запросом. Опять же продумываем механику так, чтобы в долгосроке всякие пассивки/мини игры приносили основной доход, а не клики. Опять же ограничиваем количество кликов в день/час, например.
2. Вместе с запросом отправляем ещё какой-нибудь уникальный код, который выдаёт система, которая работает только на фронте (invisible captcha какая-нибудь)
3. Блокчейн для этого сценария противопоказан.
Как в приложении реализована защита от абьюза?

Ограничена количеством возможных кликов. Если вы тапали хомяка, вы видели что там можно натапать определенное количество, затем ждать.
И если честно, то кликер там ну не сильно помогает.
Для начала протапать все доступные на текущий момент тапы, пальцами практически также быстро, как и кликером.
Во-вторых, буквально за неделю игры, пассивный доход превышает доход от тапания, а еще через неделю вообще тапать становится бессмысленно. Так и защищает, что тапание на самом деле ничего не дает.

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