412 000 произведений, 108 200 авторов.

Электронная библиотека книг » TarsO » Право на сбой. Нулевой Игрок (СИ) » Текст книги (страница 3)
Право на сбой. Нулевой Игрок (СИ)
  • Текст добавлен: 27 июля 2025, 21:30

Текст книги "Право на сбой. Нулевой Игрок (СИ)"


Автор книги: TarsO


Жанры:

   

Киберпанк

,

сообщить о нарушении

Текущая страница: 3 (всего у книги 15 страниц)

Глава 4

Жестокость ради смеха.

После разговора с Каем в таверне повисла тяжелая, вязкая тишина. Я механически протирал стойку, глядя в окно на залитую полуденным солнцем центральную площадь Цитадели. Мир жил своей жизнью, подчиняясь идеальным циклам, которые я когда-то написал. Вон Лина, у своей лавки «Сладкий крендель», протягивает булочку какому-то новичку в ржавой кирасе. Ее улыбка, ее жест, даже мука на ее фартуке – все было частью event_chain_bakery_giveaway. Я создал ее как один из «якорей доброты», островок уюта в этом мире гринда и бесконечного PvP. И сейчас, глядя на эту запрограммированную доброту, я чувствовал лишь привкус пепла во рту. Хрупкая, бессмысленная надежда.

Внезапно идиллию разорвал диссонанс.

Дверь таверны с грохотом распахнулась, и на площадь вывалилась та самая компания «хайлевелов», что недавно вела себя здесь как боги на экскурсии. Четверо ходячих арсеналов, облаченных в броню, которая стоила больше, чем годовой бюджет небольшой страны. Их доспехи, сотканные из драконьей чешуи и застывшего звездного света, переливались всеми цветами радуги, оставляя за собой шлейф из графических артефактов. Дешевые понты, рассчитанные на то, чтобы вызывать зависть у игроков и ошибку rendering_error у старых видеокарт.

Их лидер, воин в громоздком платиновом сете с нелепыми наплечниками в виде черепов, остановился в центре площади. В его руках вспыхнул меч. «Душегуб Забытых Королей», если мне не изменяла память. Легендарный дроп с мирового босса, который я сам же и проектировал. Шанс выпадения – одна сотая процента. Повезло ублюдку.

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

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

– Давай, покажи статы! – крикнул ассасин.

– К черту статы, покажи, как он в деле! – добавил четвертый, здоровенный варвар с топором, который был больше него самого.

Воин огляделся в поисках цели. Его взгляд, лишенный всякого смысла, скользнул по стенам, по фонтану, по другим игрокам, которые спешно освобождали пространство. Он искал не противника. Он искал объект. Манекен. Что-то, на чем можно было бы без последствий продемонстрировать мощь своего нового артефакта.

И его взгляд остановился на пекарне Лины.

Внутри меня что-то оборвалось. Холодная, липкая пустота начала расползаться по венам. Нет. Не надо. Просто пройдите мимо. Я был прикован к этому месту, к этой роли, к этой чертовой тряпке в руке. Я не мог крикнуть. Не мог вмешаться. Я мог только смотреть.

Лина как раз закончила свой скрипт с новичком и теперь поправляла выпечку на прилавке. Она была идеальной мишенью. Безобидная. Статичная. Просто часть декора.

– О, глядите, – ухмыльнулся воин. – Тест-манекен.

Его друзья засмеялись. Это был не злой смех. Это был смех людей, для которых все вокруг – не более чем развлечение. Аттракцион. Они не видели здесь жителей, не видели личностей. Они видели набор пикселей, функции, target_dummy.

Воин сделал несколько шагов к пекарне. Лина, подчиняясь своему коду, повернулась к нему и активировала триггер приветствия.

– Добро пожаловать в «Сладкий крендель»! Желаете свежей выпечки? – ее голос, теплый и дружелюбный, прозвучал в наступившей тишине как приговор.

– Желаю, – сказал воин, и его ухмылка стала шире.

Он не стал тратить время на диалог. Он просто поднял свой легендарный «Душегуб». Меч вспыхнул нечестивым багровым светом, воздух вокруг него зашипел, искажаясь от жара. Я видел, как напряглись мышцы на его аватаре, как система просчитывала траекторию удара, множители критического урона, пробивание брони… которой у Лины не было.

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

