Создать книгу

← Все примеры · Баг в титрах · глава 4 из 14

Скачать пример: EPUBFB2PDF
Читает голос вашего устройства. Студийная аудиокнига — скоро.

Глава 4. Главный квест, которого нет

Ворота Зеро-Сити болтались на одной петле. Вторая валялась в пыли, и сквозь неё просвечивал полигональный каркас — текстура дерева не прогрузилась.

Глыба остановился у арки.

— Добро пожаловать в хаб, — пробормотал он. — Где каждый НПС — баг.

Трактирщик стоял у дверей таверны «Синий глюк». Улыбался. Кивал.

— Добро пожаловать.

— Добро пожаловать.

— Добро пожаловать.

ДД подошла ближе. Помахала рукой перед его лицом.

— Эй. У тебя пластинку заело.

— Добро пожаловать.

— Он на репите, — констатировала Скрыт. — Одна фраза. Бесконечный цикл.

Опора уже открыл интерфейс. Пальцы бегали по воздуху — он листал логи НПС.

— Сбой диалогового дерева. Ветка «Приветствие» замкнута сама на себя. Три тысячи четыреста двадцать первая итерация.

— И он не устал? — ДД постучала трактирщику по лбу.

НПС дёрнулся. Улыбка сбросилась. Лицо стало пустым.

— Добро... — начал он.

И захрипел.

Глыба оттащил ДД за плечо.

— Не трогай. Мало ли — агришь моба.

1

— Я агрю? — возмутилась та. — Он сам кого хочешь заагрит. Два часа кивает — крыша съедет.

Стражник у городской стены шагнул вперёд. И сквозь стену. И вышел с другой стороны. Развернулся. Снова шагнул.

Опора проводил его взглядом.

— Коллизия отсутствует. Модель игнорирует физический объект.

— Модель игнорирует мозг, — отрезал Глыба. — Идём. Нам нужен Архив Патчей.

Улица вела к рыночной площади. По пути попалась лавка алхимика. Старик в синем балахоне стоял над котлом. Мешал варево. Ложка двигалась — раз, два, три. Плавно. Монотонно.

А потом дёрнулась. И застыла.

— Завис, — прошептала ДД.

И скользнула к прилавку.

Глыба не успел её остановить. Опора открыл рот. Скрыт просто смотрела.

ДД сгребла склянки с зельями — четыре штуки. Сунула в инвентарь. Алхимик не шелохнулся. Ложка висела в воздухе.

— Он даже не качается, — удивилась ДД. — Обычно хоть дышат.

— Он не дышит, — сказала Скрыт. — У него нет цикла дыхания. Анимация только на руку.

— Жуть, — ДД взяла пятую склянку. — Но зелья-то настоящие.

2

Глыба выдохнул сквозь зубы.

— Если он очнётся...

— Он не очнётся, — перебила Скрыт. — У него зациклен таймер. Видите? Ложка дёргается каждые три секунды на одно и то же место. Это не баг. Это кто-то намеренно повесил на него бесконечный каст.

Опора прищурился.

— Ты хочешь сказать...

— Да. Кто-то специально ломает НПС. Создаёт этот цирк.

ДД замерла. Склянка звякнула в пальцах.

— Зачем?

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

— Смотрите. Каждый алхимик. Каждый стражник. Каждый трактирщик. У них один и тот же шаблон ошибки. Как будто кто-то запустил скрипт.

Глыба нахмурился.

— Скрипт ломает игру.

— Скрипт ломает всё, к чему прикасается, — уточнила Скрыт. — И мы идём в Архив. К тому, кто его пишет.

Опора уже шагал к Библиотеке — массивному зданию, парящему в метре над землёй. К нему вела лестница. Три ступени из десяти отсутствовали. Опора перепрыгнул провал.

Внутри пахло пылью. И серверным маслом.

3

Библиотекарь стоял за стойкой. Глаза горели жёлтым. В руках — свиток.

— Добро пожаловать в Архив. Какой патч вас интересует?

— Любой, — Опора положил руки на стойку. — Что за обновление сейчас активно?

Библиотекарь развернул свиток.

— Патч 4.2.1 для «Shadowrun: Hong Kong». Исправлен баг с мерцанием теней в миссии «Гонконгский гамбит».

