Александр Конаков
Маг из метро

Глава 1

Кристалл и Люся

Москва ноябрьским вечером напоминала размазанную акварель – серую, влажную и безнадежно скучную. Алексей Ковалёв, высокий, сутулящийся, словно вечно нёс на плечах невидимый груз бессонных ночей и неработающего кода, яростно колотил по рулю своего «Жигуля» шестой модели.

– Ну давай же, заводись, старушка! – бормотал Алексей, в который раз поворачивая ключ зажигания. – Я же тебя кормлю, пою, даже имя дал – "Люся". Хоть раз отплати мне добром!

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

– Ладно, – Алексей вылез из машины и пнул колесо, но тут же пожалел – кроссовок был новым. – Ты довольна? Ты добилась своего! Но запомни: когда я разбогатею на крипте, я куплю себе Теслу, а тебя сдам в музей советского автопрома! В отдел "Ужасы XX века"!

На улице моросил дождь – не романтичный осенний дождик, а противная морось, превращающая тротуары в болото, а людей – в злых, мокрых существ, мечтающих лишь о горячем чае и сухих носках. Алексей застегнул потрёпанную кожаную куртку, зарылся глубже в шарф и зашагал к метро, привычно теребя мочку левого уха и мысленно составляя список дел: починить кофеварку, разобрать старый ноут (или выкинуть уже бедолагу?), покормить кота Барсика, который, наверное, уже сидит на холодильнике и смотрит на дверь с выражением: «Ну где же ты, недостойный слуга?»

Вагон поезда в метро встретил его толпой, духотой и странной девушкой, читающей книгу с драконом на обложке. «Магия хаоса: теория и практика» – золотые буквы поблёскивали в свете ламп.

Девушка в метро читает книгу о теории хаоса? Судя по её прическе – она уже практиковалась.

Поезд дёрнулся и начал набирать скорость. Алексей понуро опустил голову вниз, положив локти на колени. Как же все надоело. Может это и есть то самое страшное, что может произойти с программистом – выгорание?

И вдруг у его ног что-то блеснуло.

Маленький кристалл, мутный, с трещиной, но… странно тёплый. Алексей осторожно поднял его, воровато озираясь, будто нашел «косарь» и боялся, что это кто-нибудь увидит. Казалось, внутри кристалла застыло северное сияние – переливы голубого и фиолетового, а на одной из граней кто-то выгравировал крошечного дракончика с хитрой улыбкой.

– Чей-то талисман? – пробормотал он и сунул находку в карман куртки.

Дома Барсик, чёрный, как ночь без интернета, тут же уткнулся носом в находку и издал звук, полный скепсиса:

– Мррр?

– Не знаю, дружище, – Алексей повертел кристалл в пальцах. – Но пахнет… грозой.

Ковалев сидел перед компьютером, со спущенными до колен джинсами (потому что «дома можно»), и уже, черт знает сколько времени вертел странную находку в руке. И если бы не кот, настойчиво требовавший кормёжки, он бы мог так просидеть и до полуночи.

– Ладно, морда, пошли пожрем.

Наскоро перекусив оставшимися со вчера макаронами с сосиской и вывалив коту пол банки паштета, Алексей вернулся за компьютер. А точнее – к созерцанию кристалла.

Он протёр камень, покрутил его перед монитором, поковырял ногтем и вдруг кристалл открылся. Нет, не так. С него слетела крышечка, обнажившая вполне себе современную флэшку USB 3.0. Ковалев, как настоящий айтишник, много раз говорил невеждам о том, что самые небезопасные связи – это связи твоего компьютера с неизвестным устройством. Подумал он об этом и сейчас. Недолго. А затем воткнул флэшку в порт.

– Ну-ка, что ты за зверь такой…

Экран дрогнул. Выскочило окно:

[Обнаружено неизвестное устройство]

[Запустить? (Да / Нет)]

Алексей усмехнулся:

– Ну конечно, «неизвестное». А вдруг это вирус? Или криптомайнер? Или… Черт, неужели он и правда нажмет…

Он щёлкнул «Да».

Мир взорвался.

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

– Что за…

Комната распалась на куски. Пол ушёл из-под ног, и Алексей полетел вниз, в воронку из света и странных символов, мелькающих перед глазами. Последнее, что он успел подумать:

