Разработчик проекта Brawl Town, браузерной уличной драки в духе Final Fight, создал сезонный ивент к Хэллоуину, чтобы вернуть в игру игроков после спада активности. Событие доступно с 24 октября по 3 ноября и включает в себя темную атмосферу, тыквы с конфетами, маски и нового босса — Тыквенного короля. Важной особенностью ивента стала автоматическая смена сезонов без необходимости перезапуска серверов или нажатия кнопок игроками, что обеспечивается календарем в API. Игра поддерживает одновременное присутствие клиентов разных версий, выдавая ботам и людям одинаковые хэллоуинские предметы, чтобы никто не мог получить преимущество. Также ивент доступен на приватных серверах игроков без дополнительных изменений в коде.
Для обеспечения совместимости с устаревшими клиентами разработчик внедрил протокол v6, который добавляет новые типы предметов и эффекты, не ломая старые версии. В частности, старые клиенты видят огненные тыквы как обычные бомбы, а причину смерти от короля как взрыв. Маски теперь хранятся в отдельном байте снапшота бойца, что позволяет передавать их без изменения общей структуры данных. Тестирование с участием 16 клиентов разных версий подтвердило, что старые клиенты не получают хэллоуинские байты, сохраняя стабильность игры для всех пользователей.
В ивенте тыквы, лежащие вдоль бордюров, при ударе лопаются с вероятностью выпадения конфет или тыквенной головы, а каждая пятая тыква вызывает облако летучих мышей. Конфеты можно подобрать и носить до конца игры, а маски получают треть бойцов при появлении. Разработчик провел нагрузочные тесты с ботами, выявив проблемы с разрушением тыкв и размножением голов, которые были исправлены через изменение логики поведения ботов и ограничение количества голов на улице. Эти правки позволили сбалансировать количество предметов и продлить жизнь тыкв в игре.
Тыквенный король появляется из люка и ходит по улице 20 секунд, бросая огненные тыквы и в конце атакуя игрока с наибольшим количеством конфет. Если у такого игрока на голове тыква, король кланяется и осыпает улицу конфетами, иначе он поднимает игрока и вытряхивает из него конфеты. Анимация короля была переработана с использованием нейросети и скриптов для создания спрайтов, что позволило реализовать плавную ходьбу без скольжения ног и телеграфирование атак. Также были исправлены мелкие ошибки в позиционировании фонарей и летучих мышей, а карта сумерек настроена так, чтобы стрелка над бойцом оставалась видимой.
Нагрузочные тесты показали, что сервер выдерживает до 2000 игроков на одной улице, потребляя около 320 МБ памяти и генерируя трафик около 96 МБ/с. Оптимизация кода сократила время обработки тика с 21,6 до 15,5 мкс за счет компактной структуры данных и упорядочивания записей. При этом производительность на клиенте осталась стабильной: с 1151 бойцом в кадре FPS составляет 91, а время на бойца — 8,9 мкс. Для слабых устройств реализовано адаптивное качество рендера, которое снижает детализацию при падении FPS ниже 40, обеспечивая плавную работу даже на телефонах.