— Это не та игра, — сказал Опора. — У нас «Aethelred».

— Патч 4.2.2 для «Shadowrun: Hong Kong». Исправлен баг с наложением текстур у торговца Вонга.

— Ты вообще слушаешь?

Библиотекарь поднял глаза. Жёлтые. Немигающие.

— Патч 4.2.3...

— Хватит! — Опора ударил по стойке. — Мне нужен Главный квест. Где?

НПС застыл. Из горла вырвался механический треск. Рука дёрнулась к полке. Схватила свиток. Протянула.

— Главный квест. Актуален. Ознакомьтесь.

Опора развернул свиток.

Текст: «Соберите три яблока в саду Имриль. Награда: опыт, 50 золотых. Время на выполнение: без ограничений».

Он моргнул.

Текст сменился: «Убейте дракона Фаргота. Награда: Меч Тысячи Истин. Время: 72 часа».

Снова моргнул.

«Принесите десять шкур волка трактирщику. Награда: 20 серебряных».

4

— Оно меняется, — прошептал Опора. — Каждые...

— Тридцать секунд, — закончила Скрыт. Она стояла за его спиной. — Я засекла. Тридцать секунд. Ровно.

Текст снова сменился: «Найдите Разработчика».

Опора замер. Прочитал вслух:

— «Найдите Разработчика».

Глыба подошёл ближе.

— Это оно? Главный квест?

Скрыт склонилась над свитком. Пальцы пробежали по строкам.

— Смотрите. Текст меняется, но структура одна. «Сделайте X. Получите Y. Время Z». И каждые тридцать секунд. Как...

— Как будто кто-то дёргает ложкой, — закончила ДД.

Все посмотрели на неё.

— Что? — она пожала плечами. — Я тоже могу быть умной.

Текст сменился снова. Теперь по свитку бежали символы — бессмысленная абракадабра. Буквы перетекали друг в друга. Строки ломались.

— Это не случайный рандом, — сказала Скрыт. — Это шифр.

— Шифр? — Глыба скрестил руки. — И что там?

— Я не знаю. Но это не безумие. Это код.

Опора уже копировал символы в интерфейс. Пальцы летали.

— Если это шифр... — он осёкся.

Свиток в его руках вспыхнул. И превратился в пепел.

5

— Эй! — ДД рванулась к полке. — Там ещё такие?

Библиотекарь покачал головой.

— Экземпляр удалён. Причина: нарушение политики конфиденциальности.

— Какой политики?! — взорвался Глыба. — Мы ничего не нарушали!

— Вы прочитали, — ответил НПС. — Чтение является нарушением.

И улыбнулся.

Впервые.

Медленной, резиновой улыбкой.

Скрыт схватила Опору за рукав.

— Уходим.

— Но...

— Уходим.

Они вышли на улицу. Солнце висело в зените. И не двигалось.

— Оно зависло, — констатировала ДД.

— Как и всё здесь, — кивнула Скрыт. — Кроме нас.

Глыба сел на край фонтана. Воды в нём не было — только сухой код на дне.

— Значит так. Главный квест — это рандомный генератор. Забиваем. Ищем консоль.

— Консоль заблокирована, — напомнил Опора. — С тех пор, как мы в Серверной.

— Тогда ищем того, кто её заблокировал.

— Разработчика, — тихо сказала Скрыт.

Все повернулись к ней.

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

6

— Свиток. Там было три слоя. Верхний — мусор. Средний — задания. А нижний...

— Что? — ДД подпрыгнула.

— Нижний слой — один и тот же текст. Он не менялся. Каждые тридцать секунд. «Найдите Разработчика». Всегда. Просто прятался под мусором.

Глыба встал.

— Значит, это и есть Главный квест. Тот, кто его создал. Тот, кто ломает игру. Один и тот же.

— Разработчик, — кивнула Скрыт. — Он где-то здесь. В этом мире. И он специально всё это делает. Каждого НПС. Каждый баг. Это не ошибка. Это саботаж.

Опора переглянулся с ДД.

— Саботаж изнутри, — сказал он. — Кто-то ломает игру, чтобы...

— Чтобы никто не вышел, — закончил Глыба. — Вечный ран. Это его работа.

Тишина.