– Отмена! Ctrl+C! Отмена!!!

Очнулся он на мостовой, выложенной светящимися плитками. Над головой плыли шары с танцующими рунами вместо ламп, а в небе кричала… птица? Нет, это было похоже на ожившую оригами-фигурку, сложенную из пергамента и лунного света.

– Сон? – Алексей поднялся, потирая затылок. – Если да, то слишком уж детализированный…

В кармане что-то жгло. Кристалл – флэшка. Он был цел, но теперь дракончик на его грани… подмигнул?

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

Неожиданно рядом заморгал уличный фонарь. На его поверхности замигали странные символы:

[ОШИБКА]

[Исправить? (Да / Нет)]

Алексей рассмеялся:

– Ну конечно же «Да»!

Он ткнул пальцем, и фонарь вспыхнул ярче прежнего.

– Эй! – Алексей окликнул прохожего в остроконечной шляпе. – Где я? Это что, розыгрыш?

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

– Чужестранец! – раздался за спиной гневный голос, заставив программиста вздрогнуть. – ты заменил автоматическую сериализацию1[1] объекта ручной!

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

– По закону главы 5766! – прогремел бородач впереди.

– 5766? – Алексей фыркнул. – «Ошибка сериализации»? Очень смешно.

– Молчать, нарушитель! Ты сломал и будешь отвечать!

– Я ничего не ломал! Я вообще тут случайно! Меня эта штука, – он ткнул пальцем в кристалл, – перенесла сюда!

Маги переглянулись.

– Он признался! – воскликнул один.

– Использует запрещённые артефакты! – добавил второй.

– Сжечь! – заключил третий.

– Эй, парни, давайте обсудим! – Алексей отступил на шаг. – Может, чаю попьём? Кофе? У меня есть… э-э… печеньки…

Но было поздно. Один из магов взмахнул посохом – и в воздухе зашипела зелёная молния.

Бежать или попробовать договориться? Алексей выбрал первое.

– Стой! – закричали вслед.

Алексей рванул в ближайший переулок на ходу теребя мочку уха (проклятая привычка при стрессе!), а за спиной уже свистели искры магии, пахнущие жжёным попкорном.

«Ну вот, – подумал он, перепрыгивая через ящик с какими-то светящимися грибами. – Теперь я в сказке. Или в игре. Интересно, у меня много стамины? А респаун есть?»

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

– Чёрт, где тут логика?! – мелькнуло в голове, пока он петлял между разноцветными домиками.

А маги тем временем кричали ему вдогонку:

– Вернись, преступник!

– Не-а! – Алексей уже сворачивал за угол. – Я в «Жигуле» хоть знаю, что делать, когда она не заводится! А с вами…

Он не договорил.

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

– Ого, динамический рельеф!

В последний момент он прыгнул в сторону, ухватившись за свисающую с балкона верёвку с прищепками (которая, как оказалось, была живой). Верёвка завизжала и дёрнулась, но он уже качнулся и приземлился на крышу ларька с вывеской «Зелья & Кодинг».

– Эй, чужака поймать не можете? – крикнул кто-то снизу.

Алексей не стал отвечать – вместо этого схватил валявшийся на крыше медный чайник и швырнул его в ближайшего мага. Тот чиркнул посохом, и чайник на лету превратился… в облако бабочек.

– Серьёзно?!

Но бабочки внезапно рванули к лицу мага, яростно затрепыхав крыльями. Тот закашлялся и принялся яростно отмахиваться.

Ага, значит, здешняя магия реагирует на намерение, а не на физику!

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

Он прыгнул вниз, кубарем прокатился по тротуару (Барсик бы гордился!) и влетел в узкий проход между домами. На бегу тыкая в «кнопки» на фонарях, вызывая тем самым то вспышки света, ослепляющие погоню, то внезапные порывы ветра, срывающие с магов шляпы.

– Прекратите ломать городские заклинания! – орал бородач.

– А вы прекратите гоняться, тогда и чинить не придётся!

Последний фонарь в переулке мигал красным – [WARNING: SYSTEM FAILURE]. Алексей пнул его ногой со всей силы.

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

