Петербург утопал в октябре.
За окном с хрипом плескался дождь, как будто сам город пытался смыть усталость с облезших фасадов. Потёки воды стекали по стеклу, превращая улицу в рябь, словно мир за пределами окна был всего лишь текстурой — плохо прогруженной, унылой, как фон в старой игре.
В комнате пахло пылью и пластиком.
Тёплый свет от монитора ронял бледные отблески на стопку старых тетрадей, развалившийся диван и стену, завешанную постерами — Half-Life, Doom, Metroid Prime. Они были как обереги, остатки детства, застывшие пиксели прошлого, в которых я искал смысл. Я сидел за компьютером, согнувшись, словно сам становился частью этой техники — ещё одной машиной, включённой в бесконечный цикл.
Мне было четырнадцать.
По паспорту — подросток. По ощущениям — процессор на грани перегрева. В школе — призрак. В семье — старший брат, не справляющийся с ответственностью. В интернете — Макс. Просто Макс. Парень, который может переписать механику любой мини-игры в Roblox и взломать Lua-скрипт за полчаса.
Передо мной — открытый код проекта.
Очередная попытка создать свою аркаду: лабиринт из неоновых коридоров, гличевые враги, баг, превращающий босса в пчелу — по моей задумке, конечно. Но всё казалось каким-то... плоским. Не хватало того, что нельзя прописать в скрипте. Ошибки, которые живут своей жизнью. Таинства, которым нельзя дать переменную.
Я щёлкнул по вкладке. Сохранить. Закрыть.
Пальцы дрожали не от холода — от усталости, от ощущения, что я тону в повторении. Дом-учёба-код. Никого рядом. Мама — на второй смене в аптеке. Лёха, младший брат, у бабушки. Без него в комнате было слишком тихо. Обычно он болтал без остановки, забирался ко мне на стул, смотрел, как я пишу скрипты, и говорил:
— Ты как волшебник, Макс. Только без бороды.
И смеялся. Этот смех... его не хватало.
Я снял очки, протёр линзы футболкой и снова уставился на экран.
Там, среди вкладок, я заметил одно окно, которого не открывал. Оно всплыло поверх всех, как будто его кто-то подкинул мне специально. Чёрный фон. Зелёный монохромный текст, как в старых терминалах.
ПРИГЛАШЕНИЕ НА СЕРВЕР: [ТОЧКА ВОЗВРАТА]
Доступ ограничен. Подключиться?
[ДА/НЕТ]
Я моргнул. Щёлкнул по диспетчеру задач. Пусто. Никаких сторонних процессов. Ни Discord, ни браузера, ни терминала. Только редактор кода.
Это была шутка? Вирус? Кто-то внедрил мне баннер в проект?
[ДА] курсор мигал. Притягивал. Как будто знал, что я не устою.
Я мог бы закрыть всё. Сделать скриншот, выложить на форум. Пожать плечами.
Но я — не мог. Я чувствовал, как в груди нарастает что-то странное. Тянущее. Как баг в старой игре, где ты вдруг находишь дверь, которой не должно быть. И проходишь в неё.
Клик.
Сначала — ничего. Потом — звук.
Низкий гул, похожий на включение старого монитора. Экран мигнул и стал чёрным. Затем появилась загрузочная строка: прогресс-бар в стиле 80-х, пиксель за пикселем заполняющий экран. По динамикам прошёл шум — смесь модемного пищания, электрического треска и.… шёпота.
Я ощутил мурашки.
Нет, не просто из-за звука. Что-то в этом было неправильным. Как будто шёпот был не фоном, а речью. Я не разобрал слов, но у меня возникло отчётливое ощущение, что кто-то знал моё имя.
Я натянул шлем VR.
Старый, потёртый, купленный на Avito за пару тысяч. Один объектив чуть замылен, ремешок вечно сползает, но я любил его — не за характеристики, а за ощущения. Он был... честным. Как мои старые консоли, на которые можно дышать пылью, но не дышать надеждой.
Подключение пошло почти сразу. Экран вспыхнул.
Мир не загрузился — он вспыхнул, словно прорезался сквозь ткань реальности. Пиксели, неон, световые всполохи.
Интерфейс висел перед глазами: полупрозрачный, словно написанный на неизвестном языке. Ни меню, ни списка серверов, ни чата. Только символы, похожие на древние глифы, и трещащая тишина.
Мой аватар стоял посреди пустоты.
Он был похож на меня — но искажён. Как будто кто-то нарисовал меня в пиксель-арт стиле и забыл закончить. Глаза мерцали, одежда переливалась кодом, который тек по текстурам.
Я попытался вызвать меню — ничего. Ни паузы, ни настроек.
Тогда прозвучал голос.
«Пользователь 0x4D6178. Добро пожаловать. Синхронизация начата.»
Он был не голосом — а слепком голосов. Металлический, будто склеенный из обрывков речи. И в нём была пауза... как у того, кто думает. Искусственно. Но осознанно.
Я дёрнулся. Хотел снять шлем. Но не смог.
Руки — не слушались. Я даже не чувствовал пальцев.
На экране возникла новая панель:
КОДОВАЯ ЦЕЛОСТНОСТЬ: нестабильна
СИНХРОНИЗАЦИЯ СОЗНАНИЯ: активна
СЛОМАННЫЙ ПРОТОКОЛ.
Я закричал. Или хотел. Горло не отзывалось. Только в голове зазвенело. Как будто мой разум начали перезаписывать.
Мир треснул.
Экран залило красным. Не свет — код. Потоки символов, сливающиеся в кровь. Я чувствовал их в черепе — словно кто-то впаивал строку за строкой прямо в мысли.
«Ты готов переписать реальность?» — спросил голос.
Я не знал. Не был. Но ничего уже не зависело от меня.
Комната исчезла. Монитор, полки, тетрадь с лабиринтом — всё поглотила пустота. Я падал.
И где-то в этом падении услышал свои шаги — не в игре. В квартире.
И голос в наушниках, но уже совсем рядом, почти человеческий:
«…что-то здесь не так…»
Я очнулся. Резко, с шумом в ушах.
Комната — моя, но будто слегка смещённая, как JPEG с неправильной компрессией. Всё было на месте: тетрадка на столе, Sega на полке, плакат с «Гордоном Фрименом» на стене. Но угол зрения... дрожал.
Я лежал на полу. Шлем валялся рядом, экран погас. Ремешок запутался в проводах.
Свет от монитора мигает — как от неисправных флюоресцентных ламп. Я с трудом поднялся, ощущая тяжесть в висках. Сердце било тревогу. Голова гудела, как будто в неё встроили кулер.
Экран компьютера был чёрным. Только курсор мигал в углу.
Один. Два. Три мигания. И — строка:
ПОДКЛЮЧИТЬСЯ СНОВА?
[ДА / НЕТ]
Я не шелохнулся. Внутри — вихрь. Ужас. Любопытство. Тупое осознание, что всё это могло быть сном, перегревом, глюком. Я зажал руками виски. Кожа там горела, как после ожога.
Но... нет. Это не был глюк.
Я чувствовал код. В голове. Где-то глубоко, как привкус на языке. Как эхо команды, которую уже не отменить.
Из наушников на столе донёсся слабый, еле различимый шорох.
Сначала я подумал, что это просто статический шум. Но потом...
«...тебя выбрали...»
Голос. Шёпот. Те же интонации, что в шлеме. Он звучал так, будто ему мешали помехи времени. Я отшатнулся, задел кружку — она упала, но звук разбитой керамики произошёл с запозданием, на полсекунды позже. Как будто мир догонял сам себя.
Я встал, подойдя к окну.
Дождь. Петербург, унылый, серый, настоящий. Но в отражении стекла я увидел себя — с искажённым лицом. Пиксели. На щеке. Пробежали, как рябь. Я моргнул — отражение стало обычным. Но я уже знал: это просачивается.
Стук. В коридоре.
Один шаг.
Пауза.
Второй.
Словно кто-то шёл по лужам, нарочно громко, нарочно медленно.
Я замер.
За дверью — только пустота. Мама должна быть на работе. Лёха у бабушки. Ни у кого нет ключей. Я медленно подошёл, не дыша.
И тогда на мониторе появилась новая строка.
ПРОТОКОЛ ЗАПУЩЕН.
ТОЧКА ВОЗВРАТА: АКТИВИРОВАНА.
Экран стал зелёным. Шрифт побежал вниз, как в Matrix. Я узнал один фрагмент — часть моего собственного скрипта. Только модифицированный. Усовершенствованный. Не мной.
В коде промелькнули мои данные: имя, IP, даже строка из письма Лёхи, которое я хранил в черновиках. Кто-то — или что-то — получил доступ ко всему. Даже к личному.
И внизу снова появился выбор:
[ПОДКЛЮЧИТЬСЯ]
[ОТКАЗАТЬСЯ]
Пальцы дрожали. Я сделал шаг назад. Но... всё уже было решено.
Я посмотрел на шлем. Он лежал на полу, чуть потрескавшийся, но целый. Ждал. Как старый друг. Как вратарь на рубеже между мирами.
Я не знал, что произойдёт дальше. Но что-то во мне — что-то, что всегда жаждало понять, как всё работает изнутри — уже тянулось к нему.
Шаги в коридоре остановились. Теперь — тишина. Но она звенела, как на грани сбоя.
И тогда я сказал себе:
«Если это баг… я его найду. Если это ловушка — перепишу правила.»
Я надел шлем.
Экран ожил. Словно рад.
Перед глазами — белый свет.
Затем — строка:
СИНХРОНИЗАЦИЯ ПОЛНАЯ.
ДОБРО ПОЖАЛОВАТЬ, МАКС.
И я исчез.