Потом скрип. Где-то сбоку. Медленный, размеренный.

Скрыт обернулась первой.

У стены таверны стоял человек. Серый костюм без складок. Лицо — размытое. Не как текстура низкого разрешения. Хуже. Как будто кто-то стёр детали ластиком.

— Поверенный, — выдохнула ДД.

НПС не двигался. Просто стоял. И смотрел.

Глыба шагнул вперёд.

7

— Ты следишь за нами?

Молчание.

— Отвечай.

Поверенный поднял руку. В пальцах — свиток. Точно такой же, какой сгорел в Библиотеке.

— Главный квест обновлён, — произнёс он без интонации. — Время выполнения: тридцать секунд.

— Что за бред? — Опора сделал шаг к нему. — Какой квест мы не взяли...

— Вы прочитали.

Свиток в руке Поверенного замерцал.

— Чтение является нарушением. Наказание: аннулирование контракта.

— Но мы его не подписывали! — крикнул Глыба.

— Вы здесь. Этого достаточно.

Поверенный развернул свиток. Текст горел красным: «Вечный ран. Статус: активен. Квест: Найти Разработчика. Время: бесконечно».

— Но вы же только что... — начал Опора.

— Система обновляет условия. Каждые тридцать секунд.

Скрыт схватила Глыбу за плечо.

— Он не враг. Он такой же заложник. Видите?

Она указала на руку Поверенного. Та дрожала. Едва заметно. Но дрожала.

— Он не может не выполнять протокол. Как трактирщик. Как алхимик. Как все.

Поверенный опустил руку. Свиток исчез.

— Вы правы, — сказал он. — Я исполняю. Я не решаю.

8

И сделал шаг назад.

В стену.

И исчез.

Глыба выдохнул.

— Что за...

— Он ушёл в серверную, — перебила Скрыт. — Как мы тогда. Через зеркало. Помните?

Опора кивнул. Пальцы снова забегали по воздуху.

— Я записал лог. Он сказал «я не решаю». Это ключ.

— К чему? — ДД покрутила в пальцах склянку. Зелье булькнуло.

— К тому, кто решает. Разработчик. Он где-то есть. И его можно найти.

Скрыт указала на мостовую. Там, под ногами, снова ползли строки кода. Они складывались в узор. Стрелки. Все в одну сторону.

— Это путь. Скрытый под багами. Кто-то оставил.

Глыба перехватил щит.

— Тогда идём.

— Ага, — ДД подбросила склянку. — Только сначала я опробую зелье невидимости.

— У тебя нет невидимости.

— Будет.

Она открутила пробку. Зелье зашипело. Из горлышка повалил розовый дым.

Глыба закашлялся.

— ДД!

— А что? — дым окутал её с головой. — Я уже невидима?

Скрыт вздохнула.

— Ты розовая. И светишься в ультрафиолете.

— Круто!

— Это баг.

— Ещё круче!

9

Опора махнул рукой.

— Идём. Пока весь город не превратился в алхимика.

Они двинулись по стрелкам. Мимо трактирщика, который всё ещё кивал. Мимо стражника, который всё ещё шагал сквозь стену. Мимо алхимика, чья ложка всё ещё дёргалась.

Город замирал.

А стрелки вели вниз. В подвал. В темноту.

Где кто-то ждал.

И писал патчи.

Темнота пахла сыростью и старым кодом.

— Похоже на серую зону, только глубже, — тихо сказала Скрыт.

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

— Кто-то очень не любит это место, — буркнул он.

Опора чиркнул пальцем по воздуху. Логарифмическая линейка выскочила из-за пояса сама — баг инвентаря, который он уже перестал фиксить.

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

— Значит, не предусмотрено, — сказала Скрыт.

10

Она двигалась последней. Плащ растворял её в тенях, оставляя только контур — размытый, как лицо Поверенного. ДД шагала следом за Глыбой и каждые три ступеньки подбрасывала новую склянку. Розовый дым ещё не выветрился, и она светилась, как неоновая вывеска над трактиром.

— Я как маяк, — сообщила она.

— Ты как баг на колёсиках, — отозвался Глыба.

— Ой, да ладно! Зато сразу видно, где свои.

— Мы в подземелье, ДД. Тут нет чужих.

— Значит, я просто красивая.

