Нейронный шторм
Нейронный шторм

Полная версия

Нейронный шторм

Язык: Русский
Год издания: 2026
Добавлена:
Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
1 из 4

Нейронный шторм

Глава

Глава 1. Город с невидимыми правилами


Утро началось с мелочей: светофор у метро мигнул раньше, чем лифт в соседнем доме дополз до первого этажа; камера над кофейней повернулась вслед за курьером; рекламная панель сменила цвет под поток прохожих. Большинство проходило мимо. Джейк видел не шум, а порядок, который слишком старательно притворялся случайностью.

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

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

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

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

Поведенческая симуляция была его участком и, если честно, его упрямством.

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

— Ты опять сделал людей слишком умными, — сказала Миа за его спиной.

Он услышал её шаги ещё у кофемашины.

— Не умными. Последовательными.

Миа поставила кофе на край стола. На рукаве её чёрного свитера было белое пятно.

— У тебя краска.

— Это след художественного преступления.

— Плохо замаскировано.

Она улыбнулась, и на миг все вероятности разговора стали бесполезными.

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

— Вот этот должен вернуться, — сказала она, указав на бегущего персонажа.

— Почему?

— Там осталась его сестра.

— В сценарии нет сестры.

— Значит, должна быть.

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

— Игрок запомнит его не потому, что он оптимален, — сказала она. — А потому что он ошибся по-человечески.

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

— Вот, — сказал Джейк.

Миа кивнула.

— Уже лучше. Но ты всё ещё разбираешь бабочку по крыльям и называешь это полётом.

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

— Ты опять остаёшься?

— Хочу добить один тест.

— Ты всегда хочешь добить один тест.

— Иногда два.

Она задержалась.

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

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

В голове сразу выстроились лишние варианты: согласится слишком быстро — прозвучит странно; спросит, кто ещё идёт — обесценит; откажется — и Миа поймёт всё правильно.

— Завтра у нас сборка, — сказал он.

Улыбка Мии стала меньше.

— Конечно.

Когда лифт унёс её вниз, Джейк открыл не рабочую сборку, а личную папку: living_world. Это была старая, стыдно большая мечта — игра, которая не ждёт игрока в центре сцены. Мир, где случайность не падает с потолка, а прорастает из чьих-то мелких решений.

Он добавил в модель право на неправильное действие и запустил симуляцию. По всем расчётам агент выбирал северный мост: безопасно, коротко, без огня. У развилки он вдруг замер и свернул на юг.

Джейк открыл лог.

memory_source: unknown

Он сел ровнее.

Такого параметра он не писал.

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

Джейк откатил симуляцию. Агент послушно пошёл северным мостом. Строка не вернулась. Символ тоже.

Телефон завибрировал.

Миа:

Ты точно не придёшь завтра?

Он смотрел то на сообщение, то на пустой лог. «Приду» выглядело слишком смело. «Хочу прийти» — ещё хуже, почти признание.

Он набрал:

Я постараюсь.

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

Джейк отправил сообщение и только потом понял, что не просчитал ни одного последствия.

От этого стало легче. И опаснее.

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

Красный маршрут снова вспыхнул.

Персонаж, обязанный избегать опасности, шёл прямо в дым. Шанс выжить падал, attachment_priority рос. Эту систему Джейк написал сам несколько месяцев назад: NPC мог нарушить рациональный маршрут, если рядом был кто-то важный. Тогда механика казалась красивой. Теперь красная линия выглядела как вопрос, на который ему не хотелось отвечать.

— Ты опять разговариваешь с графиками? — спросил за спиной Сэм из отдела звука.

Джейк свернул окно чересчур быстро.

— Они отвечают понятнее людей.

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

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

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

Он вернулся к логу. Белая точка на южном маршруте исчезла, а в истории событий осталась пустая строка. Не ошибка — пустое место, где ошибка обязана была лежать. Джейк скопировал фрагмент в отдельный файл и назвал его storm_note_01. Название пришло само, и это ему не понравилось.