Чудовище рыкнуло, развернулось… и уставилось прямо на магов.

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

>> Подключение к сети "Алгокодск" установлено. Доступ: гость.

– Что?!

Но разбираться было некогда – где-то позади уже раздавались взрывы, крики и довольное урчание электрического дракона…

Электрический дракон, размахивая хвостом из искр, с громким "404 ERROR: TARGET NOT FOUND" разогнал магов по соседним переулкам. Алексей, пользуясь моментом, юркнул в первую попавшуюся дверь – и очутился в помещении, напоминавшем не то лавку старьёвщика, не то свалку электроники из будущего.

– Ну и интерфейс у вас тут… – пробормотал он, разглядывая полки, заставленные кристаллами с надписями «v1.2», «beta» и одним особенно потрёпанным – «Windows ME».

Из-за стойки поднялась фигура в рваном плаще, усыпанном светящимися пикселями.

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

– Э-э… У вас тут Wi-Fi есть? – автоматически спросил Алексей.

– Ха! – «продавец» хлопнул по стойке, отчего та вспыхнула голубым. – У нас тут мана раздаётся только по подписке! Но для тебя… – он прищурился, – есть кое-что интересное.

Достал из-под прилавка чёрный ящик с рунической надписью: «Беспроводной магический адаптер: Mana_Bluetooth_v3.1».

– Подключается к кристаллу. Позволяет колдовать без этих дурацких жестов.

– Серьёзно? – Алексей потрогал пальцем трещину на корпусе. – А лицензия есть?

– Лицензия?! – старик фыркнул. – Парень, ты в Алгокодске! Здесь если заклинание работает – значит, легально!

За дверью внезапно раздался грохот – дракон, видимо, добрался до чего-то взрывоопасного.

– Ладно, беру! – Алексей сунул руку в карман, но вместо кошелька нащупал кристалл. Тот пульсировал, как перегретый процессор.

– О-о, так ты тот самый… – старик вдруг заулыбался. – Тогда держи в подарок от Теодора.

– Спасибо… – растерянно пробормотал Ковалев.

Грохот за дверью перешёл в рёв.

– Беги, парень! Они же тебя по главе 404 ищут!

Алексей выскочил в переулок, где фонари, словно сбросившие все ограничения, плясали в ритме техно. Кристалл в кармане вдруг прошипел: Обнаружена новая сеть: «Undercity_WiFi». Пароль: «admin123». Подключиться?

– Ну хоть что-то знакомое… – он мысленно ткнул «Да» и рванул в сторону, где в небе мигал огромный… «синий экран смерти» с надписью: «Критическая ошибка в модуле sky_render.dll».

За спиной послышался тонкий голос:

– Эй, айтишник! Сюда, если хочешь выжить!

Ковалев резко затормозил и обернулся. Из канализационного люка торчала рука в перчатке с пиксельным узором: Внимание: неизвестный процесс предлагает доступ. Разрешить? (Y/N)

– Чёрт с вами, – вздохнул Алексей. – Y.

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

Соединение установлено. Добро пожаловать в подполье, юзернейм: «Лекс_из_Москвы».

Глава 2

Крипто-коты и где они обитают

Люк захлопнулся с глухим «чпоньк» – звуком, знакомым любому, кто хоть раз ронял телефон на кафель в ванной. Алексей кувыркался в темноте по скользкому тоннелю, пахнущему перегретыми свечами и чем-то неуловимо напоминающим школьный компьютерный класс после уроков информатики.

– Приземляйся уже, новичок! – раздался из ниоткуда звонкий женский голос.

Алексей шлёпнулся на груду странных подушек – одни шипели, как змеи, другие тихонько напевали мелодию из «Игры престолов».

Перед ним стояла девушка, и Ковалёв замер. Не то чтобы у него никогда не было девушек, но, чтобы такой!

Невысокая (каких в народе называют «полторашки»), с плавными линиями тела, будто нарисованными идеальным алгоритмом, она казалась одновременно реальной и цифровой галлюцинацией. Её лицо – с высокими скулами, чуть раскосыми глазами и мягкими губами, тронутыми голографическим блеском, – напоминало интерфейс, в который хочется вглядываться вечно. Кожа светилась едва уловимым мерцанием, словно под ней бежал поток данных, а в глазах, как в глубине мониторов, плясали зелёные и синие пиксели. Ну или как-то так. Алексей был айтишником до мозга костей, и других ассоциаций не знал. Одно он знал точно – вот он, его идеал красоты.