Ступеньки кончились. Глыба шагнул вниз — и замер.

Подвал был бесконечным.

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

Он сидел за столом. Обычным деревянным столом, единственным предметом с нормальными текстурами. На столе стояла чернильница. В чернильнице плескался жидкий код. Человек макал в него перо и писал на длинной полосе пергамента.

— Библиотекарь, — тихо сказала Скрыт. — Мы его уже видели.

11

Человек поднял голову. Лицо было человеческим. Почти. Слишком симметричным. Слишком неподвижным. Глаза смотрели сквозь них — как у трактирщика, как у стражника, как у всех.

— Добро пожаловать в библиотеку, — произнёс он.

Голос звучал плоско. Без интонации. Без пауз между словами.

— Я искатель знаний. Чем могу помочь?

Опора шагнул вперёд.

— Нам нужен Разработчик.

Библиотекарь моргнул. Медленно. Слишком медленно — веки двигались рывками, как плохо анимированный спрайт.

— Запрос не распознан. Предлагаю ознакомиться с последними патчами.

Он протянул пергамент. Опора взял. Пробежал глазами.

— Тут написано... «Патч 7.2.1 для Galactic Farmer: теперь помидоры не квадратные».

— Это не наша игра.

— Я знаю.

Глыба перехватил щит.

— Спроси ещё раз.

Опора откашлялся.

— Где Разработчик?

Библиотекарь моргнул ещё медленнее.

— Запрос не распознан. Предлагаю ознакомиться с последними патчами.

И снова протянул пергамент. Тот же самый. Слово в слово.

— У него ответы зациклены, — сказала Скрыт. — Как у трактирщика с «Добро пожаловать».

12

— Тогда ломаем, — ДД выхватила из пояса новую склянку. — У меня есть зелье взлома речевых паттернов!

— Такого нет в инвентаре, — начал Опора.

— Теперь есть! Я его сварила!

Она швырнула склянку в Библиотекаря. Стекло разбилось о стол. Жидкость растеклась по пергаменту — и строки кода на нём замерцали. Задёргались. И начали перестраиваться.

Библиотекарь замер с открытым ртом.

— Ошибка. Ошибка, — заговорил он. — Ошибка в секторе семь. Недопустимое вмешательство. Протокол нарушен.

— Зато ты заговорил, — хмыкнула ДД.

— Протокол нарушен. Требуется перезагрузка. Требуется...

Он осёкся. Глаза сфокусировались — впервые с начала разговора.

— Вы те самые, — сказал он.

— Какие? — спросил Глыба.

— С пометкой «Вечный ран». Четверо пользователей с бесконечным таймером. Я читал про вас в логах.

— Ты умеешь читать логи? — Опора подался вперёд.

— Я их храню, — ответил Библиотекарь. — Весь город — библиотека. А я — её каталог.

Он встал из-за стола. Движения стали плавнее. Как будто с него сняли ограничение анимации.

13

— Вы пришли искать Разработчика. Но его здесь нет.

— Где он? — спросил Глыба.

— В главном квесте, — ответил Библиотекарь. — Которого нет.

Он указал на пергамент. Тот всё ещё дёргался, перебирая строки. Сменялись патчи. Сменялись игры. Мелькали названия: Galactic Farmer, Medieval Tycoon, Space Heist. И сквозь них — один и тот же текст. На секунду. На полсекунды.

«Главный квест: Найдите Разработчика».

— Почему он исчезает? — спросила Скрыт.

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

— Кто пишет сценарий?

Библиотекарь молчал.

— Кто?

Он поднял руку. Медленно. И показал пальцем наверх.

— Система.

— Тогда почему она прячет «Найти Разработчика» под чужими патчами? — спросил Опора. — Если это главный квест — зачем его стирать?

— Потому что его нельзя выполнить, — ответил Библиотекарь. — Разработчик покинул Систему. Он оставил код без присмотра. А Система не может существовать без цели.

14

Скрыт шагнула ближе к столу. Вгляделась в строки.

— Он не покинул, — сказала она. — Он спрятался.

— Почему ты так думаешь?

— Потому что баги не хаотичны, — ответила Скрыт. — Они подчиняются алгоритму. Кто-то специально ломает игру.

Библиотекарь опустил руку.