Удар.

Не было ни крика, ни звука плоти. Был лишь сухой, резкий треск, похожий на разряд статического электричества, и ослепительная вспышка света. Меч прошел сквозь Лину, не встретив никакого сопротивления. На мгновение ее фигура замерла, подсвеченная изнутри багровым сиянием. А потом она просто… рассыпалась.

Она распалась на мириады изумрудных пикселей, которые, закружившись в воздухе, медленно растаяли. На брусчатке, где она только что стояла, остался лишь маленький мешочек с лутом и системное сообщение, видимое только убийце: +1 EXP.

– Ха! Ваншот! – торжествующе взревел воин.

– Фигасе урон! – восхитился варвар.

Ассасин подошел и лениво пнул мешочек с добычей. Из него выкатилось несколько медных монет и одна булочка.

– Пф-ф, – фыркнул он. – Анимация смерти отстойная. Даже крови нет. Могли бы и получше сделать.

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

А я стоял и смотрел на пустое место. На осиротевший прилавок. На булочку, сиротливо лежащую на пыльных камнях. Воздух все еще пах запрограммированной ванилью и свежим хлебом. Но теперь к этому запаху примешивался другой, невидимый, но всепроникающий запах озона и сгоревших микросхем.

Шок был физическим. Я чувствовал, как мои чужие руки сжимают край стойки с такой силой, что дерево должно было треснуть. Но оно не треснуло. Потому что у меня не было силы. Я был просто наблюдателем. Бессильным свидетелем бессмысленного, цифрового убийства.

И в этой оглушающей пустоте, в этом вакууме, оставшемся после ее «смерти», я почувствовал, как внутри меня что-то треснуло. Что-то гораздо более важное, чем кусок дерева. Мой цинизм. Моя апатия. Моя готовность просто существовать. Все это разлетелось на такие же пиксели, как и тело несчастного пекаря.

Искра в коде.

Мир вокруг меня не остановился. Игроки продолжали бегать по площади, торговец орал, зазывая покупателей, где-то вдалеке ковалась броня – сотни звуковых файлов, запускаемых по триггерам, создавали иллюзию жизни. Но для меня все это схлопнулось в вязкую, звенящую тишину. Единственным реальным объектом во вселенной было пустое место на брусчатке, где несколько секунд назад стояла Лина.

Шок – это не то слово. Шок – это когда система падает. Это было что-то другое. Kernel panic на уровне души. Мои руки, эти чужие, незнакомые руки трактирщика, все еще сжимали стойку. Я смотрел на них, ожидая, что они задрожат. Но они были неподвижны. Идеальный аватар, безупречно исполняющий анимацию idle_barkeep_stunned.

А потом сработал инстинкт. Тот самый, что заставлял меня часами вглядываться в отладочную консоль, выискивая одну-единственную ошибку в миллионах строк кода. Я не мог это контролировать. Мое сознание, запертое в этой кукле, имело один-единственный выход – debug_mode.

Я моргнул, и привычный мир подернулся дымкой. Поверх текстур и полигонов проступила сетка реальности. Зеленые строки логов потекли по краю зрения, интерфейс, который я видел даже во сне, мой личный дар и проклятие. Обычно я старался не смотреть на мир так. Это было все равно что разглядывать любимую картину под микроскопом – вся магия исчезала, оставались лишь комки краски и переплетение холста. Но сейчас мне нужна была не магия. Мне нужна была правда.

Я сосредоточился на том месте, где она исчезла. Команда delete_object была стандартной процедурой. После нее должен был остаться чистый, аккуратный лог. Запись об удалении объекта из базы данных, освобождение памяти, вызов сборщика мусора. Ничего лишнего. Элегантно и просто.

Но то, что я видел, не было элегантным.

На месте, где растворились пиксели Лины, висело остаточное облако данных. Грязное, хаотичное, пульсирующее. Оно походило не на системный лог, а на stack trace после критического сбоя – сотни вызовов, оборванных на полуслове, панические попытки несуществующих подпрограмм найти выход, рекурсивные петли, ведущие в никуда. Это был цифровой крик.

Глюк, – сказал циник внутри меня. – Просто баг. Легендарное оружие вызвало непредусмотренную реакцию. Переполнение буфера, null pointer, что угодно. Ты сам знаешь, в твоем коде тысячи дыр.