На ней был плащ, сотканный из мерцающих фрагментов экранов – летающие рыбки сменялись бесконечными туннелями Windows 98, а у локтя зависла надпись «99,9%…», будто сама реальность вокруг неё догружалась в реальном времени.

– Зера, капитан команды «Крипто-Котов», – представилась она, и её улыбка вспыхнула, как уведомление. Пальцы с ногтями, покрытыми миниатюрными бинарными кодами, погладили полумеханического питомца на плече.

Тот выглядел как помесь кота и ретрокомпьютера: треугольные уши-радиаторы, лапки с клавишами WASD вместо подушек, хвост – скрученный HDMI-кабель. «Байт», – урчал он, и звук напоминал смесь кошачьего урчания и жужжания кулера.

– Это он так здоровается и одновременно представляется, – засмеялась Зера. – А это наша мастерская. Не суди строго – серверная у нас в другом конце пещеры.

Алексей озирался по сторонам. Пещера напоминала гибрид алхимической лаборатории и офиса стартапера: на стенах висели «магические схемы» – пергаменты, где между рун вкраплялись знакомые символы: «if», «else», стрелочки и даже смайлик в уголке. В углу стоял кристальный шар, опутанный проводами. На нём висела табличка «Не трогать! Идёт загрузка мира!». По каменному полу бегал крошечный дракончик из голубого огня, гоняясь за собственным хвостом и периодически выдавая ошибки на латыни.

– Вы… программируете магию? – осторожно спросил Алексей.

Тощий паренёк с взъерошенными волосами (Тим, как позже выяснилось) фыркнул:

– Мы её оптимизируем. Эти болваны из Гильдии до сих пор используют заклинания, которые требуют десяти жестов, трёх мантр и жертвенного печенья, чтобы вскипятить чайник!

Он швырнул Алексею странный предмет – нечто среднее между палочкой и USB-шнуром.

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

Алексей нажал кнопку.

Из устройства вырвался луч света и.… испепелил стоявший в углу кувшин.

– Ой, – сказал Тим. – Это была бета-версия. Ничего, пару тестов – и всё исправим. Отдай обратно.

– Суть в том, – вмешалась Зера, – что ты, судя по всему, воспользовался пиратским ПО или даже заразным. – Она ткнула пальцем в его карман, где лежал злополучный кристалл. – И «бум» – наш мир «покачнулся» или «треснул», образовав разлом. Или понятнее – случилась ошибка компиляции. И теперь Гильдия хочет тебя либо сжечь, либо заставить всё починить, а может и подчиниться.

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

Где-то сверху раздался лай – но не обычный, а такой, будто кто-то трясёт мешок с хрустальной посудой.

– О, за тобой отправили магических гончих, – присвистнула Зера. – Тебя считают за серьезную угрозу, гордись. Что до собачек – считай, это как антивирусная программа, только кусается.

Алексей вновь тихо охнул. Он вообще начал догадываться, что охать ему придется часто и желательно про себя. Дурдом какой-то. Всё это напоминало его последний рабочий проект – когда начальник потребовал «сделать новый ТикТок», но так, чтобы выглядел, как старый. Только новый.

– Ладно, – наконец решился Алексей. – Что мне теперь делать?

В этот момент механический кот на плече девушки вдруг зашипел, его глаза вспыхнули красным, и из пасти вырвалось предупреждение:

«ВНИМАНИЕ! АКТИВИРОВАН МАГИЧЕСКИЙ СКАН!»

– Охренеть, – пробормотал Ковалев. – У вас даже питомцы ведут себя, как джуны…

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

– Добро пожаловать в подполье, программист. Теперь ты – наш баг-хантер.

(Где-то в темноте дракончик-ошибка радостно чихнул искрами, складывающимися в слово «FATAL».)

Алексей споткнулся о валявшуюся на полу «мышку» – в буквальном смысле: маленький грызун с хвостом-проводом, который возмущённо запищал и убежал в дыру в стене.

