— Серьезно? Ты завис? Сейчас?
Он подошел ближе, дотронулся до плеча — ну или что там было у лягушек на месте плеч. В ответ — короткий дерганый скрип, как будто проигрался обрезанный звук старта анимации. Но Квак не сдвинулся.
Макс развернулся обратно — и увидел это.
На другом конце поляны, там, где багнутые деревья распадались на геометрию, стояла фигура. Не человек, не зверь, не монстр. Просто форма. Абсолютная. Безошибочная. Ровная, как от векторной кисти. Серый силуэт, вытянутый вверх, почти не различимый на фоне моргающего леса. Ни лица. Ни одежды. Даже тени.
Она не шевелилась. Но Макс видел, как воздух вокруг нее дрожит. Нет, не воздух — код. Пиксели в радиусе пяти метров искривлялись, как будто что-то вшитое в ее присутствие выдавливало реальность наружу.
Макс замер.
— Что за… — начал он, но фраза осталась недосказанной.
Прямо перед глазами, словно в интерфейсную проекцию, вплыл системный лог. Без предупреждений. Без клика.
[Запрос очистки запущен]
[Пользователь::удалить_пользователя]
[Ответ::непрочитан_или_искажен]
— Вот дерьмо, — выдохнул Макс. — Системный аудит. Босс, которого я не выбирал.
Он сделал шаг назад. И еще один. Земля под ногами мягко провалилась на полпикселя — глюк геометрии, как будто мир тоже хотел отступить вместе с ним.
Фигура не двинулась. Но все вокруг нее словно забыло, как должно работать. Трава замерла, свет перестал мерцать. Даже багнутые деревья больше не искажались. Все перешло в режим ожидания. Заморозка сцены.
Макс сглотнул.
— Ну что ж. Давай поиграем в прятки.
Он резко шагнул в сторону, за ближайшую текстурную ель, которая наполовину просвечивала, а наполовину отражала небо из предыдущей локации. Ветка при движении издала короткий глюкнутый звук — скорее вибрацию, чем щелчок. Неестественный. Почти музыкальный.
Он затаился, выдохнул.
Никакой погони. Никакого движения. Только мерцание. Только системный жар, идущий от стоящей фигуры. Как будто она не имела цели двигаться. Она уже выполнила запрос. Теперь — ждала.
Макс посмотрел вверх — интерфейс снова ожил. Иконка соединения мигнула красным, а затем:
[Угроза обнаружена]
[Пользователь не аутентифицирован]
[Задание обновлено: «Ты должен исчезнуть»]
Он закрыл глаза. Глубоко вдохнул. Потом снова выглянул из-за дерева.
Фигура все еще там. Только теперь ее границы стали чуть размыты. Как будто она начала сливаться с пространством. Или наоборот — начала выгрызать его.
— Не враг, — пробормотал он. — Сценарная функция. Обрезает хвосты. Остатки. Как я.
И вдруг вспомнил: в эпизодах с багами, в ранних сценах — всегда были упоминания об автоматических чистильщиках. Невидимых. Немолчаливых. Фоновая служба. Не зло — просто уборка после сбоя.
А теперь — Макс был в списке на удаление.
Нужно было уходить. Срочно. Бежать.
Макс дернул Квака за лапу — ту самую, покрытую фрагментами наложенной текстуры, как будто наспех приклеенной из другой модели. Никакой реакции. Ни сканирования, ни логов. Питомец завис, вывалившись из алгоритма реальности, как фонарь без провода.
Но в ту же секунду — не в Кваке, в самом мире — что-то щелкнуло. Беззвучно, но ощутимо. Как будто дернулся один из уровней отрисовки. Лес качнулся. Полупрозрачные ветки моргнули, будто приняв решение. Трава на секунду побелела, и где-то в недрах движка простонал системный компрессор. Пространство дрогнуло. Глубинно. Не как при лаге — как при отмене команды. Само место, сама текстура, будто сказала: «нет, с этим объектом мы больше не работаем».
Из интерфейса вылетело уведомление — короткое, как вспышка. Он даже не успел прочитать его, как оно тут же свернулось в ноль, и на его месте осталась только пиктограмма, дернувшаяся, как будто удивилась собственному появлению:
[свойство активировано: сбойное уклонение]
Мир дрогнул. Не сотрясся — именно уклонился. Как будто текстуры вокруг него сказали: «Ой, извините», — и отодвинулись. Слои раступились, как шторы на багнутой сцене. Исправитель остался в одном фрейме — а Макс и Квак сдвинулись. Не телепортация. Не перемещение. А как будто они выпали из сцены, остались между кадрами.
Деревья расплылись. Поляна вытянулась, как глитч-эффект. Все края поплыли, и воздух на секунду зашипел, как старая видеокассета, когда проматываешь через лицо ведущего.
Он даже не охнул. Не успел.
И тут же — прямо поверх, без предупреждения, без анимации, без эффектов — просто бух, как наклейка:
[квест завершен: Отражение в баге]
Он застыл. Повернулся — все выглядело… чуть не так. Свет другой. Квак — ближе. Земля под ногами — не та же самая, но почти. Как будто мир его все же сохранил, но… в соседнем экземпляре.
— Что?.. — вскинул брови. — Какой квест? Какое, мать его, отражение? Я его даже не начинал!
Он огляделся. Где стоял Исправитель — теперь только медленно складывался глюкнутый пиксельный столб. Место… откатилось? Или просто забыло, что он здесь был.
Макс выдохнул. Осторожно.
И только потом заметил: интерфейс был слегка смещен. Как будто смотрел не на ту локацию. Как будто мир чуть-чуть промахнулся, сохранив его по ошибке в бета-версии текущей сцены.
Но он был жив. И это считалось.
Артефакт на шее заморгал. Внутри раздалось короткое шипение, как будто он пытался передать слишком большой пакет данных через сломанный модем.
Интерфейс мигнул. Открылся новый файл:
[наблюдение.лог#001]
— Ну-ка, — Макс ткнул на него.
Файл не содержал ни текста, ни аудио. Только фрагменты. Вырванные куски леса, искаженные перспективы, черновые слои. Четыре обрывка:
— глюкнутый фрагмент поляны,
— тень, двигающаяся без объекта,
— глубокая вмятина в земле, словно кто-то стоял там,
— и вспышка. Без цвета, без координат. Просто сигнал.
В самом конце — строка. Не всплывающее окно. Прямо в теле файла, будто надпись, сделанная карандашом на бумаге:
Обновление питомца: Квак — уровень 2 (⁇)
Макс::статус_изменен — [токен_устойчивости::выдан]
— Что? Токен? — Макс прищурился. — Это что, меня теперь можно оставить? Как сохраненного? Не перезапишут? Не сотрет?
И тут — как в старых играх — в правом верхнем углу мягко загорелось:
[новый квест: «Подпись в коде»]
И под ним — без скобок, без форматирования, просто строчка. Как будто не интерфейс, а кто-то лично оставил надпись, от руки:
«Чтобы остаться — нужно быть вписанным.»
Макс медленно поднял брови. Приоткрыл рот. Начал:
— Да еб…
Потом остановился.
И вдруг — улыбнулся.
— Ладно. Играем дальше.
Глава 11«Контрольный выстрел»
Наверху, в тех слоях, куда не доходили даже тончайшие щупальца багов, царила тишина. Не цифровая — структурная. Как если бы сама ткань мира на мгновение перестала пульсировать.
Куратор не чувствовал тревоги. Ему это было недоступно. Но факт аномалии был зафиксирован.
Он вновь открыл лог. Там, где должен был быть след удаленного объекта, осталась дыра. Не пустота — пустоту система распознала бы. Здесь — отсутствие самого понятия «наличия». Как если бы кто-то сначала отрезал кусок кода, а потом стер нож.
Он проверил все: архив откатов, кеши теневых команд, даже корневой стек наблюдения — и везде было одно и то же. Объект, удаленный Исправителем, не исчез. Он… обогнул удаление. Как будто мир сам увернулся.
Куратор не раздумывал. Он просто ввел команду.
Система отреагировала мгновенно.
— Исправитель 2.0 активирован, — прошептал модуль голосом, которого не существовало. — Режим: физическое устранение. Приоритет: максимальный.
Макс шел по лесу.
Он не был уверен, тот ли это лес. Все было слишком… правильным. Без глитчей, без фоновых артефактов. Деревья не мигали. Трава не мерцала. Даже звук шагов казался настоящим.
— Вот это мне не нравится, — пробормотал он. — Слишком ровно. Как будто кто-то подмел сцену перед финальным боссом.
Он был прав.
Слева, за ближайшим склоном, дрогнуло пространство. Не хруст, не вспышка — звук, как если бы кто-то мял жесткий диск руками. И сразу после — тяжелый, глубокий шаг. Не звук. Вес.
Макс остановился.
— Ну давай… покажись.
Из-за поворота медленно вышел он.
Исправитель.
Не тот, прежний — фантомный, бесформенный, как логический сброс.
Этот — физический.
Два метра ростом, весь из темного металла, обвитого сигнальными жилами. Лицо — гладкая, непрозрачная маска, на которой не было ни глаз, ни рта. Только трещина поперек — как след от удаленного имени. Он не шел — он наступал. Каждый шаг разрезал текстуру. Следы за ним не исчезали — они выжигались.
Макс сжал кулаки. Он знал, что у него нет ни шанса. Но привычка — дура упрямая.
— Это ты меня стереть пришел, да? Ну так давай.
Исправитель не ответил. Он не умел. Его задача была ясна.
Он рванулся вперед.
Макс успел увернуться от первого удара. Рука Исправителя прошла в миллиметре от его головы, смяв дерево, как глину. Он откатился назад, попытался активировать хоть что-то из интерфейса — ноль. Никаких скиллов. Все погашено. Как если бы сама сцена была поставлена в режим «запрет взаимодействия».
— Читер хренов, — выдохнул Макс.
Второй удар он не успел отбить.
Смерть наступила не как боль. Как отмена.
Не вспышка. Не крик.
А — отмена.
Как если бы кто-то сказал: «нет», и все, что ты есть, свернулось.
А потом — вдох.
Глубокий, резкий, как если бы легкие снова вспомнили, что умеют быть.
Макс вскочил на локтях, стиснул зубы, ощутил кожу — свою — и понял: он снова здесь.
Он лежал на земле. Не где попало — на мягком, чуть влажном мху, среди кривых багованных корней. Над головой — растрескавшаяся крона огромного дерева, того самого, под которым он стоял, когда впервые решил: «Я хочу сохраниться здесь».