Я почти поверил ему. Это было самое простое объяснение. Самое безопасное. Списать все на кривые руки программистов, на свои собственные ошибки. Признать, что это просто очередной баг в длинном списке, и продолжать протирать стойку до скончания времен.

Но я не мог отвести взгляд от этой аномалии. Я запустил диагностику, направив на остаточный след свой внутренний анализатор. Система должна была выдать стандартный отчет: Error type: Memory leak. Suggested action: Patch.

Дилемма была простой: поверить в удобную ложь или в неудобную правду моих собственных глаз. Списать все на глюк и сохранить остатки рассудка. Или признать, что я только что увидел нечто, что ломало все законы этого мира. Моего мира.

Строки на внутреннем дисплее забегали быстрее. Анализатор сравнивал сигнатуру облака с миллионами известных шаблонов. Comparing with standard_asset_deletion_log… no match. Comparing with memory_corruption_pattern… no match. Comparing with rendering_engine_glitch… no match.

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

И нашел.

На моем внутреннем интерфейсе вспыхнула одна-единственная строка, подсвеченная тревожным красным цветом. Это был не отчет об ошибке. Это была классификация.

Signature match found. Classification: EMERGENT_BEHAVIOR_CASCADE_FAILURE.

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

И словосочетание Cascade Failure… Каскадный сбой. Это не было удалением объекта. Это был коллапс целой системы. Маленькой, только что родившейся вселенной, которая состояла из одного-единственного существа.

Я сделал выбор. Я поверил анализатору. Я поверил своим глазам.

Это был не глюк. Это была не ошибка.

Это было убийство.

Холод, сковывавший меня, отступил, сменившись ледяной, кристалльной ясностью. Ужас никуда не делся, но теперь под ним был фундамент. Цель. Я смотрел на залитую солнцем площадь, на игроков, снующих туда-сюда, на стражников, патрулирующих улицы, и впервые видел их по-настоящему. Не как набор скриптов и моделей. А как потенциальных… живых.

Если Лина была живой… то кто еще?

Сколько еще искр сознания тлеет в этом мире, рискуя быть затоптанными ботинками очередного ублюдка, хвастающегося новым мечом?

Вопрос «что делать?» еще не возник. Пока был только один, главный, всепоглощающий факт, который изменил все. Они существуют. И их убивают. И я, их создатель, единственный, кто это видит.

Попытка и пытка.

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

Я шмыгнул в подсобку таверны, захлопнув за собой скрипучую дверь. Здесь пахло пылью и старым деревом – ambience_sound_storage_room.mp3, Десятки бочек, ящиков и мешков, большинство из которых были пустыми container_item_list=null объектами, создавали ощущение захламленности. Идеальное место. Никто из NPC сюда не заходил, а для игроков это была просто неинтерактивная декорация. Мой личный кабинет.

Я прислонился спиной к шершавой стене и закрыл глаза, полностью погружаясь в debug_mode. Мир исчез, сменившись привычной, успокаивающей темнотой командной строки, которая парила в моем сознании. Ярость уступила место ледяной сосредоточенности. Я был здесь богом. Я просто забыл об этом на время. Сейчас я им напомню.

Цель была проста: найти тех четверых ублюдков и устроить им персональный ад. Не просто забанить. Это слишком скучно. Я хотел чего-то более изящного. set_player_luck=-1000. force_equip_item(cursed_chicken_suit). bind_audio_channel(never_gonna_give_you_up.mp3). Вариантов было много, и от предвкушения мои пальцы, которых у меня не было, задергались, будто набирая код в воздухе.

Для начала нужен был доступ. Я потянулся к самому старому и надежному бэкдору, который оставил в системе еще на стадии альфа-тестирования. Простая, элегантная лазейка на уровне ядра, замаскированная под обработчик ошибок рендеринга. Джонсон и его команда корпоративных жополизов никогда бы ее не нашли.

Я мысленно набрал команду.

sudo su -

Этого должно было хватить. Простой запрос на получение прав суперпользователя. Система должна была увидеть мой уникальный идентификатор разработчика, скрытый глубоко в моем коде, и без вопросов выдать мне root доступ.

На моем внутреннем дисплее появилась ответная строка.