– Вы вообще понимаете, что я тут случайно? – он вытер пот со лба. – Вчера я был обычным программистом, а сегодня меня уже хочет поджарить какая-то Гильдия…

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

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

В пещере вдруг стало тихо. Даже дракончик-ошибка перестал чихать искрами.

– Послушайте, – Алексей сжал в кулаке флешку, не вынимая ее из кармана, – если это какой-то розыгрыш…

– Мы бы так не парились, – Зера швырнула ему в лицо какой-то предмет. Он поймал – это оказалась коробочка с надписью: «Магические сухарики. Без добавления натурального хлеба». – Ты не первый, кто приходит через Разлом.

– Разлом?

– Дыры в реальности, – Тим щёлкнул пальцами, и в воздухе возник голубоватый экран с трещинами. – Когда магия «глючит», иногда затягивает людей из других миров или времен. Обычно это алхимики или инженеры. Один парень даже притащил чертёж «паровой телеги» …

– Но ты… особенный, – Зера вдруг оказалась в сантиметре от его лица. Точнее, так бы и было, если бы она таскала за собой табуретку. Её глаза странно мерцали, как два заблокированных монитора. – Кристалл выбрал тебя. А значит, Гильдия уже выложила за твою голову столько золота, что можно купить три королевства, девственность принцессы и ещё дракона в придачу. А возможно и осла.

Где-то сверху снова раздался хрустальный лай – гораздо ближе.

– Почему вы мне помогаете? – Алексей сунул коробку в карман.

– Потому что… – Зера вдруг смущённо замолчала.

– Потому что мы тоже когда-то были «чужими», – тихо закончил за нее Тим.

Внезапно механический кот на плече Зеры вздыбил шерсть и зашипел:

«ALERT! МАГИ РЯДОМ! БЕГИ ИЛИ УМРИ!»

– Время кончилось, – Зера резко схватила Алексея за руку. – Тебе нужно к Скрипт-Кудам. Они единственные, кто может расшифровать твой кристалл.

– А где они?

– В Трущобах Глитчей. Ищи дом с горящим окном, которое не горит.

Тим сунул ему в другую руку «Волшебный кликер»:

– Вроде починил. Но используй только в самом крайнем случае! И никому не показывай кристалл! Даже…

Грохот сверху заглушил последние слова. Каменный потолок вдруг осыпался пылью.

– Беги! – крикнула Зера, толкая его в узкий лаз. – И запомни: всё можно починить! Мы сами найдём тебя!

Алексей нырнул в темноту, а последнее, что он услышал, был возглас Тима:

– И не соглашайся на обновления! Это ловушка!

Лаз захлопнулся за его спиной.

(Где-то позади, механический кот грустно мяукнул: «Соединение прервано…»)

Глава 3.

Прикольная голова

Алексей вывалился из узкого лаза, едва не приземлившись лицом в кучу хрустального мусора. Перед ним раскинулся странный квартал, где обломки голубоватых кристаллов смешались с ржавыми шестеренками и оборванными проводами. Воздух шумел низким гудением, словно где-то рядом работал огромный сервер. Ветер шевелил обрывки пергаментов с полустёртыми рунами, которые цеплялись за выступы домов, как забытые стикеры на мониторе. Дома здесь словно росли, а не были традиционно построены, как кристаллические грибы после дождя – одни слеплены из осколков голубоватых минералов, другие будто собраны на скорую руку из ржавых шестерёнок и проводов. Где-то в глубине переулка мерцала неоновая вывеска, мигая, как битый пиксель: «#include <magic.h>».

– Эй, великан, не задерживайся на выходе! – раздался голос позади. Алексей едва успел отпрыгнуть, как мимо него пронесся мальчишка лет двенадцати в потрепанной мантии. На спине у него болтался деревянный ящик с надписью: "Магическая доставка. Доставляем заклинания быстрее багфикса!". Великан? Не такой уж я и высокий, почему-то обиделся Лёха. Это вы тут все… полторашки.

Под ногами шуршало. Алексей отпрыгнул – маленький грызун с хвостом-проводом сердито запищал и юркнул в дыру в стене.

«Иди в Трущобы Глитчей», – вспомнил он слова Тима.

