
Глава 1. Кликбейт ради бездны
— Опять халтура, — Глыба ткнул пальцем в монитор. — Гляньте на текстуры. Мыло. А анимация? НПС дёргается, будто ему в задницу код запихали.
Чат взорвался смайликами и требованием «го сносить ящики». ДД уже успела куда-то исчезнуть с экрана.
— Глыба, ты зануда, — раздался её голос из динамиков. — Тут ящики ломаются — вжух! И щепки летят! Физика!
— Физика у них — говно, — буркнул он и покосился на второй монитор, где Опора разворачивал свою таблицу с крафтом. — Опять бухгалтерию развёл.
— Это не бухгалтерия, а оптимальный билд на первые десять уровней с учётом штрафов за экипировку, — донеслось из наушников. — Если вы не будете следовать...
— Слышь, Опор, — перебила его ДД. — У тебя там в таблице ячейка E14 мигает красным. Похоже на ошибку.
— Где?!
Звук падающего стула. Глыба хмыкнул.
1Стрим шёл уже два часа. Хайп был так себе — полторы тысячи зрителей, обычный вечер пятницы. Чат развлекал себя сам: спорили, чей билд тупее, кидали друг в друга гифками с котами и требовали «найти пасхалку». Глыба вёл своего орка по Пыльному перекрёстку, изредка комментируя происходящее для тех, кто только подключился.
— Скрыт, ты где?
— В пещере, — тихо ответила она.
— В какой пещере? Тут нет пещер.
— Есть.
Глыба развернул камеру. Действительно: за кучей бочек, которые ДД ещё не успела разнести, темнел провал. Текстура входа слегка мерцала — явно не должны были игроки сюда попасть.
— О, — сказал он в микрофон. — Кажется, нашли секретный контент. Ну-ка...
Орк протиснулся внутрь. Тесный коридор, освещённый багнутыми факелами — их пламя застыло в воздухе отдельными жёлтыми квадратами. Скрыт уже стояла у алтаря в центре зала.
На алтаре лежал предмет.
Он светился. Не просто светился — переливался всеми цветами, которые не должны существовать в этой цветовой гамме. Название всплыло над ним оранжевым шрифтом: «Артефакт Тавтологий».
2— Ребята, — Глыба приблизил орка. — Вы это видите?
— Уровень редкости? — тут же спросила Опора.
— Не отображается. Просто... висит в воздухе.
Чат взбесился. Счётчик зрителей пополз вверх. Глыба навёл курсор — описание артефакта всплыло кривым окном, перекрыв пол-экрана. Буквы плыли, складываясь в бессмыслицу: «Багу быть багом. Патч — это просто патч. Игрок есть игрок, когда он игрок».
— Это что за набор слов? — фыркнул он. — Какой-то прикол разрабов.
— Читай вслух! — заорала ДД. — Чат хочет!
— Да ладно, — он усмехнулся. — Хайпанём.
И прочитал.
Экран дёрнулся.
Звук пропал первым. Не просто выключился — исчез. Как будто его никогда не было. Потом изображение свернулось в точку.
Чёрный экран.
Запах пыли ударил в нос — не тот, что от давно не мытого пола в квартире. Другой. Сухой и горячий. И чем-то воняет. Горелым?..
Что-то давило на грудь.
Глыба открыл глаза.
Над ним нависало бежевое небо с парой выцветших облаков. Что-то твёрдое упиралось в спину. Он повернул голову — камень. Здоровенный булыжник, присыпанный песком.
3— Какого...
Он попытался подняться. Тело не слушалось. Слишком тяжёлое. Руки...
Рука была зелёной. Огромной и зелёной, с обломанными когтями на трёх пальцах. Он смотрел на неё секунд десять, потом выдохнул.
— Не ори, — сказал он себе. — Не ори.
Рядом заворочалось что-то в тёмном плаще.
— Скрыт?
— Да, — тихо. — Это... я.
— Ты видишь?..
— Угу.
Она подняла руку — тонкую, полупрозрачную, с длинными пальцами без единой фаланги суставов. Просто гнущаяся тень с ногтями.
Глыба сел. Броня лязгнула. Настоящая. Тяжёлая. Пахнет кожей и маслом. Он — орк. Здоровенный тупой орк в латах. А Скрыт — чёртова эльфийка-тень.
— ГДЕ Я?! — раздался вопль из-за камня.
ДД вылетела из-за валуна, размахивая короткими зелёными руками. Розовые патлы метались по лицу. Она уставилась на Глыбу, потом на свои руки, потом опять на Глыбу.
— Я гоблин! — в голосе смесь восторга и ужаса. — Я — гоблин! У меня уши! — она схватилась за голову. — УШИ! Длинные! И четыре пальца! Четыре!
4— Ага, — сказал Глыба. — А у меня бицепс размером с твою голову. И я зелёный. Что за...
— Так, — раздался знакомый голос. — Всем спокойно.
Опора вышел из-за скалы — высокий, в мантии, с логарифмической линейкой за поясом. Выглядел он до отвращения спокойно, но линейка у него подрагивала.
— Это не наш мир, — сказал он. — Это...
— «Aethelred», — закончил Глыба. — Я в курсе.
Он попытался вызвать меню. Перед глазами всплыл интерфейс: инвентарь, статы, карта, логи. Вкладка «Выход» отсутствовала. Просто не было. Он провёл рукой в воздухе там, где она должна быть — пальцы прошли сквозь пустоту.
— Выхода нет, — констатировал он.
— Вечный ран, — прошептала Скрыт.
— Что?
Она указала вверх. Перед всеми одновременно всплыло системное окно:
«Принять Вечный ран?»
И две кнопки.
Обе — «Да».
— Очень смешно, — Глыба нажал на одну, потом на другую. Результата — ноль.
Окно сменилось новым сообщением:
«Вы — избранные баги. Пока не пофиксите главный квест, будете висеть тут вечно. Приятной игры!»
5— Приятной... — Глыба сжал кулаки. — Ах вы ж...
— Смотрите! — Опора тыкал линейкой в свои логи. — «Вечный ран — это не баг, а фича». Они это специально!
— Кто «они»? — спросила ДД. — Разрабы? Это какой-то ивент?
— Нет, — Скрыт обвела взглядом пустынный тракт. — Это не ивент.
Из-за камня высунулась голова. Седой старик с выпученными глазами. Над ним горел маркер квеста — восклицательный знак в жёлтом круге.
— Путники! — завопил он. — Спасите мою кошку! Она застряла на дереве!
ДД, не думая, рванула вперёд. Только её розовые патлы и видели.
— Стоять! — Глыба попытался схватить её за шкирку, но промахнулся.
Гоблинша уже карабкалась по стволу, цепляясь за кору четырьмя пальцами. Кошка сидела на ветке, поджав хвост — обычная игровая кошка с пиксельной шерстью и дёргающейся анимацией моргания.
— Иди сюда, кис-кис...
ДД схватила её.
Раздался громкий «БАХ!».
Фонтан пикселей. Ветка сломалась, кошка лопнула, как переполненный полигон, осыпав всех искрами. ДД шлёпнулась на песок.
Квест обновился.
«Спасите 2 кошек».
6— Две, — сказала Скрыт.
— Я... я не... — ДД сидела на песке, сжимая в кулаке пустоту. — Это был баг!
— Это был баг, — согласился Опора. — Но логика...
— Какая, нахрен, логика?! — взорвался Глыба. — Мы в грёбаной игре, без кнопки выхода, с тавтологичным квестом, который умножает сам себя, и ты мне про логику?!
Он посмотрел на свои руки. Большие. Сильные. И в правой — скипетр. Тяжёлый, с навершием в виде черепа. Описание: «Скипетр Саркастического Исцеления. Лечит союзников вашим язвительным комментарием».
— Вы серьёзно? — он уставился на скипетр. — Вы дали танку хилку? Которая лечит сарказмом?!
Опора открыл рот, чтобы возразить, но тут его собственная мантия замигала красным. В логах побежали строки:
«Артефакт Тавтологий — ключ к главному квесту. Артефакт Тавтологий — ключ... Артефакт... Тавто... логий...»
Текст задрожал.
И начал меняться.
— Он редактируется! — заорал Опора. — Прямо под моим курсором!
Скрыт подошла ближе. Наклонилась. Пальцы её тени коснулись воздуха — и там, где они прошли, на секунду проступили строки кода.
7— Это... — она замолчала. — Это структура.
— Что?
— Смотрите.
Она развела руками край текстуры — как раздвигают штору. За ней был не серый «войд». Там мерцали теги. Полигоны. Строки скриптов на незнакомом языке, ползущие вверх, как титры.
— Это всё, — она обернулась. — Весь мир. Он состоит из этого.
Глыба уставился на строки кода. Потом на свой скипетр. Потом на уши ДД, которые нервно подрагивали.
— Так, — сказал он. — Значит, ключ к главному квесту — Артефакт Тавтологий. Который мы активировали.
— И который теперь меняется прямо под курсором, — добавил Опора.
— И выхода нет, — закончила Скрыт.
Интерфейс мигнул красным. Всплыло окно:
«Внимание! Обнаружен новый баг. Загрузка исправления...»
Мир дёрнулся. Небо на секунду стало текстовым редактором, земля — сеткой полигонов. И всё вернулось назад.
Но стражник за спиной Отшельника теперь ходил сквозь стену.
— Надо идти, — сказала Скрыт. — В город.
— Зачем?
— Чтобы понять, кто это сделал. И зачем.
Глыба сжал скипетр. Повертел в руках.
8— Ладно, — буркнул он. — Но если там ещё одна кошка — я её сам взорву.
ДД хихикнула.
Опора уже строчил в воображаемый блокнот — его пальцы печатали по воздуху, оставляя за собой строки текста.
— Я запишу последовательность, — бормотал он. — Логи. Паттерны. Это не хаос. Это чей-то...
— Алгоритм, — закончила Скрыт.
И пошла вперёд.
Остальные двинулись за ней. Пустынный тракт уходил вдаль, к далёким пиксельным горам. Где-то там, за мерцающим маревом, лежал город. И ответы.
Или новые вопросы.
Глыба посмотрел на свою зелёную руку. На скипетр. На небо, которое только что было кодом.
— Ну и патч, — сказал он.
И зашагал дальше.
— Зачем в город?
Глыба потопал прямо по тракту, поднимая клубы пиксельной пыли. Его сапоги оставляли в земле следы, которые через секунду исчезали — текстура не успевала подгружаться.
— Ты видела эти строки кода? — Опора семенил рядом, его мантия шелестела, как испорченный PDF. — Там была архитектура! Наследие! Кто-то это написал. А значит, кто-то может это починить.
9— Или добить, — буркнул Глыба.
ДД обогнала их по дуге — просто потому что могла. Её розовые волосы мелькали то слева, то справа, то на валуне у дороги. Валун, кстати, был зелёным. И квадратным.
— Тут текстуры недогружены! — крикнула она. — Идеально!
— Идеально, — передразнил Глыба. — У нас квест взрывается котами, интерфейс врёт, а ты радуешься зелёному булыжнику.
— Он изумрудный!
— Он багнутый.
— Одно другому не мешает!
Скрыт шла последней. Её шаги не оставляли следов даже на тех двух секундах, что текстура держалась. Плащ колыхался в такт дыханию — или не колыхался. Глыба уже пару раз оборачивался проверить: тут она или опять ушла в свой невидимый режим.
Тракт петлял между холмами. На одном из них стояло дерево. Ветки росли вниз. Корни — вверх. Дерево было перевёрнуто.
— М-да, — сказал Глыба.
— Это же классика! — Опора аж подпрыгнул. — Баг отражения по оси Y. Я читал про такое на форумах по бета-версии. Разработчики обещали пофиксить в патче...
10— В каком патче? — перебил Глыба. — В том, где нас заперли в Вечном ране?
Опора осёкся. Его пальцы дёрнулись к логарифмической линейке на поясе — старый рефлекс, из реального мира. Там, дома, он держал её на столе для антуража. Здесь она была частью инвентаря.
— Ты прав, — сказал он тихо. — Нас заперли. Но это значит, что кто-то спроектировал ловушку. А у каждой ловушки есть проектировщик.
— И триггер, — добавила Скрыт из-за спины.
Глыба не стал оборачиваться. Он уже понял: когда она говорит — она права.
— Артефакт Тавтологий, — сказал он. — Мы его активировали на стриме. Кто-то подсунул. Кто-то написал этот дурацкий текст.
— «Багу быть багом», — процитировала ДД и хихикнула. — Ну кто вообще такое пишет?
— Маркетолог, — сказал Опора.
Все замолчали.
— Что?
— Маркетолог, — повторил Опора. — Это тавтология. Маркетинговая. «Кликбейт ради бездны». «Багу быть багом». Это слоган. Кто-то продавал нам игру.
Глыба остановился. Его зелёная рука сжалась в кулак.
11— Продавал, — медленно произнёс он. — А мы купились.
Где-то вдалеке раздался взрыв.
Все повернули головы. На горизонте, там, где по карте должен был быть город, поднималось облако пиксельного дыма.
— Это не мы, — сказала ДД.
— Пока, — уточнил Глыба.
И побежал.
Бежать в броне орка — то ещё удовольствие. Каждый шаг отдавался в позвоночнике, а шлем съезжал на глаза. Глыба матерился сквозь зубы — но не останавливался. Позади пыхтел Опора, впереди мелькала ДД, а где-то сбоку, наверное, скользила Скрыт.
Город показался из-за холма.
Точнее — половина города.
Вторая половина висела в воздухе метрах в двадцати над землёй. Дома, улицы, фонари — всё это плавало в небе, как оторванный кусок карты. Снизу свисали полигоны. Сверху сыпались искры.
— Вау, — выдохнула ДД.
— Не «вау», а «катастрофа», — Опора уже выхватил линейку и что-то считал в воздухе. — Если гравитация в верхнем сегменте откажет, то вся эта конструкция рухнет прямо на...
— На нас, — закончил Глыба.
12Сверху что-то заскрежетало. Огромный кусок брусчатки оторвался от висячего города и полетел вниз — прямо на тракт.
— Рассредоточились! — рявкнул Глыба.
Брусчатка врезалась в землю в десяти метрах перед ними. Взметнулось облако пикселей. Когда оно осело, на дороге зияла дыра.
Но не просто дыра.
В дыре был виден код.
— Оно... — начала Скрыт.
— Да, — сказал Глыба. — Вижу.
Он присел на корточки. Заглянул в пролом. Там, в глубине, шли строки. Не такие, как в разрыве текстуры — другие. Быстрее. Злее. Они пульсировали красным.
«if player.status == eternal_run: spawn_bug() quest.cats += 1 quest.difficulty = impossible»
— Это же... — Опора запнулся. — Это не баг-репорт. Это чей-то код.
— Наш код, — сказала Скрыт.
Глыба смотрел на строки. На «quest.cats += 1». На «difficulty = impossible».
— Значит, так, — сказал он. — Мы не просто баги. Мы — переменные.
Опора открыл рот. Закрыл. Снова открыл.
— Переменные в чужом коде, — продолжил Глыба. — Которые кто-то дёргает.
13— Разработчик, — сказала Скрыт. — Тот, кто написал игру. Или тот, кто её сломал.
ДД схватилась за пояс с зельями.
— Тогда пошли искать этого разработчика!
— И что ты ему сделаешь? — Глыба поднялся. Колени хрустнули. — Взорвёшь кошку?
— Я ему самого его взорву!
— Он в коде, — напомнил Опора. — Возможно, он сам — часть кода.
Повисла пауза.
Сверху снова что-то заскрежетало. Оторвался кусок забора. Полетел вниз. Приземлился в дыру, пробив ещё глубже. Строки кода замигали, перестраиваясь.
— Смотрите, — Скрыт указала пальцем. — Он... адаптируется.
«if player.status == eternal_run: spawn_bug() spawn_bug() quest.cats += 2 quest.difficulty = impossible patrol.spawn(npc_moderator)»
— Модераторы, — прочитал Опора. — Он вызывает модераторов.
— Потому что мы увидели код, — сказала Скрыт.
— Значит, — Глыба медленно выпрямился, — мы на верном пути.
Из-за холма донёсся звук. Тяжёлые шаги. Металлический лязг.
— Патруль, — сказала ДД.
— Бежим?
— Нет, — ответил Глыба. — Мы идём в город. Быстро.
14Они перепрыгнули дыру и побежали к воротам. Те болтались на одной петле. Над ними висела вывеска:
«Добро пожаловать в ...»
Три точки в конце. Буквально — три пиксельные точки, которые мигали.
Глыба влетел в ворота первым. За ним — остальные.
Стражник у входа стоял спиной к ним и смотрел в стену.
— Добро пожаловать, — сказал он.
— Спасибо, — машинально ответил Опора.
Стражник повернулся. Его лицо было идеально ровным — ни глаз, ни рта. Просто текстура.
— Добро пожаловать, — повторил он.
— Он зациклен, — сказала Скрыт.
— Понял, — Глыба обошёл стражника. — Идём дальше.
Улица встречала их фонарями, которые горели вниз головой. Лавки с товарами левитировали. Кошка — живая! — сидела на перевёрнутом ящике и смотрела на них.
— Даже не думай, — сказал Глыба ДД.
— Я и не думаю! — возмутилась та. — Я просто смотрю!
— Ты смотрела на прошлую кошку.
— Та была багнутая!
— Эта тоже. Они все багнутые.
Кошка мяукнула. Изо рта у неё вылетели цифры.
15— Видишь? — сказал Глыба.
— Но она же мяукнула!
— Цифрами.
— Может, это такой диалект?
Опора уже ушёл вперёд, к зданию с вывеской «Библ...» — дальше текст обрывался. Двери не было. Вместо неё висела занавеска из вопросительных знаков.
Он отодвинул «?» и вошёл.
Внутри пахло старыми книгами и перегретым процессором. Полки уходили в бесконечность вверх — буквально, текстура не заканчивалась. За столом сидел НПС в мантии. На груди — бейджик: «Библиотекарь 3-го разряда».
— Мне нужна информация, — сказал Опора. — По Артефакту Тавтологий.
Библиотекарь поднял голову. Его глаза были двумя курсорами.
— Патч 2.4.1, — произнёс он. — Исправлена ошибка, при которой игроки могли проходить сквозь стены. Баланс правки: огненный шар — снижен урон на 2%. Добавлен новый...
— Это не отсюда, — перебил Опора. — Это из «World of...»
— Патч 2.4.2, — продолжал библиотекарь. — Удалён класс «Плут». Причина: не вписывается в...
— Да он цитирует патчи другой игры! — Опора обернулся к команде. — Это вообще не его база данных!
16— Значит, — Глыба скрестил руки на груди, — кто-то перепутал библиотеки.
— Или намеренно подменил, — добавила Скрыт.
Она подошла к одной из полок. Провела пальцем по корешку. Тот рассыпался на пиксели. Под ним — ещё один, с названием:
«Как я провёл этим летом. Сочинение. 9 „Б“ класс».
— Тут всё перемешано, — сказала она. — Это не библиотека. Это свалка файлов.
ДД тем временем улизнула в соседнюю дверь. Там обнаружился алхимик. Он стоял над котлом, в котором ничего не варилось. Просто анимация — рука с ложкой дёргалась вверх-вниз, вверх-вниз.
— О, халява! — ДД схватила с прилавка три пузырька.
Никто не отреагировал. Алхимик продолжал мешать воздух.
— Он афк, — констатировала ДД и сунула зелья в инвентарь.
С улицы донёсся лязг.
Глыба выглянул в окно. По мостовой шагал патруль — три фигуры в тяжёлой броне, с гербами в виде скрещённых гаечных ключей. Модераторы.
— Нас ищут, — сказал он.
— Надо уходить, — Опора метнулся к выходу.
— Стой, — Скрыт подняла руку. — Смотрите.
17Она указала на стену в углу библиотеки. Та мерцала. Не как багнутая текстура — иначе. Ровно. Ритмично.
— Это проход.
— Куда?
— Внутрь игры.
Скрыт подошла к стене. Приложила ладонь. Стена поплыла, открывая тёмный коридор. Изнутри пахнуло холодом и электричеством.
— Там, — сказала она, — ответы.
Глыба посмотрел на дверь. На библиотекаря, который теперь цитировал патч мобильной фермы. На ДД, которая пыталась открыть четвёртый пузырёк зубами.
— Ладно, — сказал он. — Веди.
И они вошли в темноту.
Коридор оборвался в пустоту.
Глыба шагнул первым — и тут же пожалел. Под ногами хрустнуло. Не камень. Не кость. Что-то вроде битого стекла, только тёплое.
— Свет, — бросил он.
Опора щёлкнул пальцами. Над ладонью зажёгся холодный шарик. Осветил помещение.
Это был не подвал. И не пещера.
Стены из серого тумана. Пол — зеркальная гладь. В отражении Глыба увидел себя — орк, броня, шрам на скуле. А за спиной...
— Там кто-то есть, — сказала Скрыт.
Все замерли. ДД выхватила зелье. Опора приготовил заклинание.
18Из тумана вышел человек в сером костюме. Лицо — размытое, как текстура на минималках. Галстук идеально завязан. Ботинки начищены.
— Добрый вечер, — произнёс он. — Вы успешно достигли контрольной точки «Теневая бухта». Поздравляю.
— Ты кто? — спросил Глыба.
— Я — Поверенный. Уполномочен Системой для проведения процедуры подтверждения.
— Какой процедуры?
— Вечный ран.
Поверенный вытянул руку. В воздухе загорелся свиток. Буквы плыли, но читались чётко: «Соглашение о неразглашении и безвыходном пребывании».
— Ознакомьтесь и подпишите, — сказал он. — Точнее, нажмите «Да». Кнопка одна.
ДД фыркнула.
— Ага, щас. Я такие контракты даже на сайте не читаю.
— Ваше право, — Поверенный не шелохнулся. — Однако без подтверждения вы не сможете покинуть данную локацию.
Опора прищурился. Подошёл ближе. Пробежал глазами по строкам.
— Пункт 14.2, — прочитал он вслух. — «В случае аннулирования статуса Вечного рана все накопленные логи удаляются без возможности восстановления». Что это значит?
— Это значит, — Глыба скрестил руки, — что нас не просто заперли. Нас стирают, если дёргаемся.
19Скрыт обошла Поверенного по кругу. Тот не поворачивал головы — просто не было такой анимации.
— Он — скрипт, — сказала она. — Не видит, не слышит, реагирует только на ключевые слова.
— И что?
— И то, — она остановилась, — что я уже нашла выход.
Она указала вниз. Зеркальный пол под ногами Поверенного дал трещину. Маленькую. Почти незаметную.
— Это не текстура, — сказала Скрыт. — Это код. Я видела такое за стеной библиотеки.
— Можно сломать?
— Можно попробовать.
Поверенный дёрнулся. Впервые за весь разговор.
— Внимание, — произнёс он. — Зафиксирована попытка несанкционированного доступа к исполняемому коду.
— Зафиксируй ещё вот это, — ДД швырнула зелье под ноги.
Бах. Зеркало пошло трещинами.
— Бегом!
Они прыгнули вниз одновременно. Глыба — первым, пробивая плечом осколки. Опора — за ним, успев выкрикнуть:
— Это нарушает по меньшей мере четыре правила пользования!
— Пиши жалобу! — рявкнула ДД, утягивая его за шиворот.
20Скрыт нырнула последней. Уже в падении она оглянулась. Поверенный стоял над проломом. Его лицо пошло рябью. На секунду проступили черты — усталые, почти человеческие.
А потом темнота.
И удар о землю.
Глыба поднялся первым. Отряхнулся. Вокруг — каменные стены. Факелы. Где-то капает вода. И тишина. Настоящая. Не как в игре — с фоновым шумом ветра и цокотом копыт. А мёртвая. Как в отключенном сервере.
— Народ, — позвал он.
— Тут.
— Тут.
— Здесь.
Все целы. Но в логах — красная строка.
«Внимание! Вы покинули допустимую зону. Загрузка исправления...»
И ниже:
«Ошибка. Исправление не загружено. Причина: файл не найден».
Глыба выдохнул.
— Значит, так, — сказал он. — Больше никаких квестов. Никаких кошек. Никаких библиотекарей. Ищем консоль.
— Консоль заблокирована, — напомнил Опора.
— Значит, ищем того, кто её заблокировал.
Скрыт молча указала вперёд. Там, в конце коридора, горела табличка:
«Серверная. Посторонним вход воспрещён».
А под ней — мелко, почти в шутку:
«Особенно посторонним с Вечным раном».
Глыба усмехнулся.
— Ну вот и свиделись.
21Он шагнул к двери, уже предвкушая финальную битву. Но та не поддалась. Вместо этого панель доступа засветилась, требуя пароль. — Требуется системный ввод, — констатировал Опора. — Значит, ищем разработчика, — сказала Скрыт. — Того, кто спрятал консоль. Глыба кивнул и шагнул к двери, уже предвкушая финальную битву.
22