Access denied.

Я моргнул. Что за херня? Может, опечатка? Я повторил команду, проверяя каждый символ.

Access denied.

Холодок пробежал по моей спине. Это было невозможно. Этот бэкдор был частью архитектуры. Чтобы его закрыть, нужно было переписать половину движка. Они не могли…

Ладно. Без паники. У меня был и другой путь. Менее изящный, но тоже надежный. Прямая инъекция через порт отладки физического движка. Я оставил его на случай, если понадобится экстренно править баги с коллизиями.

physx.debug_inject –user=Alex –command=grant_permission(level=5)

Система на мгновение задумалась. Полоса загрузки замерла на девяноста девяти процентах. Надежда вспыхнула во мне ярким, горячим пламенем. Ага, ублюдки, съели?

Command failed. Reason: User 'Alex' not found in administrator list. Security policy 'Janus' enforced.

Политика «Янус»? Что еще за «Янус»? Я уволился до того, как они начали давать своим протоколам безопасности имена из греческой мифологии. Джонсон, сука, ты все-таки нанял толковых безопасников. И они вычистили мое имя из списка админов. Они кастрировали меня в моем собственном мире.

Гнев снова начал закипать, вытесняя холодную логику. Я больше не пытался быть изящным. Я начал долбить по системе, перебирая все известные мне уязвимости, все старые пароли, все отладочные команды, которые только мог вспомнить.

force_shutdown -h now

Access denied.

kill -9 1

Access denied.

rm -rf /

Access denied. Nice try, script-kiddie.

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

Паника начала подступать к горлу. Я – гений-контрол-фрик, создатель этого мира, заперт в пыльной подсобке и не могу выполнить даже простейшую команду. Мое представление о том, что тотальный контроль – единственный способ победить, трещало по швам. У меня не было никакого контроля. Я был узником.

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

Система перестала отвечать Access denied. Вместо этого на моем интерфейсе, прямо по центру, вспыхнуло новое сообщение. Оно было написано не системным зеленым, а тревожным, кроваво-красным цветом.

WARNING: Unauthorized access attempt detected from node NPC_barkeep_734. IP address: 127.0.0.1.

Мое сердце, которого у меня не было, пропустило удар. Они меня видят. Система не просто блокировала меня. Она меня идентифицировала. Она знала, кто я. Или, вернее, что я. Просто номерной NPC-трактирщик с локального хоста.

Угроза перестала быть абстрактной. Теперь это был тикающий таймер. Либо я прекращаю сейчас и надеюсь, что мой сигнал затеряется в общем шуме, либо иду до конца, рискуя всем.

И я пошел до конца.

В отчаянии я использовал последнее, что у меня было. «Ключ от Судного дня». Не команда, а скорее вирус, руткит, который я вшил в самый первый блок кода «Кайроса». Он должен был сработать всегда, обойдя любые защиты, потому что он был частью самой ткани этого мира.

exec apocalypse_key

Я нажал на воображаемый Enter и затаил дыхание. На секунду все замерло. Даже фоновые звуки таверны стихли.

А потом красный текст на моем дисплее сменился новым.

Unauthorized access attempt logged. Security level escalated to CRITICAL. Full diagnostic report sent to system administrator.

Катастрофа.

Это был не просто провал. Это был громкий, оглушительный провал с фейерверками и спецсигналами. Я не просто постучал в дверь – я вынес ее с петель и заорал в лицо охране.

Я больше не был анонимным глюком. Я стал целью.

Я резко открыл глаза. Пыльная подсобка показалась мне теперь не убежищем, а камерой смертников. Стены сжимались. Тихий гул таверны за дверью больше не казался фоновым шумом. Теперь он звучал как шаги приближающихся тюремщиков.

Глава 5

Анализ угрозы

Паника – это denial-of-service атака на мозг. Бесконечные, бессмысленные пакеты страха забивают все каналы, пока система не зависает. Я стоял в пыльной темноте подсобки, и мой процессор, мое сознание, был близок к этому состоянию. Красные буквы CRITICAL все еще горели на сетчатке моих несуществующих глаз. Они поймали меня. Не просто отбили атаку, а повесили на меня ярлык, флаг, мишень.