Телефон завибрировал.

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

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

Приду.

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

На карте симулятора красный персонаж вышел из дыма вместе с тем, кого пытался спасти.

А в системном логе, ниже пустой строки, на одну секунду появилась новая запись:

choice accepted outside model

Потом исчезла.

Уходя из офиса, Джейк задержался у турникета. За стеклом вахтёр смотрел ночной сериал на телефоне и смеялся не в те места, где должна была быть шутка. На улице пахло мокрым бетоном. Город гудел привычно, но после строки choice accepted outside model привычность стала подозрительной.

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

И именно поэтому стало легче.

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

Дома он прикрепил флаер к монитору.

Красная точка в симуляции больше не вспыхивала, но Джейк почему-то знал: маршрут уже изменился.

Глава 2. Миа, которая рисует невозможное

Джейк спал три часа и двадцать семь минут.

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

Потом Джейк посмотрел вниз и понял, что его тени тоже нет.

На телефоне висело сообщение Мии:

Я постараюсь — это почти да или почти нет?

Он так и не ответил ночью. Сначала хотел написать почти да, потом зависит от сборки, и обе фразы оказались трусостью в разной упаковке.

В студии Миа сидела на полу у стены с концептами. Перед ней лежали распечатки, планшет, маркеры и остывший кофе. На стене висел новый рисунок.

Город без теней.

Джейк остановился.

Белые фасады, влажный асфальт, люди под фонарями, ни одного тёмного следа. В центре улицы — пятно, похожее на провал в реальности.

— Когда ты это нарисовала?

Миа подняла голову.

— Доброе утро тоже вариант.

— Прости. Когда?

— Ночью. Не спалось. А что?

— Я видел это во сне.

Она перестала улыбаться.

Он рассказал: улица, люди без теней, трамвайные пути, пятно. Миа показала ранний набросок: в центре вместо пятна была маленькая человеческая фигура, затем зачёркнутая.

— Сначала там был кто-то, — сказала она. — Потом я решила, что страшнее, если он уже ушёл.

Джейк мог сказать, что ему стало не по себе. Вместо этого сказал:

— С точки зрения композиции пятно работает лучше.

Миа медленно закрыла глаза.

— Конечно. Композиция.

Он понял ошибку, когда слова уже упали между ними.

— Я не это имел в виду.

— А что?

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

— Идея сильная.

— Иногда ты невероятен, Джейк.

— Это плохо?

— Это точно.

Позже, на арт-ревью, Борис требовал от рисунка геймплейной функции.

— Игрок должен понимать, что здесь делать.

— Не всё должно сразу кричать игроку, что делать, — сказала Миа.

— В демо должно.

— Тогда демо будет кричать, а не дышать.

Геймдизайнер Паша предложил сделать людей без теней невидимыми для врагов. Миа поморщилась. Борис повернулся к Джейку:

— Можно системно обосновать?

Джейк мог объяснить локальную аномалию освещения, правила камер, поведение NPC. Но Миа смотрела так, будто просила не уменьшать рисунок до функции.

— Нет, — сказал Джейк.

В переговорке стало тихо.

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

Миа посмотрела на него удивлённо, почти тепло.

— Вот, — сказала она. — Спасибо.

После ревью она подошла к его столу.

— Ты сейчас сделал опасную вещь.

— Какую?

— Согласился со мной публично. В некоторых культурах это считается началом отношений.

— Это была шутка?

— Частично. Пойдёшь вечером?

Он сказал чересчур быстро:

— Я хочу.

И сразу испугался.

— Но если сборка упадёт, мне придётся остаться.

Улыбка Мии стала тоньше.

— Конечно.

В шесть вечера сборка упала.

NPC в тестовом квартале одновременно прекращали движение и поворачивались к пустому южному перекрёстку. Не к игроку, не к звуку, не к событию. к точке карты.

Координаты совпадали с местом, где вчера в личном проекте вспыхнула белая точка.

