Дмитрий Уотич – Ошибка архитектора (страница 5)
— Бежим к реке! — крикнул я, хватая Анну за плечо. — Вода... у неё слишком сложная физика для быстрой визуализации. Там алгоритм должен тормозить!
Мы неслись по размывающемуся городу, чувствуя, как сам воздух становится вязким, словно мы пробирались сквозь недогруженную текстуру. Сзади нас город превращался в серые кубы, а золотистая сетка в небе начала сжиматься, концентрируясь прямо над нашими головами.
В кармане снова завибрировал телефон. Я на ходу выхватил его и взглянул на экран. Одно слово, написанное шрифтом, который я использовал в своих первых курсовых работах:
«DEBUG_MODE: Ищи зеркало, которое не отражает».
Глава 12: Оптическая ловушка
Набережная встретила нас мёртвым штилем. Река больше не текла — она представляла собой застывшее полотно из идеальных лазурных пикселей. Физика воды действительно оказалась слишком ресурсоёмкой для «Обновления 2.0»: волны замерли в полупозициях, превратившись в острые стеклянные гребни.
Я остановился у парапета, жадно хватая ртом воздух, который на вкус напоминал стерильный пластик. Анна стояла рядом, испуганно рассматривая свои ладони. Её пальцы вернули форму, но кожа казалась слишком гладкой, без единой поры или волоска.
— «Зеркало, которое не отражает», — повторил я слова из сообщения, оглядываясь. — В мире, где всё стало идеальным рендером, найти изъян сложнее, чем иголку в стоге сена.
Город за нашими спинами окончательно превратился в макет. Здания стали плоскими декорациями, а небо — ровным градиентом от ярко-синего к белому. Золотистая сетка над головой пульсировала всё быстрее, и я чувствовал, как меня начинает подташнивать от этой безупречности.
— Марк, смотри туда, — Анна указала на старый общественный туалет — небольшое гранитное строение, которое чудом сохранилось у моста.
На его стене висело старое рекламное табло в массивной металлической раме. Раньше там была карта района, защищённая толстым стеклом. Сейчас стекло было на месте, но оно вело себя странно. Солнечный свет падал прямо на него, но поверхность оставалась абсолютно чёрной. Она не ловила блики, не показывала наши лица, не отражала лазурную гладь застывшей реки. Она была провалом в пространстве.
— Это оно, — я подошёл к табло.
Я протянул руку, ожидая коснуться холодного стекла, но мои пальцы ушли в пустоту. Кожу мгновенно обдало настоящим, живым холодом — не тем программным «морозом», что был в высотке, а обычным сквозняком из грязного подвала.
— Это не зеркало, — прошептал я. — Это дыра в коде. Ошибка визуализации, которую алгоритм просто закрасил чёрным, чтобы не тратить ресурсы.
В этот момент за нашими спинами раздался странный звук. Как будто сотни принтеров одновременно начали печатать на максимальной скорости.
Я обернулся. Из размытого, низкополигонального города к нам приближались фигуры. Их было около десятка — «патрульные» в одинаковых серых комбинезонах. У них не было лиц, только гладкие белые пластины, на которых бежали строки программного кода.
— Вход в систему зафиксирован, — произнесли они в унисон. Голос вибрировал в самом воздухе. — Обнаружена критическая утечка данных. Требуется архивация объектов.
Они не бежали, они перемещались рывками, мгновенно сокращая дистанцию, словно кадры видео, из которого вырезали середину.
— Анна, прыгай! — крикнул я, хватая её за руку.
— А если там ничего нет? — её голос сорвался на крик.
— Там есть хаос, — отрезал я. — А хаос — это единственное, что они не могут контролировать.
Я не стал ждать ответа. Я шагнул в чёрную пустоту табло, увлекая Анну за собой.
На мгновение мир исчез. Не было ни верха, ни низа, ни света, ни звука. Я чувствовал только, как шрам на моей ладони в форме семёрки начинает гореть так сильно, что кажется, будто рука превращается в уголь.
А потом мы упали.
Мы приземлились на гору старого, гнилого мусора. В нос ударил резкий, невыносимо прекрасный запах сырости, плесени и ржавчины. Вокруг царила полутьма, нарушаемая лишь тусклым светом одинокой лампочки, мигающей под потолком.
Я поднял голову и увидел, что мы находимся в техническом коллекторе. Стены были сложены из грубого кирпича, по ним текла настоящая, грязная вода. А на стене висел старый, разбитый монитор, на котором белыми буквами на чёрном фоне медленно печаталось:
«Добро пожаловать в Back-end. Здесь физика всё ещё требует доказательств».
Глава 13: Логика подвала
Анна сидела на куче старых газет, обхватив плечи руками. Её трясло. Здесь, в «закулисье» системы, к ней вернулись все детали: мелкие морщинки в углах глаз, прядь волос, прилипшая к влажному лбу, и настоящий, не отрендеренный страх.
— Это... это подвал университета? — спросила она, оглядывая бесконечные ряды ржавых труб.
— Это фундамент, — я поднялся, отряхивая джинсы от реальной, жирной грязи. — Не архитектурный, а логический. Мы провалились под слой визуализации. То, что мы видели наверху, — лишь красивая картинка, «фронтенд». А здесь всё то, что они не смогли или не захотели причесать.
Я подошёл к монитору, который продолжал мигать под потолком. Экран был старым, с ЭЛТ-трубкой, и от него исходил характерный треск статики.
— Смотри, — я указал на строки кода, бегущие по экрану. — Это не просто мусор. Это логи событий города.
Я начал быстро вводить команды на клавиатуре, которая чудом оказалась под монитором. Пальцы помнили раскладку лучше, чем я сам.
— «742»... — прошептал я, вводя номер квартиры.
Экран на мгновение залило багровым. Затем появилось древо процессов. Тысячи ответвлений, и каждое заканчивалось одним и тем же статусом: «Поглощено». Но одна ветка, помеченная моим именем, горела золотистым цветом. Она не заканчивалась. Она уходила в бесконечный цикл.
— Я не просто жилец, — я почувствовал, как шрам на ладони запульсировал. — Я — переменная, которая вызывает переполнение буфера. Они не могут меня удалить, потому что на мне завязаны другие процессы.
— Значит, ты можешь всё это выключить? — Анна подошла ближе, её тень в свете мигающей лампы казалась огромной и ломаной.
— Выключить — нет. Но я могу внести ошибку в сценарий.
В этот момент трубы над нашими головами загудели. Из стыков начал сочиться не туман, а густая черная жидкость, похожая на отработанное масло. Она капала на пол, и там, где она соприкасалась с бетоном, реальность начинала разъедаться, обнажая пустоту.
— Они нашли нас, — Анна отпрянула. — Патрульные?
— Хуже. Сборщик мусора, — я схватил планшет и быстро соединил его с портом древнего компьютера. — Процесс, который очищает память от ненужных данных. Для него мы — просто битые файлы.
Черная жижа начала быстро заполнять пол, отрезая нам путь к выходу из коллектора. Из темноты туннеля послышался звук, напоминающий работу промышленного шредера. Что-то огромное и бесформенное приближалось к нам, перемалывая саму материю стен.
Я лихорадочно печатал.
«IF object_status == 'corrupted' THEN set_gravity_invert»
— Держись за трубу! — крикнул я Анне.
— Что?!
— Просто хватайся!
Я нажал «Enter».
В ту же секунду мир перевернулся. Гравитация исчезла, а затем сработала в обратную сторону. Мы сорвались с места и «упали» вверх, в сторону потолка. Черная жижа, которая должна была нас поглотить, с оглушительным всплеском обрушилась на своды коллектора, а мы оказались на кирпичном потолке, который теперь стал нашим полом.
— Что ты сделал? — Анна задыхалась, вцепившись в старую арматуру.
— Переписал локальный закон физики, — я взглянул на планшет. Заряд батареи таял на глазах. — Но это временно. Сборщик пересчитает координаты через пару минут. Нам нужно найти «Сердце» системы.
Я указал на массивный кабель, который уходил вглубь туннеля. Он пульсировал ровным, тяжелым ритмом.
— Он ведет в высотку. Обратно к началу. Чтобы остановить алгоритм, нужно вернуться в квартиру 742 и закончить контракт на наших условиях.
Я посмотрел на Анну. Она кивнула, хотя её лицо было бледным как полотно.
«Ошибка компиляции». Начинаем игру без правил.
Глава 14: Инверсия
Бежать по потолку было физически тошнотворно. Вестибулярный аппарат протестовал против каждого шага: мозг видел пол внизу, но тело давило на кирпичный свод, ставший опорой. Черная жижа — «сборщик мусора» — бурлила теперь под нами (или над нами?), напоминая дегтярное озеро, жаждущее коснуться наших голов.
— Не смотри вниз, Анна! — выдохнул я, перепрыгивая через массивную балку. — Смотри на кабель!
Магистральный провод, толщиной с человеческое туловище, пульсировал всё ярче. Он не просто лежал в желобе, он дышал. Каждое сокращение сопровождалось выбросом тепла и низким гулом, от которого вибрировали кости. Мы продвигались вглубь системы, туда, где данные превращались в чистую энергию.
Внезапно туннель расширился, превращаясь в гигантскую залу, заполненную тысячами серверов. Но это не были привычные стойки в дата-центре. Это были колонны из живой кости и металла, по которым струились потоки света. В центре залы, в пустоте, висел огромный куб, медленно вращающийся вокруг своей оси.
— Это центральный процессор? — Анна остановилась, завороженная масштабом.
— Это то, что они построили под высоткой, — я сверился с планшетом. — Весь город, все люди — лишь периферия для этого вычислителя. Он переваривает реальность, чтобы создать её идеальную копию.
В этот момент гравитация снова дрогнула. Инверсия начала сбоить. Локальный патч, который я наложил, трещал по швам под давлением системных приоритетов. Мы рухнули на боковую стену, больно ударившись о металлический выступ.