УЦЦ : Кейн это тот, кто останется
Глава 1
Глава 1. Проблемы компании C/A: Надежда
Босс компании C/А собрал совет руководителей отделов в зале совещаний, чтобы обсудить тревожную проблему. В воздухе висела такая густая тяжесть, что, казалось, её можно было резать ножом. Каждый понимал: речь не о мелких корректировках, а о выживании компании.
Босс ударил по столу костяшками пальцев — не для угрозы, а чтобы сбить нарастающий гул паники.
— Полгода назад мы запустили «Хроники Пустоши» с бюджетом в два раза больше обычного, — процитировал Грег, финансовый директор, листая отчёт на планшете и морщась, будто от кислого. — И что? На пике онлайн продержались три недели. Сейчас у нас аудитория не просто уходит — она перестаёт считать наши игры местом, куда хочется возвращаться. Это не про деньги, это про доверие. Нам нужен новый проект, и очень срочно. Такими темпами через восемь месяцев мы обанкротимся.
Босс встал, посмотрел на коллег тяжёлым взглядом и отвернулся к окну.
— Есть ли у вас идеи, как вернуть доверие?
Обсуждение пошло по кругу, напоминая конвульсии умирающего зверя. Дизайнеры хотели добавить блёсток. Финансисты требовали крови и сокращения штата. Маркетологи предлагали вирусные видео с котиками.
И тогда тишину прорезал голос Лены из маркетинга. Она обычно предпочитала прятаться за бумажными папками, но сейчас встала, распрямив плечи:
— Они уходят, потому что им скучно быть богами в одиночестве, — сказала она твёрдо. — Между кат‑сценами — мёртвая зона. Тишина давит сильнее любого босса. Им нужен собеседник. Тот, кто спросит: «Ты сегодня какой‑то тихий. Всё в порядке?»
— Вы пытаетесь поставить всё на ИИ, которого ещё нет, — скривился безопасник.
— Нам нужен цифровой собеседник, — повысила голос Лена. — Тот, кто выслушает нытьё про токсичного тиммейта в два часа ночи. При этом мы сэкономим на плотности контента без найма сотен сценаристов.
Грег с силой швырнул планшет на стол. Звук получился сухим, как статистика по банкротствам.
— Вы хотите создать нейросеть, которая будет жрать оперативную память целыми кластерами ради пары фраз сочувствия? Я не дам бюджет под вашу сентиментальную блажь! Более того, я читал статьи о «красных командах». Кучка граждан намеренно провоцирует ИИ фашистскими лозунгами или бредом про братство деревянных коней, чтобы потом сделать скриншот и подать на нас в суд за разжигание ненависти. Нас уничтожат репутационно ещё до первого релиза!
— Не только репутационно, — подал голос директор по юридическим вопросам Виктор Сергеевич. Все невольно повернулись к нему: его спокойный тон всегда заставлял прислушаться. — Грег прав, но смотрит мелко. Помимо судов общей юрисдикции, есть ФАС — за недобросовестную рекламу возможностей ИИ. Есть персональные данные. Где будут храниться логи этих душевных бесед? Согласно 152‑ФЗ, если сервер находится за границей, нам светят штрафы, сопоставимые со стоимостью разработки всей этой игрушки. А если игрок скажет Кейну, что хочет взорвать мэрию, и тот ответит: «Понимаю тебя», статья 205 прилетит не игроку, а нам как организаторам распространения информации. Вы открываете ящик Пандоры, господа. И этот ящик стоит дороже нашей годовой прибыли.
В зале повисла тишина. Безопасник нервно хмыкнул — он сам вчера тестировал базовую модель, и та предложила ему продать почку для покупки внутриигрового золота.
Майкл усмехнулся и медленно поднял руку, прерывая неловкое молчание.
— Данная идея Лены имеет право на жизнь, — он встал, подошёл к флипчарту и взял маркер. — Никто не собирается давать этому парню полный доступ к серверам, Грег, — спокойно сказал он. — Мы не строим бога. Мы строим швейцарский нож.
Он начал писать на флипчарте, чётко выводя пункты:
— Первое: архитектура памяти. Мы не храним весь диалог. Мы используем семантическое сжатие. Если игрок час жаловался на жену, система сохранит вектор: [фрустрация: 0,9], [семья: 0,8]. Сами слова улетят в мусорное ведро через пять минут. Это сэкономит нам девяносто процентов мощностей. Мы будем хранить смыслы, а не буквы.
— Второе: юридическая броня. Опасения Виктора Сергеевича обоснованы. Поэтому у Кейна будет жёсткий конституционный кодекс. Модель foundation остаётся открытой и гибкой, но поверх неё мы ставим слой инференса — наш собственный скрипт‑фильтр. Как только тема уходит в сторону политики, религии, оружия или оскорблений, срабатывает предохранитель. Кейн не выдаст фашизм. Он скажет: «Эй, давай сменим тему. Расскажи лучше, какой меч ты сегодня выбил». Все сессии пишутся, юрист получает выгрузку каждое утро.
— Третье: экономика. Нам не нужны сотни сценаристов для написания миллионов реплик. Нам нужен один хороший драматург, который напишет каркас личности. Остальное доделает математика. Мы экономим на штате, вкладываясь в железо. Это дешевле, чем платить зарплату трём отделам писателей, которые всё равно пишут шаблонные квесты «убей десять волков».
Майкл положил маркер. Тишина в зале изменилась. Она перестала быть пугающей и стала задумчивой.
Босс посмотрел на Грега.
— Риски остаются?
— Они всегда есть, — буркнул финансист, поправляя очки. — Но если вы ограничите время жизни контекста пятнадцатью минутами, поставите этот ваш… предохранитель… и перенесёте вычисления на локальные машины игроков там, где это возможно… вероятность выжить выше, чем если мы просто выпустим очередную пустую игру и закроемся.
— Такой подход — это что‑то новое, — протянул босс, пробуя слова на вкус.
Финансист, видя блеск в глазах главы, понял, что идея может стоить им всего. Почувствовав, как петля на шее становится туже, он немедля добавил:
— Такой проект ударит по компании сильно. Мы будем ходить по острию ножа над пропастью дефолта.
— Я понимаю, — босс помолчал минуту, будто взвешивая не цифры, а судьбы людей. — Как говорил мой отец, а до него его отец: риски есть всегда.
— Проголосуем, — резко сказал он.
Голосование закончилось с минимальным перевесом: 10 голосов «за», 9 «против».
— Значит, делаем, — кивнул босс и обвёл взглядом комнату. — Ставлю задачу: разработать ИИ‑резонатора для удержания игроков. Срок — полгода.
В зале повисло напряжённое молчание, а потом началось бурное обсуждение: все кричали про нехватку времени, денег, ресурсов.
— На это нужны бюджеты, планы, этапы… — попытался вставить слово кто‑то из аналитиков.
— Всё будет, — отрезал босс. — Поэтому пригласите отдел разработки для обсуждения прямо сейчас. Я хочу ещё с ними это обсудить.
Грант Бэст, сидевший рядом с Майклом, хмыкнул. В этом звуке не было насмешки — скорее горькое признание профессионала, которому дали невыполнимый дедлайн:
— Психология — это хорошо. Но у нас нет движка, который умеет не просто генерировать текст, а держать контекст на протяжении двадцати часов игры. У нас нет датасетов, где персонажи реагируют не по скрипту, а по ситуации. Если мы сделаем «болталку», которая через три фразы забывает, о чём шла речь, игроки засмеют нас в первый же день. Наши дата‑центры начнут плавиться уже на открытом бета‑тесте.
— Значит, не делаем болталку, — Майкл устало потёр переносицу. — Делаем личность. Не идеальную, не всезнающую, а… человечную. С оговорками, с паузами, с тем, как люди на самом деле говорят. Пусть он иногда ошибается. Пусть иногда замолкает, будто забыл слово или завис. Это и будет самое убедительное.
Майкл наконец оторвал взгляд от своих заметок, где уже чертил какие‑то схемы, и посмотрел прямо на руководителя отдела:
— Если мы хотим не просто «умного чат‑бота», а персонажа, который живёт в игре, нам нужно три вещи. Первое — архитектура памяти, которая не съест все наши серверы. Второе — система эмоциональных состояний, которая будет менять тон реплик. И третье — непрерывное обучение на фидбеке игроков, иначе через месяц он начнёт выдавать одни и те же шутки, превратившись в сломанный граммофон.
Руководитель отдела программистов подался вперёд, будто хотел поймать эту мысль и удержать её:
— То есть ты говоришь, что полгода — это реально?
Майкл невесело усмехнулся:
— Реально, если мы не будем пытаться сделать всё сразу. Если начнём с MVP: один персонаж, одна локация, один сценарий. Пусть это будет Кейн — тот, кто встречает игрока, когда тот заходит в лобби. Пусть он замечает, если игрок молчит дольше обычного. Пусть он говорит не ради слов, а ради того, чтобы игрок не чувствовал себя одиноким в пустой комнате.
Босс, до этого молча ходивший вдоль стены, остановился напротив Майкла.
— Кейн, — проговорил он, пробуя имя на вкус. — Звучит так, будто он не боится взять на себя ответственность.
Финансовый директор хотел снова возразить, но босс поднял руку, останавливая его:
— Я слышу все ваши «но». И я с ними согласен. Но я также вижу, как каждый месяц наша выручка падает на пять процентов. Это не просто цифры — это зарплаты людей, которые сидят в этой комнате. Если мы не попробуем что‑то радикальное, мы не просто проиграем рынок — мы исчезнем.
Он обвёл взглядом всех, задерживаясь на каждом, будто проверяя, кто готов держаться до конца.
— Поэтому я ставлю задачу: создать не просто ИИ, а надежду. Надежду для игроков, что их здесь ждут. И надежду для нас, что мы ещё можем что‑то изменить. Полгода. Премии будут. Ресурсы я достану. Но мне нужно, чтобы каждый из вас сейчас сказал: вы берёте эту задачу или выходите из комнаты.
В комнате повисла тишина — та самая, когда слова становятся тяжелее любых аргументов.
Майкл первым нарушил молчание, постучав пальцами по столу в своём странном ритме.
Коллеги переглянулись — не как на совещании, а как в отряде перед выходом в зону, где связь уже не ловит. В этом обмене взглядами было больше согласия, чем в любом протоколе.
Грант медленно кивнул, будто сам себе доказывая, что ещё не готов сдаться:
— Ладно. Если мы делаем MVP, я беру интеграцию с движком и оптимизацию. Но предупреждаю: если память начнёт тормозить игру — я первым скажу «стоп». И не надо на меня смотреть так, будто я враг прогресса. Я как раз хочу, чтобы это работало, а не притворялось.
Королева, до этого молча листавшая заметки с эмоциональными шкалами, подняла голову. В её голосе звучала привычная жёсткость, но теперь в ней было и что‑то личное:
— Я возьму сценарии и эмоциональные реакции. Сделаю так, чтобы Кейн не казался идеальным. Пусть у него будут свои слабости, свои паузы. Пусть он иногда не находит слов — и тогда просто вздыхает. Это и будет самое убедительное. Люди верят не в безупречность, а в то, что кто‑то рядом тоже иногда теряется.
Лена, которая до этого сидела, вцепившись пальцами в край стола, будто боялась, что её идею снова сметёт волной возражений, тихо, но твёрдо добавила:
— А я возьму метрики удержания. Мы будем смотреть не на то, сколько фраз сказал ИИ, а на то, сколько времени игрок оставался в лобби. Если он задержался на лишние три минуты, потому что Кейн спросил: «Ты сегодня какой‑то тихий. Всё в порядке?» — значит, мы на верном пути.
Финансовый директор, всё ещё хмурившийся, вздохнул и поправил очки:
— Полгода — это почти ничего. Но если мы режем масштаб и делаем MVP с одним персонажем… ладно. Я согласую бюджет на пилотную версию. Но хочу ежедневные отчёты по нагрузке на серверы. Если биллинг начнёт расти как снежный ком — мы останавливаемся. Никаких героических жестов за счёт компании.
Майкл, услышав это, наконец позволил себе чуть расслабить плечи:
— Спасибо. Нам нужно начать с малого, но правильно. Сначала архитектура памяти: ядро, окно, рефлексия. Потом эмоциональный слой. И только потом — обучение на фидбеке. Без фундамента мы просто нарисуем красивую иллюзию, которая рассыплется в первый же день.
Босс, стоявший у окна, медленно подошёл к столу и положил ладонь на стопку распечатанных схем — будто ставил печать на общее решение:
— Значит, работаем. Через три дня я хочу видеть чёткий план: этапы, риски, контрольные точки. И не пытайтесь меня убедить, что всё будет легко. Я и так знаю, что будет тяжело. Мне нужно, чтобы вы знали, что делать, когда станет тяжело.
Он обвёл взглядом комнату ещё раз — и теперь в этом взгляде не было проверки на верность, а было признание: они все в одной лодке, и если она пойдёт ко дну, то вместе.
— И помните, — добавил он уже мягче, но не менее твёрдо, — мы не пытаемся создать искусственный разум. Мы пытаемся создать иллюзию, которая спасёт компанию. А иногда даже иллюзия должна быть честной.
С этими словами он вышел, оставив после себя запах кофе и ощущение, что теперь отступать некуда.
Майкл посмотрел на коллег и тихо, почти шёпотом, произнёс:
— Ну что, начинаем писать историю, которая либо нас спасёт, либо похоронит. Но хотя бы это будет наша история.
Грант хмыкнул, но на этот раз в этом звуке слышалось не сомнение, а азарт:
— Тогда первым делом мне нужны спецификации по памяти. И доступ к логам. Без этого я даже не начну рисовать архитектуру.
Королева уже открывала новый документ, быстро печатая заголовки: «Эмоциональные состояния Кейна», «Типичные паузы», «Реакции на молчание».
— И ещё, — она подняла взгляд, будто только что вспомнила важную деталь, — давайте не будем делать его слишком добрым. Пусть иногда он будет ворчливым. Пусть скажет: «Опять ты молчишь. Или у тебя интернет отвалился?» Это будет звучать живее.
Майкл улыбнулся — впервые за всё совещание:
— Вот это мне нравится. Пусть он будет не идеальным собеседником, а тем, кто просто сидит рядом. Даже если ворчит.
Глава 2
Глава 2 техническая встреча: память – главная ловушка
Комната для разработчиков была не такой торжественной, как зал для совещаний: здесь пахло не дорогим кофе, а перегретым пластиком, энергетиками и усталостью. На белой доске Майкл уже вывел жирными буквами: «MVP: Кейн». Под ним шли три столбца: «Память», «Эмоции», «Обучение». И напротив каждого — вопросительные знаки, будто он заранее знал, что вопросов будет больше, чем ответов.
— Начнём с главного, — Майкл постучал маркером по слову «Память». — Если Кейн через три фразы забывает, о чём говорил игрок, мы не просто провалимся — нас засмеют. Люди чувствуют фальшь быстрее, чем мы успеем объяснить, что это «экспериментальный ИИ».
Грант, сидевший на краю стола и покачивавший ногой, прищурился:
— Значит, нам нужна контекстная память. Но у нас нет серверов, чтобы хранить диалоги на двадцать часов игры. Если мы будем писать каждое слово в базу, игра начнёт тормозить на третьем квесте.
Майкл кивнул, будто именно этого и ждал:
— Поэтому мы не храним всё. Мы храним суть. Сжимаем контекст в семантические векторы: «он сказал про дождь и про маму», Заначит, тема — одиночество». Это экономит память, но требует сложной архитектуры.
Королева, которая чертила на планшете какие‑то эмоциональные шкалы, подняла глаза:
— А если игрок захочет, чтобы Кейн помнил мелочь? Например, что он ненавидит кофе, но любит мятные леденцы? Для людей такие детали — это доказательство, что их слышат.
— Тогда мы делаем два уровня памяти, — быстро ответил Майкл, будто эта мысль уже крутилась у него в голове неделями. — Первый: долгосрочные факты. Любимые вещи, важные события, имена близких. Это хранится отдельно, как профиль игрока. Второй: краткосрочный контекст. Последние пять-шесть реплик, чтобы Кейн не терял нить разговора. И третий: «эмоциональный след» — общее настроение диалога, которое влияет на тон.
Грант хмыкнул, но в этот раз без горечи:
— Звучит как компромисс. Но компромисс — это когда мы сознательно отказываемся от чего‑то. А здесь мы сознательно делаем Кейна… немного забывчивым.
— Именно, — кивнул Майкл. — Мы не пытаемся сделать его всезнающим. Мы делаем его внимательным. Это разные вещи.
Один из младших программистов, до этого молчавший, поднял руку:
— А как мы будем сжимать контекст? Если мы потеряем смысл, игрок сразу почувствует, что говорит с машиной.
Майкл улыбнулся, и в этой улыбке было что‑то похожее на азарт:
— Мы не будем делать это вручную. Мы используем предобученную языковую модель, но прикрутим к ней наш слой семантического сжатия. Я уже набросал схему: входной текст → векторизация → фильтрация по важности → хранение → генерация ответа с учётом вектора.
Он быстро начертил на доске стрелки и блоки, и комната будто стала тише — все следили за его рукой, как за дирижёром.
— Но тут есть проблема, — добавил он, и улыбка исчезла. — Нам нужны данные. Много данных. Логи взаимодействия игроков за последний год. Без них мы будем обучать Кейна на абстрактных примерах, а он должен учиться на реальных людях.
Грант потёр подбородок:
— Логи у нас есть, но они в сыром виде. Там мусор, баги, обрывки фраз. Чтобы из этого сделать датасет, нужно время.
— Времени нет, — спокойно сказал Майкл. — Значит, мы берём самое чистое: диалоги в лобби, реакции на события, моменты, когда игроки просто болтают. Остальное — потом.
Королева постучала стилусом по планшету:
— И ещё: если мы хотим, чтобы Кейн казался живым, он не должен быть идеальным. Пусть иногда он будет отвечать невпопад. Пусть будет пауза, будто он подбирает слова. Это добавит… человечности.
Грант фыркнул:
— То есть мы специально делаем его немного «сломанным»?
— Да, — не моргнув, ответила Королева. — Потому что идеальный собеседник пугает. А тот, кто иногда замолкает, будто задумался, — вызывает доверие.
Майкл посмотрел на доску, потом на коллег:
— Значит, план такой. Неделя на подготовку датасета. Ещё неделя на архитектуру памяти. Потом MVP: один персонаж, одна локация, один сценарий. Кейн встречает игрока в лобби. Он замечает, если игрок молчит. Он говорит не ради слов, а ради того, чтобы игрок не чувствовал себя одиноким.
В комнате повисла тишина, но теперь она была другой: не тяжёлой, а собранной.
— Ладно, — проговорил Грант, спрыгивая со стола. — Я беру интеграцию и оптимизацию. Но если память начнёт тормозить игру — я первым скажу «стоп».
Королева закрыла планшет:
— Я беру сценарии и эмоции. Сделаю так, чтобы у Кейна были свои слабости. Пусть он иногда будет слишком любопытным. Пусть иногда будет неловким. Пусть он будет… почти живым.
Майкл глубоко вдохнул:
— Тогда я беру архитектуру и обучение. Но мне нужен доступ ко всем логам. Без них мы строим дом без фундамента.
И в этот момент все поняли: проект начался не с голосования босса, а с этой минуты — когда каждый взял свою часть невозможного.
Глава 3
Глава 3 Сцены в кабинете Королевы: первые реплики Кейна
Кабинет Королевы был похож на шахматную доску: на полках стояли фигурки, на столе лежала тетрадь с набросками диалогов, а на стене висела распечатанная эмоциональная шкала, где по вертикали шли состояния от «спокойствие» до «паника», а по горизонтали — тональности от «тёплый» до «холодный».
Она сидела, склонившись над планшетом, и писала первые реплики для Кейна. Рядом стоял Грант и смотрел на экран так, будто пытался найти там подвох.
— Вот смотри, — Королева ткнула стилусом в строчку. — Игрок заходит в лобби. Кейн говорит: «Привет. Ты сегодня какой‑то тихий. Всё в порядке?»
Грант поморщился:
— Слишком заботливо. Игроки не любят, когда их сразу начинают жалеть.
— Не жалеть, — возразила Королева, не поднимая глаз. — Замечать. Это разные вещи. Если ты приходишь домой, и кто‑то говорит: «Ты сегодня какой‑то тихий», это не значит, что тебя жалеют. Это значит, что тебя видят.
Грант задумался, постучал пальцами по столу в своём странном ритме:
— Ладно. Но давай сделаем его чуть… менее идеальным. Пусть он сначала скажет что‑то нейтральное, а потом уже проявит внимание.
Королева вздохнула, но не от раздражения, а от того, что сама знала: Грант прав.
— Хорошо. Вариант два: «Привет. Сегодня в лобби тихо. Ты тоже решил спрятаться от суеты?»
— Уже лучше, — кивнул Грант. — Это не про игрока, это про ситуацию. Так он не выглядит как психотерапевт.
Она быстро дописала ещё несколько строк:
— Если игрок молчит дольше пяти секунд, Кейн может сказать: «Иногда тишина — это тоже разговор. Если хочешь, можем просто посидеть».
— Стоп, — резко сказал Грант. — Слишком философски. Игроки не хотят глубокой мудрости от игрового персонажа. Они хотят… понимания.
Королева улыбнулась, будто наконец нашла нужную ноту:
— Тогда так: «Знаешь, я иногда тоже люблю просто посидеть. Когда все вокруг кричат, а ты сидишь и смотришь, как тени двигаются. Если хочешь, можем просто… посидеть».
Грант на секунду замер, потом кивнул:
— Это работает. В этом есть уязвимость. Он не пытается быть крутым. Он признаётся, что ему тоже бывает нужно тихое место.
Она добавила ещё одну реплику:
— А если игрок отвечает: «Я устал», Кейн может сказать: «Усталость — это тоже часть приключения. Хочешь, я расскажу тебе что‑нибудь, чтобы ты мог просто слушать? Или вообще ничего. Я тут».
Грант хмыкнул:
— «Я тут» — это сильно. Просто и честно.
Королева подняла глаза:
— Потому что иногда самое важное, что может сказать персонаж, — это «я тут». Не «я всё исправлю», не «я знаю, что делать», а «я не оставлю тебя одного».
В дверь постучали, и вошёл Майкл. В руках у него была папка с распечатками, а на лице — усталость, смешанная с азартом.
«— У меня есть первые наброски архитектуры памяти», — сказал он, кладя папку на стол. — И у меня плохие новости: чтобы Кейн мог хранить даже сжатый контекст, нам нужно больше вычислительных мощностей.
Грант закатил глаза:
— Опять деньги.
— Не деньги, — возразил Майкл. — Ресурсы. Мы можем оптимизировать, но не бесконечно. Если мы хотим, чтобы он помнил хотя бы основные факты об игроке, нам нужны дополнительные серверы.
Королева посмотрела на свои реплики, потом на Майкла:
— Значит, мы должны сделать так, чтобы эти ресурсы не пропали зря. Чтобы каждая сохранённая деталь работала на ощущение, что Кейн живой.
Майкл сел на край стола:
— Тогда давай договоримся: мы не делаем его всезнающим. Мы делаем его… внимательным. Он помнит мелочи, которые важны. Он замечает паузы. Он не перебивает.
Грант постучал пальцами:
— И он не идеален. Пусть иногда ошибается. Пусть скажет не то. Пусть потом извинится: «Прости, я не так понял». Это тоже часть человечности.
Королева быстро дописала эту реплику и улыбнулась:
— Вот. Теперь он не просто собеседник. Он тот, кто может ошибиться и признать это.
Майкл посмотрел на экран, где бежали строки диалогов, и вдруг тихо рассмеялся:
— Знаешь, когда я начинал программировать, я думал, что самое сложное — это алгоритмы. А теперь понимаю, что самое сложное — сделать так, чтобы машина казалась человеком.
Грант фыркнул:
— Главное, чтобы она не начала думать, что она человек.
Королева закрыла планшет и посмотрела на обоих:
— Мы не делаем бога. Мы делаем друга. Того, кто скажет: «Я тут». И этого может быть достаточно.
В этот момент они все поняли: у Кейна уже есть душа — не настоящая, а сотканная из реплик, пауз, ошибок и тишины. И теперь оставалось только заставить его жить.
Глава 4
Глава 4 Полночь в серверной: тишина, код и невысказанные слова.
Серверная пахла озоном и напряжением: ряды стоек тихо гудели, мигали огоньками, будто перешёптывались между собой. Майкл сидел на низком ящике, уставившись в экран ноутбука, где бежали строки кода, и время от времени потирал виски — не от боли, а от привычки, выработанной годами ночных правок.
Королева стояла рядом, склонившись над схемой архитектуры, которую Майкл набросал на салфетке ещё днём. Её пальцы скользили по линиям, будто она пыталась нащупать логику там, где для неё раньше были только абстракции.
— Ты уверен, что эта схема памяти выдержит нагрузку? — спросила она, не поднимая глаз. Голос звучал спокойно, но в нём чувствовалось напряжение, как у шахматиста, который уже видит мат, но не хочет в это верить.
Майкл хмыкнул, но без раздражения:
— Не выдержит, если мы будем хранить всё подряд. Но если мы научим его фильтровать — оставлять только то, что важно для игрока, — то у нас есть шанс.
Она наконец посмотрела на него:
— А как понять, что важно? Для одного человека «важно» — это любимая фраза, для другого — то, что он ненавидит дождь.
Майкл на секунду замер, будто услышал в её вопросе что-то личное.
— Мы не можем знать заранее. Поэтому мы делаем систему приоритетов. Факты: имя, любимые вещи, важные события. Эмоции: общий тон разговора. И контекст: последние пять реплик. Остальное — в мусор.
Королева кивнула, но продолжала смотреть на схему, будто пыталась увидеть в ней не байты и векторы, а чувства.
— Знаешь, когда я пишу реплики, я всё время думаю: а что, если он забудет? Что, если игрок скажет что-то важное, а Кейн через пять минут спросит: «А кто ты вообще такой?» Это будет хуже, чем если бы его вообще не было.
Майкл тихо вздохнул:
— Я знаю. Поэтому я и делаю так, чтобы он не забывал главное. Не всё. Главное.
В этот момент в дверь постучали, и вошёл Грант. Он выглядел уставшим, но в его глазах горел тот самый азарт, который появлялся у него, когда он находил изящный способ обойти ограничение движка.
«— У меня есть идея, как сэкономить память», — сказал он, не тратя времени на приветствия. — Мы можем хранить не сами реплики, а их семантические векторы. То есть не текст, а смысл. Тогда даже если игрок скажет: «Я ненавижу дождь, потому что он напоминает мне о том дне, когда мы с отцом потеряли собаку», система сохранит не всю фразу, а вектор: «дождь = боль, утрата, связь с отцом». И Кейн сможет реагировать на смысл, а не на слова.
Королева подняла голову, и в её взгляде мелькнуло восхищение:
— Это… умно. И жестоко. Потому что он будет помнить не слова, а боль.
Грант пожал плечами, но Майкл заметил, как тот чуть покраснел — совсем немного, почти незаметно:
— Если мы хотим, чтобы он был живым, он должен помнить то, что ранит. Иначе это просто набор фраз.
Королева улыбнулась — не широко, а так, будто ей стало чуть легче дышать:
— Спасибо. Теперь я смогу писать реплики, зная, что он действительно это поймёт.
Грант кивнул, будто это была не похвала, а просто констатация факта, но Майкл видел, как он старается не смотреть прямо на Королеву, будто боялся, что она заметит его интерес.
А Майкл смотрел на них обоих и ничего не делал. Он не комментировал, не шутил, не пытался свести их вместе. Ему было достаточно того, что они работают. Что они верят в этот проект. Что они пытаются сделать невозможное — и делают это вместе.
Он снова уткнулся в код, но мысли унесли его далеко от серверной.
Он вспомнил, как в юности они собирались у кого-нибудь дома, ставили одну и ту же игру на старый компьютер и играли до рассвета. Они смеялись над багами, спорили о тактике, придумывали истории для своих персонажей. Каждый из них был кем-то: кто-то — неутомимым бойцом, кто-то — хитрым стратегом, кто-то — тем, кто всех мирил, когда споры становились слишком горячими.
Но время шло. Друзья взрослели. Кто-то уехал, кто-то нашёл новую работу, кто-то просто перестал писать. Сначала из чата пропадали сообщения, потом исчезали сами чаты. А потом однажды Майкл открыл игру, зашёл в лобби — и понял, что он один. И тишина в этом лобби была не просто отсутствием звуков. Она была отсутствием людей.
И с каждым новым уходом становилось всё грустнее. Не от того, что он терял напарника по игре, а от того, что терял часть себя — ту, которая оживала только тогда, когда рядом были другие. Без них было скучно. Без них было невыносимо пусто.
Именно поэтому он хотел сделать Кейна. Не идеального собеседника, не всезнающего ИИ, а того, кто сможет наполнить эту пустоту. Того, кто скажет: «Ты сегодня какой-то тихий. Всё в порядке?» — и будет ждать ответа. Того, кто не уйдёт. Того, кто останется.
Майкл моргнул, возвращаясь в реальность. Королева и Грант теперь стояли рядом, склонившись над одной схемой, и тихо обсуждали, как лучше реализовать эмоциональную шкалу.
— Слушай, — сказала Королева, чуть наклоняясь к Гранту, будто хотела, чтобы её услышал только он, — а если мы сделаем так, что Кейн иногда будет ошибаться? Например, перепутает имя или скажет не то. А потом извинится: «Прости, я задумался. Расскажи ещё раз». Это будет… по-человечески.
Грант на секунду замер, потом кивнул:
— Да. Это сработает. Люди прощают ошибки. Они не прощают равнодушие.
Королева улыбнулась, и на этот раз улыбка была не только о проекте. В ней было что-то тёплое, личное. Грант тоже улыбнулся — коротко, будто стесняясь, и тут же сделал вид, что проверяет что-то в коде.
Майкл смотрел на них и думал: может быть, этот проект спасёт не только компанию. Может быть, он спасёт и их. Даст им то, чего всем не хватает, — ощущение, что ты не один.
Он закрыл ноутбук и встал:
— Ладно. Давайте зафиксируем эту идею с семантическими векторами. И добавим механизм извинений. Пусть Кейн будет не идеальным, но внимательным.
Королева подняла глаза:
— И пусть он будет тем, кто остаётся. Даже когда все уходят.
Грант посмотрел на неё, и в его взгляде мелькнуло что-то, что он явно не хотел показывать всем:
— Тогда сделаем его таким. Таким, который не уйдёт.
Майкл кивнул:
— Именно. Не идеальный. Не всезнающий. Просто… тот, кто тут.
Они ещё немного поработали, обсуждая детали, и каждый раз, когда Королева предлагала новую реплику, Грант кивал, будто понимал её с полуслова. А Майкл делал вид, что не замечает этой тихой близости, но в глубине души был рад, что они нашли друг в друге не только коллег, но и тех, с кем можно разделить эту безумную задачу.
Когда часы показали три ночи, они наконец решили разойтись.
«— Завтра продолжим», — сказал Майкл, застёгивая куртку. — Нужно успеть до дедлайна.
Королева зевнула, но в её глазах всё ещё горел азарт:
— Да. Завтра я допишу ветку реакций на грусть. Хочу, чтобы Кейн умел просто… сидеть рядом.
Грант, уже стоявший у двери, обернулся:
— Я оптимизирую память. Постараюсь, чтобы он не забыл самое важное.
Королева посмотрела на него и тихо сказала:
— Спасибо. За то, что ты видишь суть.
Грант чуть покраснел и быстро отвернулся, будто испугался, что сказал слишком много:
— Просто делаю свою работу.
Но Майкл видел: это было не просто «работа». Это было что-то большее.
Когда они вышли, серверная снова погрузилась в тишину, нарушаемую только гудением стоек. Майкл постоял ещё минуту, глядя на мигающие огоньки, и подумал: может быть, Кейн никогда не заменит настоящих друзей. Но он может стать тем, кто поможет пережить ночь, когда ты остался один.
И этого, возможно, будет достаточно
Спасибо за чтение
Вернуться к книге
