Перейти к содержимому

Political World — борьба со спамом событий

✅ Проверено в Political World 🧪 Design case study

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

В Political World эта проблема появилась из-за эволюции идеологий, саммитов и повторяющихся политических сообщений.

Решение было не в том, чтобы перестать симулировать системы, а в том, чтобы разделить события симуляции и уведомления для игрока.

В ленту могли постоянно лететь:

  • сообщения об эволюции идеологии;
  • вызовы саммитов;
  • открытие саммитов;
  • отмена саммитов;
  • повторяющиеся сообщения о голосованиях.

Проблемой для игрока был шум, а не обязательно сама симуляция.

В проверенной версии Quiet Feed намеренно скрывались несколько частых категорий:

ideology_evolution_*
summit_called
summit_opened
summit_cancelled

Уведомления о голосованиях оставались видимыми, но получили глобальный cooldown.

В этой версии не было отложенной очереди уведомлений.

Если во время cooldown происходило несколько дополнительных событий, лишние сообщения просто отбрасывались, а не копились для последующей выдачи.

Это не даёт породить вторую проблему:

исправить спам уведомлений, создав отложенный спам уведомлений.

Удобная архитектура:

simulation event
event data
notification policy
├─ показать сейчас
├─ скрыть
├─ ограничить частоту
└─ объединить

Симуляция не должна требовать, чтобы каждое внутреннее событие превращалось в UI-сообщение.

Во время тестов сообщения, появившиеся сразу после нажатия паузы, могли быть хвостом UI/feed от событий, созданных ещё до паузы.

По одному позднему уведомлению нельзя делать вывод «симуляция продолжает работать на паузе». Нужно проверить, продолжают ли создаваться новые события спустя время.

Позже вместо полного suppression можно использовать агрегацию:

За этот год произошло 12 изменений идеологий.
Проведено 3 саммита международных блоков.

Так информация сохраняется, но лента не превращается в консоль логов.

Страница описывает внутреннюю систему уведомлений Political World. Конкретные event identifiers относятся только к этому проекту.