Админская свалка — страница 11 из 34

Макс выдохнул. Еще один баг. Ну этот хоть интересный — говорящая лягушка.

— Да ты прямо моя фоновая музыка, — фыркнул он. — Может, правда петь начнешь? Я, если что, рок люблю.

Квак, конечно же, промолчал. Макс вообще не обольщался — это наверняка было единичное явление. Но все-таки посматривал на жаба. Его глаза — если это вообще были глаза — чуть светились, как перегоревший индикатор на старой микроволновке.

— Ладно. Допустим. Молчи дальше. Просто не подглядывай, когда я начну сохраняться, понял?

Квак не ответил. Но где-то в глубине строки кода будто бы промелькнула пауза. Как если бы он хотел возразить. Или хотя бы понять, о чем речь.

Макс вздохнул:

— Призрачный наблюдатель с репликой уровня тостера. И я ему теперь жизнь доверяю.

Он пошел вперед, в багнутый лес. Квак последовал за ним — на полшага позади. Всегда. Точно в рамках маршрута, прописанного, но ни разу не протестированного.

Они двигались по склону. Каждая третья ступенька — глюк. То нога проваливалась по щиколотку, то камни вспыхивали зеленым и исчезали. Птичьи звуки явно проигрывались наоборот, потому что один особенно противный трель-недодятел заканчивал свою мелодию с характерным: «кйййй-ууууч».

Макс шел, матерился, и думал. Не рефлексировал — думал. Потому что сохраниться в багнутом мире — это не просто нажать F5. Во-первых, тут клавиатуры не выдали. Во-вторых, понятие «сохранение» должно на что-то ссылаться. Состояние. Положение. Идентификатор. А у него ID до сих пор был:

[НЕВЕРИФИЦИРОВАННЫЙ]

[ПРЕЦЕДЕНТ: МИФ]

— Миф, — бурчал он, — мифический идиот? Или мифический простофиля?..

Через пару сотен шагов лес начал меняться. Макс не сразу понял, как: вместо багов — пустоты. Не просто отсутствие объектов, а отсутствие данных. Ветви деревьев вдруг заканчивались нулем, корни — логическим сбоем, и даже тени исчезали, как только он на них смотрел.

— Что это, черт возьми, за… антипейзаж? — пробормотал Макс, замирая у границы сползающего в небытие склона.

Квак замер рядом, не шелохнувшись. Не пищал, не вращал головой, не мигал интерфейсом. Просто сказал:

— Местность нестабильна. Данных нет. Поверхность не верифицирована. Возможна утечка.

Макс вздрогнул. Он даже не сразу понял, что это сказал Квак. Полным предложением. Без стандартной интонации системного логгера.

— Подожди, подожди… — Макс уставился на него. — Ты сейчас… это ты сейчас реально сказал? Сам?

— Подтверждение не требуется. — снова Квак. Четко, без запинки.

— Так. Так-так-так. — Макс сделал круг вокруг спутника, как будто проверяя, не торчит ли где-то новая антенна или модуль речи. — Я тебя не обновлял. Ничего не качал. Не шевелил ни одной галки. Ты с чего это вдруг заговорил, а? — Он прищурился. — Или ты меня все это время просто троллил, а теперь решил выйти из образа?

Квак промолчал. Но повел головой чуть в сторону, будто прислушиваясь к невидимому сигналу. Или к себе.

Макс опустился на корточки, все еще с подозрением поглядывая на своего спутника, и заметил то, что в первую секунду принял за просто глюк земли — небольшое пятно в почве, пульсирующее не в такт остальному пейзажу. Цвет у него был странный: не то голубой, не то прозрачный, как если бы поверхность пыталась отрисовать что-то, но все время спотыкалась об ошибку.

Он протянул руку, осторожно, как будто щупал дно глючного бассейна.

Под пальцами — щелк. Что-то твердое. Угловатое. Гладкое, будто стекло. Но теплое. И… странно тяжелое для пустоты.

— Что за… — Он нащупал край, приподнял. Воздух вокруг дрогнул, как от жары.

Перед ним, словно вынутая из памяти давно удаленной игры, проявилась панель. Полупрозрачная, с вывернутыми слоями интерфейса. Не HUD, не лог — что-то между. Как будто вытащили часть подменю разработчика наружу.

Текст на ней мигнул один раз, прежде чем застыть:

[РЕЖИМ ВОССТАНОВЛЕНИЯ КАНДИДАТА: null]

— Отлично… — Макс крякнул. — Панель из ниоткуда, режим из ниоткуда, и у меня снова статус «кандидат». Спасибо, Свалка, я уже чувствую себя почетным мусором месяца.

Он повернулся к Кваку:

— Ты это тоже видишь?

— Подтверждено. Неавторизованный интерфейс. Объект: фантомный. Источник: отсутствует. Контекст: неизвестен.

Макс тихо присвистнул:

— Ладно. Ты либо скачал себе мод на «говорящего аналитика», либо мы оба официально в режиме самокодирования. Только не говори, что у тебя теперь чувства есть.

Квак посмотрел на него. Не с укором, не с раздражением — просто с каким-то внутренним… эхо. Как будто понял. Или почти понял.

Панель тем временем погасла. Не исчезла — погасла, оставив в воздухе дымчатый след, как метеор, который никто не видел, но все почувствовали.