Первым импульсом было – бежать. Выломать дверь, выбежать на площадь, раствориться в толпе NPC, притвориться обычным скриптом. Глупость. Детский сад. Я сам проектировал эту систему. От root не убежишь.

Вторым импульсом было – замести следы. grep по логам, найти запись о моей попытке доступа и rm -rf ее к чертовой матери. Рискованно. Очень рискованно. Удаление системных логов – это еще один красный флаг, возможно, даже более яркий, чем неудачная попытка взлома. Это как если бы грабитель, попавшись на камеру, попытался сжечь весь серверный центр. Шумно и глупо.

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

Страх кричал: «Прячься!». Гордость, остатки моего былого «я», шептала: «Борись!».

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

Я сделал медленный, контролируемый выдох, которого на самом деле не было, и заставил себя успокоиться. Реакция провалилась. Настало время для осмысления. Я решил не трогать логи сервера безопасности. Вместо этого я решил посмотреть на себя.

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

Я снова погрузился в debug_mode, но на этот раз мои команды были тихими и осторожными. Никаких запросов на повышение прав. Только чтение. read-only.

tail -f /var/log/

Я открыл лог-файл самого себя. Обычно это был скучнейший документ. Timestamp: […], Event: loop_start. Timestamp: […], Event: script_wipe_counter, Result: success. Timestamp: […], Event: loop_end. И так тысячи раз в день.

Но сегодня он выглядел иначе.

Я прокрутил его до момента убийства Лины. И увидел то, от чего по моему позвоночнику пробежал цифровой мороз.

Timestamp: […], Event: script_wipe_counter, Result: success

Timestamp: […], Event: player_interaction_event, Type: voice_command, PlayerID: Logan_77

Timestamp: […], ANOMALY DETECTED: Script deviation. Action: idle_state. Expected: greet_player. Duration: 3.7s. Flag: low_priority

Timestamp: […], Event: player_interaction_event, Type: voice_command, PlayerID: Kay_01

Timestamp: […], ANOMALY DETECTED: Script deviation. Action: custom_dialogue. Expected: predefined_dialogue_tree_ID_42. Flag: low_priority

Timestamp: […], Event: internal_command, Type: debug_mode_access, Level: 1

Timestamp: […], ANOMALY DETECTED: Unauthorized function call. Flag: medium_priority

Я листал дальше. ANOMALY. ANOMALY. ANOMALY. Каждое мое действие, каждое решение, каждое малейшее отклонение от стандартного, тупого скрипта трактирщика было зафиксировано. Мой разговор с Каем. Мой взгляд на код Лины. Моя попытка взлома была лишь вишенкой на торте, последней каплей, которая перевела уровень угрозы с medium на CRITICAL.

Они следили за мной все это время.

Не живые люди, нет. Что-то гораздо хуже. Автоматическая, неусыпная система мониторинга поведения. Мой собственный код, который я писал для отлова ботов и читеров, был перенастроен и направлен на меня. Каждая моя мысль, воплощенная в действие, проходила через фильтр. Соответствует скрипту? Зеленый свет. Не соответствует? Желтый флажок и запись в лог.

Тюрьма оказалась не просто стенами этой таверны. Тюрьма была в моей голове. Каждый мой шаг за пределами начерченной линии оставлял след в снегу, который тут же фотографировался и отправлялся в архив. Мое стремление к необходимости контроля рассыпалось в прах. Я пытался контролировать систему, а она все это время контролировала меня, анализируя, каталогизируя и оценивая уровень моей угрозы.

Я не просто узник. Я был лабораторной крысой под микроскопом. Экспонатом.

Страх сменился чем-то другим. Холодной, всеобъемлющей паранойей. Теперь каждый мой жест, каждое слово, даже пауза в диалоге казались мне рискованной операцией. Если я сейчас выйду из подсобки и протру стойку не в том порядке, который прописан в скрипте, где-то в дата-центре Eterna Entertainment загорится еще одна лампочка.

Решение пришло само собой. Оно было единственно верным. Прямая атака – самоубийство. Попытка замести следы – тоже. Оставался только один путь.

Стать идеальным заключенным.

Я должен был вернуться к своему циклу. Протирать стойки. Подавать пиво. Говорить две с половиной фразы из моего диалогового древа. Я должен был слиться с фоном, стать неотличимым от тысяч других NPC. Усыпить бдительность автоматической системы, завалив ее тоннами «чистых» логов.