Вот только, один небольшой нюанс. А где это? Хоть бы карту нарисовали. Или ориентир какой подсказали.

– Артефакт обнаружен!

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

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

Кристалл сам вырвался из кармана Алексея и завис в воздухе, медленно вращаясь.

– По протоколу шесть-шесть-шесть: изъять и отладить.

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

Алексей почувствовал, как невидимые нити сковывают всё тело.

Когда его затолкали в странную повозку, похожую на серверный шкаф с колесами, рядом сидел совсем юный маг. Может, кто-то вроде подавана?

– Не бойся, – прошептал юнец, пока старшие обсуждали маршрут. – Это всего лишь Квартал Глитчей. Неплохой район, если не считать мышей с проводами вместо хвостов.

О как! Так я получается, совсем рядом с нужным местом был? Или нет? Надо попробовать уточнить у юного подавана.

Повозка тронулась, и мальчишка, представившийся как «послушник третьего уровня Гильдии Магов», принялся наперебой рассказывать:

– Вон там Рынок «Бит и Байт» – лучшее место купить заклинания без вирусов. А это Мост через «Реку Синтаксиса» – смотри, как рыбы-скобки прыгают!

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

– А вон там, видишь башни с вращающимися лопастями? Это Форт-Кодекс, главная цитадель Гильдии. Там сидит сам Архимаг Валтор, – мальчишка понизил голос. – Говорят, у него вместо лица…

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

– Вы вообще понимаете, что я тут случайно? – Алексей попытался заговорить со старшим магом – Я просто подобрал кристалл!

– Молчать! – повторил старший и вновь ударил посохом по полу повозки. Дребезжащий звук напомнил Алексею системный сигнал ошибки. – Архимаг Валтор разберётся.

Когда старший отвернулся, юнец шепнул:

– Если скажешь, что умеешь чинить артефакты, тебя не сожгут. Только не вздумай называть себя магом…

Ковалев уже было собирался спросить про Трущобы, когда понял, что они больше не едут.

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

Башни-кулеры вздымались в небо, их лопасти медленно вращались, хотя ветра почти не было. Стены были испещрены руническими командами, светящимися мягким голубым светом. Витражные окна изображали не святых, а бинарные деревья и диаграммы потоков данных.

Двери представляли собой огромные плиты с выгравированными CLI-командами. Когда маги подвели Алексея, на поверхности дверей загорелась строка:

«sudo access_granted –user=prisoner»

Двери распахнулись.

Внутри пахло озоном и чем-то металлическим. По коридорам сновали маги – одни несли стопки пергаментов с бегущими строчками кода, другие водили пальцами по голографическим интерфейсам, висящим в воздухе. На стенах в позолоченных рамках висели «священные скрипты» – древние заклинания, выглядящие как куски программного кода.

Пройдя через длиннющий коридор, Ковалева завели в тронный зал. Или комнату его напоминающим, по представлению Алексея.

Помещение было почти квадратным, по форме чем-то похожим на процессор, вставленный в сокет. В центре на возвышении стояло кресло, выполненное из чистого чёрного кристалла.

И в нём сидел какой-то мужик. Это и есть Архимаг Валтор? Хотя сложно с точностью сказать, какого пола был тот, кого он увидел.

Его лицо…

Вместо лица у него был монитор.

Плоский, матовый экран, встроенный прямо в плоть. На нём горел один-единственный символ: «?»

– Интересно… – голос Валтора звучал как синтезированный бас, прошедший через десяток фильтров. – Ты человек или программный код? НЕ могу найти тебя в наших базах.

Алексей сглотнул.

Сейчас или никогда.

– Меня зовут… Лекс, – выдавил он. – Системный архитектор.

Экран Валтора замерцал синим, затем выдал серию быстро сменяющихся символов – будто кто-то лихорадочно гуглил в глубинах его сознания. Внезапно изображение стабилизировалось, и на мониторе появилась надпись: «Пользователь: Лекс. Роль: Системный архитектор. Доступ: ограниченный».

– Лекс? – голос Валтора заскрипел, как плохо смазанный жесткий диск. – Странное имя для мага. Почему не Иван или там Добрыня?