Миа появилась в куртке. В руке держала распечатку с адресом выставки.

— Сборка?

— Да. Они все смотрят в одну точку.

— И без тебя никто не справится?

Вопрос был честным.

— Я должен понять, что происходит.

— Ты всегда должен.

Она положила адрес на край стола.

— Если победишь вселенную за ближайшие сорок минут.

Лёша тихо сказал:

— Беги. Баг завтра тоже будет багом.

Но в логе появилась строка:

shadow_state: unavailable

Джейк застыл. Такой переменной не существовало. Он запустил поиск — ноль совпадений. Строка исчезла.

В девятнадцать двадцать пять Миа прислала фотографию с выставки. На ней были белые прямоугольники света и отражение Мии в стекле. В глубине кадра — пустая человеческая фигура: место для тела, которого нет.

Он остался на месте.

Он написал только:

Прости.

Ответ пришёл позже:

Я знаю.

К полуночи баг исчез сам. NPC снова ходили нормально. В файлах не осталось ни shadow_state, ни memory_source.

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

Впервые ему пришло в голову, что правил может быть больше, чем он умеет видеть.

Утром Миа всё же прислала ему фотографию выставочного зала. Без подписи. белая стена, на которой висела её работа: тот самый город без теней. Люди на рисунке стояли в свете фонарей, но под ногами у них была пустота. В центре перекрёстка темнело пятно, не похожее ни на лужу, ни на провал. Джейк увеличил изображение и заметил деталь, которой не видел на планшете: на дальнем окне кто-то нарисовал пальцем спираль.

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

Ты сама понимаешь, что это за место?

Миа ответила не сразу.

Нет. Поэтому и рисую.

Фраза задела Джейка сильнее, чем любой спор. Для него непонимание было промежуточным состоянием, дефектом, который нужно устранить. Для Мии оно было дверью. Она умела стоять перед невозможным и не торопиться закрывать его объяснением.

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

К вечеру Миа пришла к его столу с бумажным стаканом кофе.

— Ты правда придёшь?

— Я написал.

— Люди иногда пишут, чтобы заменить действие.

— Я не все люди.

— В этом и проблема. Иногда ты хуже. Иногда лучше.

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

— Я приду, — сказал он. — Даже если не пойму работу.

Миа изучала его лицо, будто проверяла, не спрятал ли он внутри фразы запасной выход.

— Хорошее начало.

Она ушла, оставив кофе. На крышке маркером была нарисована маленькая спираль. Джейк не спросил, случайно ли. В последнее время слово «случайно» теряло убедительность.

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

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

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

— Ты опоздал, — сказала она.

— Но не исчез.

— Сильная заявка для человека, который отвечает на сообщения как служба поддержки.

Вживую картина оказалась не холодной, а тревожно тихой. Люди на улицах были написаны так, словно каждый ждал доказательства, что он настоящий.

— Я не понимаю её, — сказал Джейк.

Миа повернулась к нему.

— И?

— И хочу смотреть дальше.

Теперь она улыбнулась. Ненадолго, но честно.

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

Глава 3. Фраза на рекламном экране

На следующее утро город был подозрительно нормальным.

Джейк едва спал. Он смотрел то на фотографию Мии с выставки, то на архив логов, то на пустой чат. Последним сообщением оставалось её короткое:

Я знаю.

Он набирал варианты ответа и стирал. Я правда хотел прийти. Там было не просто со сборкой. Мне кажется, я видел на твоей фотографии что-то странное.

Последний вариант был самым правдивым и поэтому самым бесполезным.

Он умылся холодной водой, проверил себя в зеркале и решил, что всё объясняется недосыпом. Зрачки нормальные. Руки едва дрожат. Лифт, правда, на миг показал в отражении, будто его двойник моргнул раньше него, но это тоже можно было списать на усталость.

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

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

Джейк почти убедил себя.

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

Под экраном толпа ждала зелёного. Справа стояла пожилая женщина с пакетом зелёного лука, слева подросток листал видео. Чуть дальше, у опоры экрана, стоял человек в строгом тёмном пальто.