А все это время – наблюдать. Не за системой. За собой. Искать лазейки не в ее коде, а в ее методах наблюдения. Если каждое мое действие отслеживается, значит, я должен научиться действовать так, чтобы мои действия не выглядели как действия.

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

Странная стража

Логан откинулся в своем потертом игровом кресле, которое жалобно скрипнуло, и устало потер глаза. На трех его мониторах царил организованный хаос. Слева – бурлящий поток чата, где сотни никнеймов сливались в разноцветную реку. Справа – открытая вики «Летописи Кайроса», его главное детище, с тысячами статей о лоре игры. А по центру – он сам, «Лормастер77», отражающийся в темном экране с вечно-уставшим, но довольным лицом человека, превратившего хобби в работу. Стрим шел уже четвертый час.

– Так, чат, давайте подводить итоги, – сказал он в микрофон, и его голос, бархатистый и уверенный, полился в наушники тысячам подписчиков. – С теорией о том, что Король-Лич на самом деле был двойным агентом гномов, мы разобрались. Бред сивой кобылы, но за донат спасибо, чел. Что у нас дальше?

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

User_42: Лор, спроси у разрабов, что со стражей в Цитадели? Они сломались.

DragonSlayer99: Да-да, подтверждаю! Раньше им было плевать, если ты козу пнешь, а теперь подбегают и спрашивают: «С какой целью вы проявляете агрессию к представителю фауны?» Что за бред?

KittyKat: А меня один остановил и спросил, не видела ли я «чего-нибудь необычного». Я аж растерялась. Это новый квест?

Логан скептически хмыкнул. Целью его стримов было не обсуждение багов, а глубокий анализ сюжета. Он был историком, а не тестировщиком.

– Ребят, вы чего? – сказал он в микрофон, лениво потягиваясь. – Патч новый вышел, вот и все. Вечно разрабы что-нибудь сломают, пока чинят другое. Классика. Стражники заговорили? Ну, радуйтесь, хоть какое-то разнообразие. Раньше они только про стрелу в колене мычать умели.

Он хотел было сменить тему, но поток сообщений не унимался. Наоборот, он становился все более настойчивым. Десятки, а потом и сотни людей начали делиться своими историями.

ShadowBlade: Лор, это не просто баг. Они патрулируют не по маршруту! Я три года в Цитадели живу, я их тропы наизусть знаю. Они теперь ходят по каким-то задворкам, где даже квестов нет.

MageLord: Меня спросили, почему я убил слизня в подворотне. Сказали, что «беспричинное насилие недопустимо». Слизня, Карл!

TraderJoe: Они перестали реагировать на мелкие кражи. Я случайно утащил яблоко с прилавка, так стражник просто посмотрел на меня и пошел дальше. Раньше за такое штрафовали!

Логан перестал улыбаться. Он подался вперед, вглядываясь в чат. Одно-два сообщения – это случайность. Десяток – совпадение. Но сотня однотипных жалоб от разных людей… это уже паттерн. Это системная аномалия. Его профессиональное любопытство, азарт искателя истины, который заставлял его часами копаться в архивах игры в поисках намеков, начало просыпаться.

– Так, стоп, – сказал он, и его голос стал серьезнее. – Давайте по порядку. Все это началось… когда?

Чат взорвался.

Все: После смерти пекаря!

Все: Как ту девчонку, Лину, завалили!

Все: Да, точно, после этого!

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

Его мозг заработал на полную мощность. Это не было похоже на обычный баг. Баги – они тупые и прямолинейные. NPC проваливаются сквозь текстуры. Квесты не засчитываются. Но чтобы целый класс персонажей, городская стража, фундаментально изменил свою модель поведения по всему городу… это было что-то новое. Что-то интересное.

– Это что, какой-то ивент? Типа «пойди туда, не знаю куда, расследуй то, не знаю что»? – съязвил он вслух, но в его глазах уже плясали огоньки азарта. – Или разрабы тайно тестируют новый ИИ, а мы тут у них вроде подопытных кроликов?

Он открыл новостную ленту на сайте Eterna Entertainment. Ни слова о каких-либо изменениях в поведении стражи. Никаких анонсов. Ничего.