Алексей (теперь уже Лекс) нервно облизал губы. Он вспомнил, как в их компании разработчиков все звали друг друга никами – Лис, Босс, даже Капитан-Очевидность. А его прозвище родилось из-за вечной привычки сокращать всё подряд: «Лекс» вместо «Алексей».

– В моём мире так принято, – соврал он. – Это… профессиональный псевдоним. Как «Волшебник» у вас, только современнее.

Валтор издал звук, напоминающий смесь системного сигнала и фырканья.

– Проверим твои навыки «архитектора», – произнёс он, и из потолка спустился странный аппарат, напоминающий одновременно и микроскоп, и игровой контроллер. – Тест на магическую совместимость. Положи руку на сенсор.

Лекс колебался, но юный маг-подаван (все-таки Алексею нравилось его так называть) подтолкнул его локтем:

– Не бойся, это всего лишь MagiSoft Compatibility Test 3.14. Самая стабильная версия!

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

Внимание! Обнаружены нелицензионные магические модули! Угроза стабильности системы!

– О-о-о! – Валтор даже привстал с трона, его экран залился красным. – Ты пользовался пиратскими заклинаниями!

– Я вообще впервые в вашем мире! – возмутился Лекс, но тут же сообразил. – То есть… э-э-э… в этой операционной системе!

Валтор замер, затем на экране появилась полоска загрузки. Через мгновение он произнёс уже гораздо спокойнее:

– Интересно. Очень интересно. Ты либо гениальный хакер, либо… На экране промелькнула улыбающаяся смайл-рожица. – Скажи, Лекс, ты случайно не умеешь чинить магические артефакты?

Юный маг закашлял, явно подавая знак. Лекс вспомнил его совет и кивнул:

– Конечно! Я… э-э-э… специализируюсь на оптимизации legacy-кода. То есть древних заклинаний!

Тронный зал взорвался гулом голосов. Маги перешёптывались, показывая на Лекса пальцами. Валтор поднял руку, и воцарилась тишина.

– Тогда, продемонстрируй своё искусство, – произнёс он, и слуги внесли предмет очень похожий на лампу Алладина, в которую зачем-то встроили роутер. – Наш «Светильник Вечной Иллюминации» последние три века требует для активации семь мантр, жертвенного козла и танца с бубном. Можешь сделать проще?

Лекс осторожно взял артефакт. К его удивлению, на боковой панели он разглядел едва заметную надпись:

/// <summary>

/// «//Для активации произнесите 'Lumos'».

/// </summary>

– Серьёзно? – пробормотал он. – Да тут всё написано!

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

– Но… но как?! – его голос завис, как перегруженный процессор. – Мы столетия изучали этот артефакт!

Лекс пожал плечами:

– Иногда надо просто прочитать инструкцию…

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

– Предлагаю, обновить его прошивку.

Лекс сглотнул.

– Чью? Мою? А можно не надо? Я совсем недавно обновлялся…

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

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

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

– Связь не стабильна! – прошипел кот. – Follow me!

Лекса не нужно было просить дважды. Пока маги пытались поймать ошалевшего кота, он рванул к выходу, даже не представляя, куда бежать. За спиной раздался рёв Валтора:

– Включить брандмауэр! Выпустить магических гончих! Он не должен уйти!

Но было поздно – Лекс уже нырнул в тёмный проход, ведомый мерцающим хвостом механического кота. Они выскочили в знакомый коридор, где минуту назад его вели под конвоем. «Как он ориентируется?!» – мелькнуло в голове, но Байт уверенно свернул за угол, проскочил под стеллажом со свитками и юркнул в узкую щель, замаскированную под вентиляционную решётку с надписью «Emergency Exit Only».

Лекс, задыхаясь, протиснулся вслед. За спиной нарастал гул погони – крики магов, металлический лай гончих и рёв Валтора: «Он в подсистеме вентиляции! Блокируйте сектор G!»

Щель вывела их наружу – в тупиковый дворик Форта-Кодекс, заваленный сломанными кристаллами-накопителями. Лекс прислонился к стене, пытаясь отдышаться. Воздух, пахнущий озоном и пылью, казался сладким после спертого воздуха тронного зала Гильдии.

– Миссия выполнена! – Байт запрыгнул на ящик, его глаза светились зелёным.