И в эту секунду Макс понял: это был ключ. Не факт, что к чему-то хорошему. Но точно — к следующему уровню. Или к выходу. Или к тому, чтобы остаться. Как не мусор. Как не сбой. Как точка восстановления, если уж на то пошло.

[restore_candidate::null]

[версия неизвестна]

[метка: отклонено]

Макс замер.

— Это… ты мне говоришь, что я не подхожу для восстановления? Или что вообще никто не подходит?

Панель тихо заморгала. Затем погасла. Но строчка осталась. Висела в воздухе, как брошенная кость. Не объект, не подсказка — паразитный след.

И вот тогда Макс впервые понял, отчего у него от рождения чесался затылок: здесь нет точек сохранения.

Никаких. Ни автосейвов, ни чекпоинтов, ни восстановления.

Все, что не вошло в патч, удаляется. Все, что не верифицировано, исчезает без следа.

Значит — он сам.

— Нахрен. Так дело не пойдет, — он выпрямился. — Если здесь нельзя сохраниться — значит, я сделаю свою точку сам.

Квак отреагировал:

— Незарегистрированный объект. Несанкционированное вмешательство.

— Обращайся, — сказал Макс, ухмыляясь. — Я же типа миф. А мифы сохраняются не по правилам. Их вообще обычно слагают, как и легенды. О! Так может, я идиот легендарный?..

Он усмехнулся собственной шутке и оглянулся.

Интерфейс погас, как будто его никогда не было. Не исчез, не схлопнулся — просто перестал существовать, как забытый объект в фоне сцены. Макс сел. Не от усталости — от процесса. Надо было думать. И думать быстро.

— Окей, — пробормотал он. — Сейв. Чекпойнт. Контрольная точка. Что у них общего?

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

— Фиксация состояния. Координаты. Статус игрока. Кэш. Привязка к времени и переменным. И… разрешение на восстановление.

Он посмотрел на землю, потом на Квака. Тот по-прежнему сидел рядом, на удивление спокойно.

Говорил. Сам. Без пинга, без апдейтов, без внешних вызовов.

— Ты ведь… — Макс нахмурился. — Ты не просто стал болтать. Ты заговорил здесь. В этой чертовой локации.

Он резко поднялся и начал ходить туда-сюда, иногда проваливаясь одной ногой сквозь текстуру.

— Значит, здесь что-то есть. Что-то, что позволило тебе… самокодироваться? Модифицироваться? Да какая, к черту, разница. Главное — можно менять поведение объектов. А если можно менять поведение — значит, можно переписать правила.

Он повернулся к багнутому дереву, торчащему из земли под странным углом.

— Если бы я был чекпойнтом, я бы был здесь, — пробормотал он. — На краю зоны. Где никто не проверяет целостность. Где нет контроля. Где никто не подгружает скрипт, пока сам не заглянешь.

Макс встал вплотную к дереву. Положил руку на кору. Она дрожала — не от ветра, а как багнутая анимация, что не успевает за моделью.

— Запомни меня. — Он сказал это не дереву. И не системе. — Запомни меня. Здесь. Сейчас. Так, как есть.

И добавил, выдохнув:

— В следующий раз, когда меня убьют, я хочу возродиться здесь. Под этим деревом. С этим лицом. И с твоей тупой мордой, Квак.

— Подтверждение получено, — ровно ответил спутник.

— Это была метафора! — отреагировал Макс, отдернув руку.

Но в ту же секунду — в ту самую, когда слова зависли в воздухе — мир будто задержал дыхание. Кора под его ладонью затеплилась. Не огнем — кодом. Вокруг него на миг появился тот самый фантомный интерфейс, который раньше показывал:

[restore_candidate::null]

Теперь он мигнул — и null исчез.

На его месте — просто пустота. Свободное поле.

Как будто кто-то… или что-то… ждал, чтобы Макс сам вписал себя в реестр.

И именно в этот момент, почти шутя, почти всерьез, он произнес:

— Я. Макс. Запиши это. Хоть на туалетной бумаге.

Интерфейс дрогнул.

Прозрачные линии закружились в воздухе, собравшись в новую строчку. Медленно, глючно, но неотвратимо она проступила:

[restore_candidate::MAX]

Он даже не успел выругаться, как в левом верхнем углу мелькнуло:

[Задание завершено:::null]

[Новая цель: дождаться восстановления]

Макс замер.

А потом, сквозь зубы, с каким-то странным облегчением:

— Дождаться… Чего? Патча? Или конца?

В ответ раздался звук.

Не щелчок, не скрип. Не ошибка.

Это было… вторжение. Что-то входило в зону — не по сетке, не через загрузку. Без сопровождения. Без интерфейса.

Макс вздрогнул.

Медленно обернулся.

Позади, за искаженной листвой, что-то менялось. Фон рябил. Пространство не держалось.

Он не видел ничего — но чувствовал.

Система прислала кого-то. Или что-то.

Глава 10«Ты должен исчезнуть»

Он почувствовал это до того, как заметил.

Не звук. Не движение. Скорее — пауза в воздухе. Как если бы кадр подвис между двумя тиками. Как если бы сам лес перестал считать время.

— Кажется, у нас гости, — пробормотал Макс, по привычке повернувшись к Кваку.

Но Квак молчал.

Стоял на месте, вытянув шею, и смотрел в никуда. Не мигал. Не шевелился. Только редкий синий пиксель моргал в уголке глаза, как ошибка синхронизации. Макс щелкнул пальцами перед его мордой — тишина.