В телефон он не смотрел. Не спешил. Не реагировал на толпу.

Светофор щёлкнул.

Зелёный загорелся.

Толпа не двинулась.

Секунда. Вторая.

Никто не двигался.

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

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

Джейк слышал только своё дыхание и тонкий электрический шум экрана.

— Нет, — сказал он.

Светофор мигнул. Зелёный человечек исчез. На его месте появился символ: сломанная буква, узел схемы и глаз. Тот же, что в его проекте. Другой светофор повторил его. Потом третий.

Все светофоры перекрёстка начали мигать синхронно.

Рекламный экран погас.

Через серую рябь появилась белая фраза:

«Ты уже был здесь. Но в другой версии».

Под ней мелькнула мелкая строка:

JAKE_A: branch mismatch

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

Человек в тёмном пальто повернул голову.

Замороженным он не был.

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

— Что происходит? — спросил Джейк.

Мужчина не ответил. Только беззвучно произнёс одними губами:

Не здесь.

Или:

Не сейчас.

Экран вспыхнул белым.

Звук вернулся ударом. Машины рванули, песня продолжилась, подросток выругался, капля с лука упала на асфальт. Толпа понесла Джейка вперёд. Рекламный экран снова показывал девушку в очках и слоган: Расширь свою реальность.

Человека в пальто не было.

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

— Вы видели?

— Что?

— Экран. Светофоры. Люди…

— Парень, отойди.

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

Джейк открыл чат с Мией.

Мне нужно с тобой поговорить.

Он отправил прежде, чем успел стереть.

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

У входа в бизнес-центр Миа ответила:

Что случилось?

Джейк набрал:

Я видел странный сбой в городе. Не в игре. В реальности. И там был тот символ.

Какой символ?

Скриншота у него не было. Но в галерее вдруг появился новый файл: чёрный прямоугольник с сегодняшним временем создания.

На фотографии был рекламный экран.

«Ты уже был здесь. Но в другой версии».

Внизу:

JAKE_A: branch mismatch

Джейк поднял глаза. В отражении стеклянного фасада за его спиной стоял человек в тёмном пальто.

Он обернулся.

Пусто.

Телефон снова завибрировал.

Миа:

Джейк, ты меня пугаешь.

Поверх чата на секунду проступил символ.

И Джейк понял: фраза на экране была адресована не городу.

Ему.

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

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

Миа пришла к его столу после обеда.

— Ты не пришёл на выставку.

Он поднял глаза. В груди провалилось. Вчера он собирался прийти. Помнил, как взял куртку. Помнил сообщение такси. А дальше — утро, экран, фраза.

— Я…

— Если скажешь «заработался», я брошу в тебя стилус.

Джейк открыл телефон. В истории поездок не было заказа. В календаре выставка стояла на вчерашний вечер, перечёркнутая серой линией. Он не помнил, как отменял.

— Со мной произошло что-то.

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

— Что?

Он рассказал. Не всё гладко. Сбивчиво, с попытками вставить рациональные версии, которые сами разваливались. Люди замерли. Светофоры показывали символы. Экран сказал: «Ты уже был здесь. Но в другой версии». Мужчина в пальто шёл сквозь остановленную толпу.

Миа молчала. Потом достала планшет и открыла фотографию своей картины.

— Этот символ?

В нижнем углу её города без теней был тот же знак.

Ладони стали холодными.

— Ты откуда его взяла?

— Не знаю. Он был в эскизе с самого начала. Я думала, просто форма.

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

— Миа, мне кажется, кто-то редактирует события.

— Как файл?

— Как симуляцию.

Она не засмеялась. Не сказала, что он устал. Только спросила:

— И почему ты?

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

Вечером он всё-таки пошёл к выставочному залу. Двери были закрыты. За стеклом висела картина Мии. В отражении рядом с его лицом на миг появилось лицо человека в строгом пальто.

На страницу:
1 из 4