Сделал файтинг, в котором запрещено драться. Бой идёт на комплиментах и умилении
Началось с очереди на заправке. Передо мной мужчина минуты три объяснял женщине из соседней машины, что она встала не туда. Женщина объясняла обратное. Я подумал: это же настоящий ментальный файтинг. Но кое-что захотелось все же поправить.
Так появилась «Умиляй и заправляй» — пиксельный файтинг про бой за очередь к колонке. Механика перевёрнутая: урона в игре нет вообще. Вместо полоски здоровья у каждого бойца шкала обаяния, и она заполняется, когда тебя хвалят. Переполнилась — боец растаял и вежливо пропускает соперника вперёд.
Арсенал такой:
— Ласковое слово. Бьёт сильнее всего, но сказать его можно только вплотную, и после него остаётся пауза — как в жизни.
— Букет. Летит через всю площадку. Женщин пробивает, мужчин смущает вполсилы.
— Шоколадка. Наоборот.
— Поклон вместо блока. Гасит чужую любезность и возвращает часть отправителю, тот умиляется сам. Но кланяться долго нельзя: спина устаёт, и блок перестаёт работать.
Шесть водителей, у каждого своя уязвимость. Дядя Толя, таксист со стажем 31 год, тает от шоколада, а цветы его смущают; супер-приём — анекдот про тёщу. Есть курьер, которому надо успеть доставить заказы. Есть ИИ-пилот, который в момент попадания честно сообщает: «Я смущён».
Локации меняются: "желтая", "красная", "зеленая" заправки и моя любимая - "синяя" АЗС "Газпром нефти"
А вот как выглядит процесс:
Мои любимые атаки на дистанции - это летящий букет или шоколадка
Теперь скучная часть, которая на самом деле оказалась самой интересной. Я не разработчик — работаю журналистом в Петербурге. Игру собрал с нейросетью за выходные, и это один HTML-файл на 85 килобайт: движок, отрисовка, свой растровый шрифт 5×7 с полной кириллицей (обычные шрифты в таком масштабе превращаются в кашу), чиптюн-музыка на WebAudio. Ни одной внешней зависимости, ни сборки, ни загрузки картинок — всё рисуется кодом.
А потом я четыре часа воевал не с игрой, а с настройкой игры на сервере и ее подключением к MiniApp в Telegram (ведь там людям удобнее всего ее находить и играть). Сначала бот в "телеге" упорно молчал на любую команду и не хотел запускать игру. Выяснилось: с моего хостинга Python до серверов Telegram не доходит вообще, а curl доходит. Замерил по-честному, по пятнадцать запросов на каждый протокол: IPv4 — ноль успешных, IPv6 — четырнадцать из пятнадцати. Мало того, часть IPv6-адресов Telegram с этой площадки тоже мёртвая, и игрок каждый раз тянул жребий: попал на живой адрес — ответ за полсекунды, попал на мёртвый — тридцать пять секунд тишины и потерянное сообщение.
Спасло подглядывание в логи чужого бота, который на том же сервере работал без сбоев. В первой строке у него стояло: «точка входа: 2001:67c:4e8:f004::9». Он не доверяет имени, а один раз выбирает рабочий адрес и дальше ходит только на него. Сделал так же — всё встало.
Играть: https://t.me/petrolpanicbot/game
Бесплатно, без рекламы и без внутренних покупок. Очков и рейтингов там нет — я их специально выбросил, чтобы забег из трёх боёв укладывался в минуту и не превращался в работу. Если найдёте баги — пишите, поправлю. И любопытно, что выберете вы: комплимент или шоколадку.