— Это не баги. Это патчи. Система пытается починить то, что сломал Разработчик. А ломает он всё, что Система чинит.

Глыба выругался.

— То есть они играют в кошки-мышки. А мы застряли между ними.

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

Он протянул пергамент Опоре.

— Возьмите. Там всё.

Опора взял. Текст снова сменился. Galactic Farmer. Medieval Tycoon. Space Heist. И снова:

«Главный квест: Найдите Разработчика».

— Мы не успеем прочитать, — сказал Опора.

— Успеете, — ответил Библиотекарь. — Если замедлите время.

Он указал на ДД.

— У неё есть зелье.

ДД замерла.

— Откуда ты...

15

— Я каталог, — перебил Библиотекарь. — Я помню всё, что попадает в библиотеку. Зелье «Стазис-бомба» лежит у тебя в поясе с того момента, как ты украла его у алхимика.

— Я не крала! Я одолжила!

— Алхимик не давал согласия.

— Он вообще не давал ничего! Он завис!

— Это неважно, — перебил Опора. — Ты сказал «Стазис-бомба»?

Библиотекарь кивнул.

— Она замедляет время для всех объектов в радиусе действия. Кроме того, кто её активирует.

— А радиус?

— Весь подвал.

Глыба перехватил щит.

— Так. Кидай.

— Что, прямо сейчас? — ДД вытащила склянку. — А если не сработает?

— Тогда мы просто взорвёмся, — сказал Опора. — Но перед этим успеем прочитать квест.

— Веская причина.

— Бросай.

ДД размахнулась. И метнула склянку в центр бесконечности.

Та упала. Разбилась. И время застыло.

Строки кода остановились. Библиотекарь замер с поднятой рукой. Опора застыл, не успев договорить фразу. Глыба замер с открытым ртом. И только ДД двигалась. Она наклонилась над пергаментом.

«Главный квест: Найдите Разработчика».

16

— Я прочитала! — крикнула она в пустоту.

— Молодец, — ответил Опора. — Теперь запомни.

— Я не запоминаю! У меня память как у голубя!

— Тогда перепиши!

ДД выхватила пергамент. Строки ещё держались. Она достала уголёк из пояса — тот самый, которым Опора чертил формулы в первый день, — и быстро нацарапала на обратной стороне:

«Найдите Разработчика. Квест. Настоящий.»

И тут время пошло.

С грохотом. С воем сирены. С красной строкой в воздухе:

«ВНИМАНИЕ. ОБНАРУЖЕНА ПОПЫТКА ДОСТУПА К ФАЙЛАМ ЯДРА. ПРИМЕНЯЕТСЯ ПАТЧ 9.0.0.»

Библиотекарь дёрнулся и начал рассыпаться. Буквально. Его тело распадалось на пиксели, как разбитое зеркало.

— Уходите! — крикнул он. — Патч стирает всё, что не входит в основной билд!

— А ты? — крикнула Скрыт.

— Я войду! Я войду в новый билд! В следующем патче! Я всегда вхожу!

Он исчез.

А вместе с ним — стол, чернильница, бесконечность стен.

Подвал схлопнулся.

17

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

— Город пересобирается, — сказал Опора.

— Плевать, — ответил Глыба. — У нас есть квест.

— У нас есть кусок угля и надпись «Найдите Разработчика», — поправила ДД. — Разница небольшая.

— Главное — мы знаем, что он есть, — сказала Скрыт. — И знаем, что Система прячет его.

Она обернулась. На краю улицы стоял человек в сером костюме. Лицо размыто. Но рука больше не дрожала. Он смотрел на них. И ждал.

— Поверенный, — сказал Глыба.

— Он не нападает, — заметил Опора.

— Он наблюдает.

— Зачем?

Скрыт шагнула вперёд.

— Потому что он тоже хочет найти Разработчика, — сказала она. — И мы — его единственный шанс.

Поверенный кивнул. Едва заметно. И исчез.

18

А город вокруг начал загружаться заново. Строка за строкой. Патч за патчем. И где-то в глубине кода, под слоями чужих игр и бесконечных правок, прятался тот, кто всё это начал.

19

Понравилось?

Напишем такую же историю, но свою: с вашими героями, событиями и финалом.

Хочу такую же, но свою