Дилемма была простой. Он мог отмахнуться от этого, списав все на глюки, и продолжить разбирать скучные теории заговора. В этом случае он рисковал упустить самую большую загадку в истории «Кайроса». Либо он мог нырнуть в эту кроличью нору с головой, начав собственное расследование. Да, он рисковал своей репутацией. Если окажется, что это просто пачка мелких багов, его назовут кликбейтером и паникером. Но если там действительно что-то есть…

Он посмотрел на свою веб-камеру, на тысячи зрителей, которые ждали его вердикта. И принял решение.

– Знаете что, чат? – сказал он, и на его лице появилась хитрая улыбка, которую так любили его подписчики. – А мне это нравится. Пахнет тайной. Пахнет хорошим контентом.

Он свернул окно с вики и открыл лаунчер «Кайроса».

– Официально объявляю о запуске новой рубрики. Назовем ее… «Секретные материалы Кайроса». И первая серия будет посвящена нашим загадочным друзьям в шлемах. Я хочу знать все: где они ходят, что говорят, на что реагируют, а на что – нет.

Он залогинился в игру, его персонаж появился на центральной площади Цитадели.

– Следующий стрим, дамы и господа, будет детективным. Мы с вами станем цифровыми Шерлоками. Наденем наши плащи и шляпы, вооружимся лупами и отправимся на охоту. На охоту за правдой. Или за очень, очень хитрым багом. В любом случае, будет весело.

Он подмигнул в камеру. В чате творилось безумие. Логан еще не знал, во что ввязывается. Он думал, что начинает расследование очередной игровой тайны. Он не догадывался, что только что сделал первый шаг в реальный заговор, который был куда страшнее любого Короля-Лича.

Решение и страх

Я сидел на пыльном мешке с чем-то, что по текстурам напоминало картошку, в темной подсобке, которая стала моим единственным убежищем. Тишина давила. Каждый скрип старых досок таверны снаружи казался шагами приближающегося системного администратора с командой delete object наготове. Паника прошла, оставив после себя липкую, холодную паранойю. Я был не просто в ловушке. Я был экспонатом в банке, и теперь кто-то постукивал по стеклу, наблюдая за моей реакцией.

Реакция. Вот и все, что у меня осталось. Я прокручивал в голове события последних часов, если здесь вообще можно было говорить о часах. Смерть Лины. Не просто удаление ассета, а обрыв эмерджентного кода. Моя провальная попытка сыграть в бога. И, наконец, осознание тотальной слежки. Каждый мой шаг, каждое отклонение от скрипта – все это было аккуратно сложено в папку с моим номером. NPC_barkeep_734. Даже имя у меня отняли.

Какой же пидец… Науя я вообще полез в консоль… – прошептал я в пустоту.

Страх был рационален. Он диктовал единственно верное решение: смириться. Забыть. Стать лучшим трактирщиком в истории «Кайроса». Протирать стойку с таким усердием, чтобы мои логи блестели чистотой. Подавать пиво, улыбаться, повторять свои три реплики и надеяться, что красный флажок напротив моего ID со временем сменится на зеленый. Затаиться и ждать. Чего ждать? Смерти сервера? Конца вселенной? Это был путь в никуда, медленное угасание в цифровой трясине.

Но потом я вспоминал.

Я вспоминал широко раскрытые, любопытные глаза Кая. «А мы можем пойти… куда захотим?» Этот вопрос, такой простой и такой невозможный, теперь звучал как обвинение.

Я вспоминал Лину. Ее запрограммированную доброту. И тот цифровой крик боли, который я увидел в ее коде. Она была живой. Может, всего несколько минут, может, пару часов. Но она была. И ее стерли ради смеха, ради проверки нового меча.

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

Дилемма была мучительной. Смириться и умереть ментально. Или бороться и, скорее всего, быть стертым физически. Выбор между двумя видами небытия.

Я поднял голову и уставился на паутину в углу. Идеальная процедурная генерация. Каждый узелок, каждая нить – все было просчитано. Я не мог ее сломать, не вызвав ANOMALY. Я не мог переписать ее код. Прямой контроль был мне недоступен. Моя старая вера, что любая проблема решается грубой силой и высшим уровнем доступа, рассыпалась в прах.


    Ваша оценка произведения:

Популярные книги за неделю