Тут же из-за груды мусора вышли знакомые фигуры. Зера в своём мерцающем плаще, Тим с взъерошенными волосами и ещё двое в потертых куртках с шевронами в виде кошачьих лап.

– Привет, архитектор, – Зера ухмыльнулась, подбирая кота. – Гильдия уже выложила твое фото в их «Ведьмаграмме» с тегом #ВрагNumberOne. Добро пожаловать в клуб!

За её спиной Тим нервно щёлкнул выключателем на странном устройстве. Стена Форта позади них вдруг «зависла» – камни поплыли, как пиксели на глючном экране.

– Наш «бэкдор» держится всего минуту, – сказал Тим. – Бежим, пока они не сменили пароль!

Лекс оглядел команду: усталые, но решительные лица, инструменты вместо посохов, на куртке одного даже красовалась нашивка «CTRL+ALT+DEL». Где-то внутри щёлкнуло – будто сервер наконец завершил загрузку.

– А куда бежим-то? – спросил он.

Зера переглянулась с Тимом, потом резко дёрнула Лекса за рукав:

– Не в подполье же!

– Тогда куда? – Лекс оглядел переулок, где каждый второй камень светился ошибкой «404 Path Not Found».

– А ты уже забыл куда направлялся? К «Синему экрану» конечно— Тим ткнул пальцем в мерцающий прямоугольник на горизонте. – Через него мы попадем в Трущобы Глитчей. Гильдейские гончие не могут пройти через него – ломаются, как кривая сборка на продакшене.

Из кармана Зеры выпал маленький кристалл и разбился о камни. На секунду в воздухе возникла голограмма: «Error 418: I’m a teapot»

– Вот черти! – Зера зашипела. – Опять эти рекламные куки вшивают в артефакты!

Лекс фыркнул. Даже в другом мире назойливая реклама страшнее, чем магическая инквизиция.

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

– Где логи?! Где, коннектор вам в зад, логи этого побега?!

Глава 4

Таверна «UEFI»

Стены переулка дрожали, как зависший экран монитора, готовый вот-вот выдать синий экран смерти от перенапряжения. Камни расплывались в пиксельной ряби, оставляя за собой шлейф из цифрового шума, похожего на шипение плохой аудиодорожки. Лекс бежал, спотыкаясь о «битые» участки мостовой – те, где текстуры не прогрузились до конца, и вместо плитки зияли провалы в темноту с мерцающими надписями «Error: Chunk not loaded». Казалось, сам городской движок не справлялся с нагрузкой от их побега. Один такой провал чуть не проглотил его кроссовок, и Лекс отпрыгнул, мысленно ругая гильдейских "геймдизайнеров" за их халтурный левел-дизайн.

– Не оглядывайся! – крикнула Зера, хватая его за рукав так резко, что он чуть не полетел в один из таких «битых» чанков. – Если застрянешь в глитче, тебя выкинет прямиком в Гильдейский файрвол! А там, поверь, не баннеры с котятами висят! Там тебя отформатируют во все твои впуклости и выпуклости!

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

– А почему они не могут пройти через «Синий экран»? – задыхаясь, спросил Лекс, пытаясь не думать о том, что его ноги горят, как два перегруженных процессора. – Они же магические! Разве их прошивку нельзя… ну, не знаю, взломать? Или хотя бы поставить патч?

– Потому что он вчера обновился до новой версии, а у них старая прошивка! – озорно блеснула глазами Зера, и её плащ на мгновение отобразил анимированного кота, гоняющегося за курсором. – Вот и не совместимы! Как Windows XP и современные игры! Гильдия вечно тянет с обновлениями, бюрократия, понимаешь? Все апдейты должны пройти десять комиссий и быть освящены Архимагом. К тому времени уже выходит новая версия чего-нибудь, и все начинается сначала. Вечный цикл legacy-кода!

Тим, не отрываясь от своего «девайса» – кристалла с торчащими проводами, похожего на мозги выпотрошенного робота, – тыкал в него пальцем, как в сенсорный экран, бормоча ругательства, больше похожие на команды консоли: «Пинг не проходит!», «Латентность зашкаливает!», «Да кто так API пишет?!».

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Примечания

0

Сериализация – процесс преобразования структуры данных в формат, который можно сохранить или передат

Вернуться