Страница:
— То есть ты ехал из Антофагасты? — глотая от волнения слова, уточнил он.
— Да, синьор. Откуда же еще могла прикатить моя колымага?
Кардиохирург побелел, ощущая, как сердце сжимается от непонятного страха. Это не пазл, который не подходит к картине. Это картина, которая рассыпается на куски от одного-единственного неправильного пазла.
— К-к-когда это произошло?
— Что именно? — сконфуженно переспросил шофер.
— Когда ты нарвался на существо? — рявкнул Джей-Ди. — Скажи мне время!
— Вы имеете в виду парня?
— Да!
Текито закатил глаза, припоминая ход событий этого вечера.
— Сразу после захода солнца, незадолго до шести. Через полчаса после того, как я проехал Кармен-Альто.
У новозеландца опять отвисла челюсть. Он встретил парня за полчаса до этого.
— Этого не может быть…
— Чего, сеньор?
Ричардсон не слушал водителя. Он мог найти объяснение всему: странному поведению мальчика, его присутствию в пустыне, даже превращению в фарш его головы. Для всего вышеперечисленного можно было найти разумное, более-менее правдоподобное объяснение. Только не для того, что обнаружилось сейчас. Текито указал пальцем на другую дорогу: Флавио и Ричардсон ехали в Каламу с востока из Сан-Педро, тогда как Текито вел свой грузовик совсем по другой дороге — с юго-запада от Антофагасты через Кармен-Альто.
Хотя не это было главным.
Новозеландец опустил глаза и посмотрел на шкалу масштаба в правом нижнем углу карты. Подняв ладонь, Джей-Ди приложил большой палец к точке посреди шоссе «Кармен-Альто — Калама» на юг от города, там, где Рейес сбил мальчика, а указательным дотянулся до точки, где они с Флавио наткнулись на белокожее существо. Потом, не меняя относительное положение пальцев, приложил их к шкале расстояний внизу карты. Получилось 100 — 120 километров. По прямой. Через непроходимое пространство, усеянное скалами, изрезанное расщелинами и полузасыпанное барханами.
Джей-Ди беспомощно таращился на карту. Что же это получается? Сначала он встречается с этим существом, а через полчаса грузовик Текито сбивает его уже на другой дороге, в другом конце Атакамы. Парень не мог раздвоиться, значит, он пересек девственную пустыню со скоростью примерно 250 км/ч… Ни одно живое существо на Земле не способно двигаться с такой скоростью.
Джей-Ди, как пьяный, вышел на улицу и направился к своему отелю. В голове гудело, как в растревоженном улье. Плечи тряслись, а сердце делало паузу при каждом шорохе из темных переулков. Всюду ему виделись злые и загадочные белокожие мальчики. Ричардсон не верил в привидения, телепортацию, туннели в подпространстве, искривление времени и прочую подобную чертовщину, а потому боролся со страхом, стараясь разрешить парадокс, пытаясь найти для всего приемлемое объяснение.
Уже у самого отеля Ричардсон споткнулся о бордюр тротуара и едва не растянулся на асфальте. В этот момент что-то как будто вспыхнуло перед глазами. Он остановился и замер — испугался, что мысль уйдет, так и не выкристаллизовавшись. Этого, к счастью, не случилось.
— Мальчики, — пробормотал Джей-Ди. — Не мальчик, а мальчики.
Вот так Джей-Ди Ричардсон, сорокапятилетний кардиохирург, имеющий к дальнейшим событиям весьма опосредованное отношение, так как уже через пару часов он отправится домой в Окленд и благополучно избежит всего того непотребства, которое вскоре начнет твориться на просторах Атакамы, стал первым, кто пришел (пока что) к этому единственно верному в данной ситуации выводу: «Так значит, их было двое!»
VI
Вызов
VII
VIII
— Да, синьор. Откуда же еще могла прикатить моя колымага?
Кардиохирург побелел, ощущая, как сердце сжимается от непонятного страха. Это не пазл, который не подходит к картине. Это картина, которая рассыпается на куски от одного-единственного неправильного пазла.
— К-к-когда это произошло?
— Что именно? — сконфуженно переспросил шофер.
— Когда ты нарвался на существо? — рявкнул Джей-Ди. — Скажи мне время!
— Вы имеете в виду парня?
— Да!
Текито закатил глаза, припоминая ход событий этого вечера.
— Сразу после захода солнца, незадолго до шести. Через полчаса после того, как я проехал Кармен-Альто.
У новозеландца опять отвисла челюсть. Он встретил парня за полчаса до этого.
— Этого не может быть…
— Чего, сеньор?
Ричардсон не слушал водителя. Он мог найти объяснение всему: странному поведению мальчика, его присутствию в пустыне, даже превращению в фарш его головы. Для всего вышеперечисленного можно было найти разумное, более-менее правдоподобное объяснение. Только не для того, что обнаружилось сейчас. Текито указал пальцем на другую дорогу: Флавио и Ричардсон ехали в Каламу с востока из Сан-Педро, тогда как Текито вел свой грузовик совсем по другой дороге — с юго-запада от Антофагасты через Кармен-Альто.
Хотя не это было главным.
Новозеландец опустил глаза и посмотрел на шкалу масштаба в правом нижнем углу карты. Подняв ладонь, Джей-Ди приложил большой палец к точке посреди шоссе «Кармен-Альто — Калама» на юг от города, там, где Рейес сбил мальчика, а указательным дотянулся до точки, где они с Флавио наткнулись на белокожее существо. Потом, не меняя относительное положение пальцев, приложил их к шкале расстояний внизу карты. Получилось 100 — 120 километров. По прямой. Через непроходимое пространство, усеянное скалами, изрезанное расщелинами и полузасыпанное барханами.
Джей-Ди беспомощно таращился на карту. Что же это получается? Сначала он встречается с этим существом, а через полчаса грузовик Текито сбивает его уже на другой дороге, в другом конце Атакамы. Парень не мог раздвоиться, значит, он пересек девственную пустыню со скоростью примерно 250 км/ч… Ни одно живое существо на Земле не способно двигаться с такой скоростью.
Джей-Ди, как пьяный, вышел на улицу и направился к своему отелю. В голове гудело, как в растревоженном улье. Плечи тряслись, а сердце делало паузу при каждом шорохе из темных переулков. Всюду ему виделись злые и загадочные белокожие мальчики. Ричардсон не верил в привидения, телепортацию, туннели в подпространстве, искривление времени и прочую подобную чертовщину, а потому боролся со страхом, стараясь разрешить парадокс, пытаясь найти для всего приемлемое объяснение.
Уже у самого отеля Ричардсон споткнулся о бордюр тротуара и едва не растянулся на асфальте. В этот момент что-то как будто вспыхнуло перед глазами. Он остановился и замер — испугался, что мысль уйдет, так и не выкристаллизовавшись. Этого, к счастью, не случилось.
— Мальчики, — пробормотал Джей-Ди. — Не мальчик, а мальчики.
Вот так Джей-Ди Ричардсон, сорокапятилетний кардиохирург, имеющий к дальнейшим событиям весьма опосредованное отношение, так как уже через пару часов он отправится домой в Окленд и благополучно избежит всего того непотребства, которое вскоре начнет твориться на просторах Атакамы, стал первым, кто пришел (пока что) к этому единственно верному в данной ситуации выводу: «Так значит, их было двое!»
VI
Фрэнк Ди’Анно, который рассчитывал провести на севере Чили максимум пять дней, задержался там на долгих три недели. Ему пришлось сменить комфортабельный гостиничный номер в Каламе на мрачный следственный изолятор в Сантьяго.
Но ни частые изнурительные допросы Ди’Анно и Рейеса, ни тщательная проверка томографа не дали следствию никаких зацепок. Томограф оказался исправен и работал как швейцарские часы. Независимый эксперт подтвердил, что подобный инцидент мог произойти, только если череп несчастного мальчика был выложен изнутри металлическими пластинами, которые под действием магнитного поля могли разворотить ему голову. Однако никаких металлических пластин не было, и ничего не дали и новые исследования трупа. В крови мальчика был обнаружен целый букет гормональных стероидов, в частности альдостерон[14], и это было странно, но никак не объясняло, с чего это вдруг его голова лопнула, как упавший с дерева переспевший абрикос. Во всем остальном это был совершенно обыкновенный двенадцатилетний мальчик.
Еще более странно сложилась ситуация с идентификацией пустынного найденыша. Его никто не искал. Ни до, ни после инцидента никто не обратился в полицию с заявлением об исчезновении белокурого мальчика, ни одна из отдыхавших в Чили семей детей не теряла, в МИД не поступило ни одного запроса от зарубежных посольств. Скрупулезный поиск в базе данных таможенной службы среди иностранцев, въезжавших в страну в последние полгода, тоже ничем не помог. Формально пацана просто не существовало.
Следствие зашло в тупик.
В общем, продолжение дела сулило проблемы, которых никто не хотел. Поэтому спустя некоторое время тело мальчика отвезли обратно в Атакаму и там закопали. Папку с делом сожгли. Фрэнку приказали уносить подальше ноги (для верности влепив в паспорт ярко-красный штамп «ДЕПОРТИРОВАН»). Что он с радостью и сделал.
Никто не подозревал, что странный инцидент — это лишь начало настоящих проблем.
Но ни частые изнурительные допросы Ди’Анно и Рейеса, ни тщательная проверка томографа не дали следствию никаких зацепок. Томограф оказался исправен и работал как швейцарские часы. Независимый эксперт подтвердил, что подобный инцидент мог произойти, только если череп несчастного мальчика был выложен изнутри металлическими пластинами, которые под действием магнитного поля могли разворотить ему голову. Однако никаких металлических пластин не было, и ничего не дали и новые исследования трупа. В крови мальчика был обнаружен целый букет гормональных стероидов, в частности альдостерон[14], и это было странно, но никак не объясняло, с чего это вдруг его голова лопнула, как упавший с дерева переспевший абрикос. Во всем остальном это был совершенно обыкновенный двенадцатилетний мальчик.
Еще более странно сложилась ситуация с идентификацией пустынного найденыша. Его никто не искал. Ни до, ни после инцидента никто не обратился в полицию с заявлением об исчезновении белокурого мальчика, ни одна из отдыхавших в Чили семей детей не теряла, в МИД не поступило ни одного запроса от зарубежных посольств. Скрупулезный поиск в базе данных таможенной службы среди иностранцев, въезжавших в страну в последние полгода, тоже ничем не помог. Формально пацана просто не существовало.
Следствие зашло в тупик.
В общем, продолжение дела сулило проблемы, которых никто не хотел. Поэтому спустя некоторое время тело мальчика отвезли обратно в Атакаму и там закопали. Папку с делом сожгли. Фрэнку приказали уносить подальше ноги (для верности влепив в паспорт ярко-красный штамп «ДЕПОРТИРОВАН»). Что он с радостью и сделал.
Никто не подозревал, что странный инцидент — это лишь начало настоящих проблем.
Вызов
VII
Четверг, 13 августа, 10:05 (UTC +2)
Отдел «Gaming AI»[15] компании «Time-To-Play Technologies»
Киев, Украина
Тимур Коршак просматривал почту, когда на столе зазвонил телефон.
— Я слушаю, — парень поднял трубку.
— Тимур, — прозвучал там сухой голос босса, заставивший парня непроизвольно напрячься, — ты не занят?
— Нет… Пока нет… — Тимур нахмурился. Утренние звонки начальства, как правило, ничего хорошего не предвещали.
Шеф выдержал длинную непонятную паузу, а потом бесцветным тоном произнес:
— Тогда отрывай задницу от стула и шагай ко мне в кабинет. Есть разговор.
Тимур поморщился. Если директор по разработкам с самого утра приглашает к себе в кабинет, жди неприятностей. Это означает одно из двух: либо сверхсрочное задание из серии «умри-но-сделай», когда нужно выдать десять тысяч строк программного кода за день, либо внеплановую раздачу тумаков (как правило, из-за того, что какой-нибудь мегапродвинутый долбоюзер замордовал вчера до потери пульса всю службу поддержки). А скорее всего и то, и другое одновременно.
— Уже иду, — ответил Тимур и повесил трубку, думая, как на удивление быстро может испортиться так хорошо начавшийся день.
Пока он в задумчивости ворошил руками взлохмаченные непослушные волосы, над перегородкой, отделявшей друг от друга рабочие места, вынырнула увесистая голова Ярика.
— На ковер к Пузатому? — спросила голова, дожевывая утренний пончик. Фамилия директора по стратегическим разработкам и развитию (сокращенно — директор по СРР) — Пузатый — позволяла подчиненным обходиться без дополнительных прозвищ, хотя характер начальника, сварливый, как у разбуженного раньше срока медведя, и подталкивал к словотворчеству.
Тимур хмуро кивнул.
— Бить будет? — с нескрываемой надеждой и сарказмом поинтересовался Ярик.
— Не знаю.
— Есть за что? — не унимался Ярик.
Тимур задумался. В последнее время вроде особо не портачили.
— Не знаю, чувак…
— Значит, за старое, — авторитетно заключил коллега.
Получать тумаки «за старое» было особенно неприятно. После этого, как правило, приходилось ковыряться в древних программных кодах, которые неизвестно кто после тебя латал и перекраивал, заново вникать в концепцию модуля, а то и всей программы, выискивать кучу дополнительных файлов с функциями и классами, которыми, скорее всего, уже давным-давно никто не пользовался.
— Не дай Бог, — буркнул Тимур. — Ну, пойду, пока он не начал вонять.
— Удачи, — ехидно подмигнула голова и снова нырнула за перегородку.
Тимур перевел рабочую станцию в спящий режим. В черном дисплее отразилось его лицо: правильный овал, слегка нарушенный торчащими ушами, спокойно поблескивающие светло-серые глаза. Высокий широкогрудый Тимур не был похож на заядлого программиста с постоянной недельной щетиной, сгорбленной спиной и спасательным кругом из жира на поясе.
Оттолкнувшись вместе с креслом от стола, Тимур быстро поднялся на ноги и двинулся по направлению к начальству.
Отдел «Gaming AI»[15] компании «Time-To-Play Technologies»
Киев, Украина
Тимур Коршак просматривал почту, когда на столе зазвонил телефон.
— Я слушаю, — парень поднял трубку.
— Тимур, — прозвучал там сухой голос босса, заставивший парня непроизвольно напрячься, — ты не занят?
— Нет… Пока нет… — Тимур нахмурился. Утренние звонки начальства, как правило, ничего хорошего не предвещали.
Шеф выдержал длинную непонятную паузу, а потом бесцветным тоном произнес:
— Тогда отрывай задницу от стула и шагай ко мне в кабинет. Есть разговор.
Тимур поморщился. Если директор по разработкам с самого утра приглашает к себе в кабинет, жди неприятностей. Это означает одно из двух: либо сверхсрочное задание из серии «умри-но-сделай», когда нужно выдать десять тысяч строк программного кода за день, либо внеплановую раздачу тумаков (как правило, из-за того, что какой-нибудь мегапродвинутый долбоюзер замордовал вчера до потери пульса всю службу поддержки). А скорее всего и то, и другое одновременно.
— Уже иду, — ответил Тимур и повесил трубку, думая, как на удивление быстро может испортиться так хорошо начавшийся день.
Пока он в задумчивости ворошил руками взлохмаченные непослушные волосы, над перегородкой, отделявшей друг от друга рабочие места, вынырнула увесистая голова Ярика.
— На ковер к Пузатому? — спросила голова, дожевывая утренний пончик. Фамилия директора по стратегическим разработкам и развитию (сокращенно — директор по СРР) — Пузатый — позволяла подчиненным обходиться без дополнительных прозвищ, хотя характер начальника, сварливый, как у разбуженного раньше срока медведя, и подталкивал к словотворчеству.
Тимур хмуро кивнул.
— Бить будет? — с нескрываемой надеждой и сарказмом поинтересовался Ярик.
— Не знаю.
— Есть за что? — не унимался Ярик.
Тимур задумался. В последнее время вроде особо не портачили.
— Не знаю, чувак…
— Значит, за старое, — авторитетно заключил коллега.
Получать тумаки «за старое» было особенно неприятно. После этого, как правило, приходилось ковыряться в древних программных кодах, которые неизвестно кто после тебя латал и перекраивал, заново вникать в концепцию модуля, а то и всей программы, выискивать кучу дополнительных файлов с функциями и классами, которыми, скорее всего, уже давным-давно никто не пользовался.
— Не дай Бог, — буркнул Тимур. — Ну, пойду, пока он не начал вонять.
— Удачи, — ехидно подмигнула голова и снова нырнула за перегородку.
Тимур перевел рабочую станцию в спящий режим. В черном дисплее отразилось его лицо: правильный овал, слегка нарушенный торчащими ушами, спокойно поблескивающие светло-серые глаза. Высокий широкогрудый Тимур не был похож на заядлого программиста с постоянной недельной щетиной, сгорбленной спиной и спасательным кругом из жира на поясе.
Оттолкнувшись вместе с креслом от стола, Тимур быстро поднялся на ноги и двинулся по направлению к начальству.
VIII
Поднимаясь по ступенькам со второго этажа на третий, где располагались кабинеты аналитиков и дирекция, Тимур продолжал размышлять, что же могло стать причиной утреннего вызова.
«Time-To-Play Technologies» сделала себе имя на том, что называется «gaming environment» — игровое окружение. Специалисты «TTP» годами разрабатывали математические модели ветра, травы, кустов, деревьев, даже отдельных листочков, камней на дороге, пыли, а также алгоритмы их взаимодействия. Упорная совместная работа математиков, физиков, 3D-моделлеров и программистов компании позволила создать максимально приближенный к реальному виртуальный мир. И дело было не только во внешнем сходстве. В играх, которые выпустила «Time-To-Play Technologies», шли «настоящие» дожди, непрерывно дули ветра, солнце пряталось за тучи и снова выходило из-за них, причем все это не было заранее запрограммировано на конкретное время и место, а происходило по «естественным» причинам, так же, как и в природе.
Тимур специализировался на ботах. Его основная задача состояла в том, чтобы «житель» такого совершенного виртуального мира вел себя реалистично. Однако из-за большого количества различных процессов, которые одновременно моделирует программа (они называются потоками), очень непросто научить бота правильно выбирать дорогу, обходя заболоченные или заросшие кустами места, прятаться с учетом текущей видимости, безошибочно определять «живые» объекты (других ботов или игрока) в среде, где движется практически все, и при этом не забывать о своей главной задаче: атаковать или защищать игрока — единственное по-настоящему мыслящее существо игрового мира. Никогда не знаешь, в каком месте и в какое время потоки пересекутся друг с другом. После того как была разработана базовая концепция «игрового интеллекта» и создано программное ядро, возникли проблемы. Оказалось, что встроить ботов в игру — еще полдела. Намного сложнее отучить их от неадекватных действий в такой сложной реальности, а именно: от расстреливания кучек опавшей листвы, взвеянной налетевшим ветром, петляния между лужами, когда до противника остаются считанные шаги, и тому подобной деятельности.
Тимуру пришлось создавать ботов, которые не просто носятся по сцене, стреляют или уворачиваются от пуль, а еще и взаимодействуют с окружающей средой. Анализируют виртуальный мир. Но благодаря этому каждая игра и получается уникальной. Сколько бы раз игрок не проходил один и тот же уровень, игра никогда полностью не повторится.
Выход в свет первой части FPS[16] «Stalker» не на шутку встряхнул всю мировую индустрию компьютерных игр. В одних только Штатах продали более двух миллионов дисков с игрой, а чистая прибыль компании достигла 14 миллионов долларов. Причиной такого успеха стала не только старательно прорисованная непрерывная игровая среда. Фанатов компьютерных стрелялок покорило поведение ботов, которые разительно отличались от своих прямолинейных собратьев из «DOOM 3», «Half-Life 2» и даже «Unreal ІІ: Awakening». Боты были настолько реалистичны, что иногда казались… живыми. За два года никому не известная украинская компания закрепилась на рынке, получила кучу заказов и даже начала формировать тренды в игровой индустрии. И все это в значительной мере благодаря Тимуру.
Шагая по коридору, Тимур размышлял над тем, что же могло вызвать гнев начальства. Четвертый add-on[17] к «Сталкеру» был выпущен на рынок полгода назад. Баги[18] там, конечно, были, но это все касалось сюжета и текстур на отдельных 3D-моделях. К его ботам претензий не было. Новое поколение бойцов, над которым он сейчас трудился, было на стадии эскизного проектирования. Дай Бог, чтобы через два года их направили на тестирование.
«Значит, если влетит, то за старое», — заключил парень, остановившись у кабинета директора по СРР. Он прислушался, на миг задержавшись. Из-за дверей приглушенно доносились голоса. Пузатый был не один и разговаривал с кем-то по-английски.
Тимур глубоко вздохнул и постучал.
— Входите, — донеслось из-за двери.
Тимур изобразил беззаботность и вошел в кабинет.
— А, Тимур! Здоро́во! Заходи, садись, — директор показал на одно из кресел.
Пузатый был крупным мужчиной, совсем лысым, с соответствующим фамилии круглым брюхом. Лицо его украшала задиристая мясистая челюсть. Повернувшись к гостю, загорелому иностранцу в пижонском деловом костюме, свободно расположившемуся на кожаном диване по другую от Тимура сторону стола для переговоров, директор произнес по-английски с ужасным акцентом:
— Here is that guy![19] — и недвусмысленно кивнул на Тимура. Тот вежливо поздоровался и уселся в кресло, догадываясь, что переговоры между этими двумя велись о нем.
— O’kеy… I see… — вальяжно ответил незнакомец. — He’s so young[20].
— Only twenty seven[21].
— That’s strange[22].
Мужчина сидел, положив ногу на ногу, и небрежно разглядывал Тимура. Из его темных глаз веяло холодом и какой-то обреченностью. Тимур вдруг понял, что тумаки отменяются. Но легче ему от этого не стало.
— Оскар Штаерман, — представил незнакомца директор. Штаерман был чилийцем с еврейскими корнями.
— Тимур Коршак, — Тимур сдержанно кивнул.
— Nice to meet you, Tymur,[23] — Штаерман говорил с едва уловимым испанским акцентом. И ни одной нотки уважения в голосе.
— Помнишь заказ трехлетней давности от «General Genetics»? — Пузатый крутнулся на кресле в сторону Тимура и заговорил по-украински. — Ну, те чудилы, что заказали только код.
Тимуру не пришлось насиловать память, чтобы вспомнить этот странноватый проект. Самое необычное и в то же время, пожалуй, самое легкое задание за всю его работу в «TTP Technologies». «General Genetics», будто бы разрабатывавшая компьютерную игру в стиле «экшн», заказала ботов, обученных действовать в команде, одним большим роем, но (!) при этом не предоставила практически никаких исходных данных и не представила среду, в которой будет происходить действие игры. Заказчику были нужны только голые операционные коды.
— Шеф, поймите, — наклонившись к Пузатому, зашептал Тимур, — я не компилировал тот код. Это было просто немыслимо! Я же не могу взять и скомпилировать отдельную процедуру или вырванный из контекста класс. У нас не было никакой возможности протестировать в реальной игре наши разработки. Поэтому если у них…
— Успокойся, — прервал его босс, — я хорошо помню эту странную заявку. К тебе нет никаких претензий. В этой ситуации я полностью на твоей стороне.
— А в чем проблема? И почему они спохватились только сейчас? Целых три года прошло!
Пузатый пожал плечами:
— Поговори с этим пижоном. Мне он ничего не стал объяснять. Хочет, мол, разговаривать только с разработчиком, то есть с тобой.
— О чем?
— О том, что его волнует. И не кипешуй. — Глаза Пузатого хитро блеснули. — Надеюсь, мы вытрясем из него немного денежек.
Тимур вытянулся в кресле и попробовал улыбнуться.
— Хай, Оскар! — еще раз поздоровался Тимур и деловито заговорил по-английски: — Это я писал коды по вашей заявке три года назад.
— Я уже это понял.
— И что у вас не в порядке?
— У меня все прекрасно, — когда Штаерман говорил, он почти не менялся в лице, словно вместо кожи у него была резиновая маска, — но вот ваши боты… С ними начались проблемы.
— Не сочтите за обычную отговорку, но здесь нет моей вины. — Надменность напомаженного гостя слегка раздражала Тимура. — Вспомните ваше техническое задание. Собственно, можно сказать, что его не было. Я находился в положении плотника, который делает рамы, не зная размеров окон.
— Так было нужно, — парировал Оскар.
— Воля ваша! Но что делать мне? За три года вы даже не сообщили, устроила ли вас наша работа. Для моих ботов нужно специфическое игровое пространство. Вполне вероятно, они оказались слишком сложными для вашего математического ядра.
— Сложными? — переспросил гость и как-то странно улыбнулся. — Нет-нет, они были прекрасными. Идеальными! Они анализировали все, что происходило вокруг, принимали решения, сотрудничали друг с другом, действуя как настоящий отряд. Для нас именно это было главным.
Тимур был несколько удивлен тем, что Штаерман говорил о виртуальных солдатах в прошедшем времени, словно речь шла о живых людях. И это изрядно резало слух.
— И что же произошло? Кто-то напортачил, оптимизируя код?
Оскар стиснул зубы так, что на щеках проступили желваки, и отвернулся к окну. Когда он снова повернул голову к Тимуру, в глазах его опять промелькнуло что-то фатальное и еще что-то такое, чего ну уж никак нельзя было ожидать от надутого заморского пижона. Неконтролируемый страх?.. Паника?.. Через мгновение Штаерман взял себя в руки, но на заданный вопрос так и не ответил.
— Позвольте мне сказать пару слов, — вмешался директор. — Мы сейчас меняем концепцию построения мира, — разумеется, он говорил о виртуальном игровом пространстве, трехмерной сцене, но все равно слова прозвучали коряво и пафосно. Он выглядел как Зевс на Олимпе. В самом худшем, если можно так выразиться, смысле. — Вместо описания поведения отдельных объектов — деревьев, облаков, ручьев или озер — мы переходим к агентно-ориентированному подходу. Если раньше облачко представляло собой 3D-модель, которая могла менять свою форму, размер, цвет и прозрачность в зависимости от концентрации влаги, двигалась в определенном направлении, изредка объединяясь с другими моделями такого же типа, то теперь это — огромное скопление, некая сеть или рой крошечных агентов, несущих в себе набор функций для взаимодействия со смежными агентами. Такая капля-агент сможет испаряться, конденсироваться, переходить в кристаллическую форму в зависимости от внешних условий, а также от состояния соседних агентов. — Несмотря на ужасный характер, директор по разработкам был прекрасным специалистом. Он продолжал: — Представьте — теплое облако-рой попадает в зону холодного воздуха. Пограничные или поверхностные агенты быстро охладятся и превратятся в жидкость — в игровом мире пойдет дождь. При конденсации из агента-капли выделяется энергия в виде тепла. Если воздух быстро нагревается, дождь прекращается, а облако, потерявшее часть агентов, плывет себе дальше. Если же будет прибывать холодный воздух, то внутренние агенты также сконденсируются и дождь будет идти, пока облако не иссякнет. На земле агенты соберутся в лужи, ручьи или озера, пока не испарятся снова. Вот такой непрерывный круговорот!
Директор испытующе взглянул на гостя. Оскар Штаерман сохранял невозмутимость. Его спокойствие граничило с безразличием. Дмитрий Пузатый продолжал:
— Конечно, на начальном этапе написание и настройка агентов занимает массу времени, но потом это окупится сторицей. Агентно-ориентированный подход снимает немало ограничений с виртуального мира. Теперь достаточно создать рельеф местности, загнать на сцену агентов, соответствующих воде, воздуху и органической материи, задать начальные условия — температуру, давление — и запустить солнце. В результате каждый раз у нас будет не просто игровая сцена, а уникальный и неповторимый виртуальный мир! — Чтобы усилить эффект от своих слов, босс взмахнул руками в воздухе. — Кстати, Тимур сейчас работает над тем, чтобы боты комфортно себя чувствовали в этом новом мире. Прежнее поколение тут не годится — они теряются, торопеют… в общем, никуда не годятся.
Тимур, подтверждая сказанное, сдержанно кивнул.
— Поэтому, может, вместо переделки старых проблемных кодов мы попробуем решить вашу задачу с помощью нового…
— Нет, — оборвал директора чилиец. — Не нужно никаких новых подходов. Мы хотим, чтобы тот, кто создал три года назад исходные коды для ботов, разобрался в проблемах. Я понятно выражаюсь? Для ботов. Точка.
Ни Тимур, ни Пузатый, конечно, не догадывались, что их гость (не будучи профессиональным программером) знает об агентном подходе не меньше и сам мог бы многое рассказать. Особенно о внешнем проявлении и о том, к каким результатам он может привести. Хотя тогда это уже не имело значения.
Слова чилийца задели Пузатого. Директор засопел и нахмурился.
— А какие именно проблемы? — фыркнул он.
— Я не специалист, поэтому, к сожалению, не могу вам подробно все описать, — уклонился от ответа Оскар. — Просто ваши боты ведут себя не так, как нам бы хотелось.
— Что это значит?! — вспыхнул Пузатый, забыв о выдержке и терпении, которые необходимо соблюдать при общении с клиентами. — Они голые бегают по сцене и швыряют друг в друга собственными экскрементами вместо того, чтобы атаковать игрока?
Тимур прикусил нижнюю губу. Не потому, что ему не понравилась метафора шефа. Просто так не разговаривают с клиентом.
Штаерман проигнорировал плоскую шутку. В кабинете повисло неловкое молчание.
— Может, у вас есть видео с прохождением какой-нибудь миссии, где использован мой код? — спросил Тимур. (Поиск багов начинается с изучения видеозаписи игры с экрана монитора.) — Это бы очень помогло. Его все больше и больше удивляла эта ситуация — зачем было переться черт знает куда, если все наверняка можно решить по электронной почте или по скайпу?
Впервые с начала разговора иностранец заколебался:
— Вы не понимаете. — Косматые брови взлетели вверх, Оскар подался вперед. — Чтобы разобраться, надо оказаться на месте. Собственно, для этого я и прилетел сюда. Мне нужен ты, Тимур.
Тимур и его босс переглянулись.
— Я вас правильно понял? Вы хотите, чтобы Тимур съездил к вам?
— Да. Мы хотим взять в аренду вашего специалиста. Иначе толку не будет.
Такого поворота ни Тимур, ни босс не ждали. Еще никто и никогда не просил одолжить на время сотрудника «TTP Technologies». Это смахивало на какое-то средневековье — прислать гонца, чтобы забрать мастера к себе для работы. Чушь! И опять же — зачем посылать кого бы то ни было за тридевять земель, если обо всем можно договориться по электронке?
Директор озадаченно притих. Задумался.
— Мы щедро заплатим, — добавил чилиец.
— Мы — это кто? — вставил Тимур. Три года назад, когда ему поручили проект, который в «TTP Technologies» считали несерьезным, заказчиком выступала «General Genetics», однако договор был подписан с физическим лицом, то есть де-юре «General Genetics» не имела к нему отношения. За работу исправно платили, всегда авансом, причем деньги переводили не из США, а из какой-то латиноамериканской страны (Тимур уже не мог вспомнить, из какой именно).
— Экспериментальный центр «NGF Lab», — последовал ответ. — Научная организация, которая проводит исследования по заказу различных независимых фондов и частных лиц. Инвестиции, в основном, американские и японские.
— «NGF Lab»? — переспросил Пузатый.
— Да.
Пузатый скосил глаза на лежавшую на его столе визитку Штаермана. На ней стоял логотип другой организации — «General Genetics».
— И куда надо лететь? — поинтересовался Тимур.
Лицо Оскара не дрогнуло. Только глаза напряглись, поменяли цвет: из карих стали совсем черными. Словно вода в глубоком мрачном колодце. Не мигая, чилиец ответил:
— Лаборатория находится в пустыне Атакама. Это север Чили.
— Где?! — босс раскрыл рот.
— Чили, Южная Америка.
Тут директор вспомнил, что три года назад деньги приходили именно из чилийского банка, «ABN AMOR Bank Chili». Но чтобы экспериментальный центр находился в пустыне?! И именно в этот момент он окончательно понял, что «General Genetics», или «NGF Lab», или как там она называется, производит что угодно, но только не компьютерные стрелялки. Босс посмотрел на Тимура. «Fuck it!»[24] — одними губами выговорил парень.
— Какая, к черту, пустыня, амиго? — Пузатый отбросил формальности прочь.
«Time-To-Play Technologies» сделала себе имя на том, что называется «gaming environment» — игровое окружение. Специалисты «TTP» годами разрабатывали математические модели ветра, травы, кустов, деревьев, даже отдельных листочков, камней на дороге, пыли, а также алгоритмы их взаимодействия. Упорная совместная работа математиков, физиков, 3D-моделлеров и программистов компании позволила создать максимально приближенный к реальному виртуальный мир. И дело было не только во внешнем сходстве. В играх, которые выпустила «Time-To-Play Technologies», шли «настоящие» дожди, непрерывно дули ветра, солнце пряталось за тучи и снова выходило из-за них, причем все это не было заранее запрограммировано на конкретное время и место, а происходило по «естественным» причинам, так же, как и в природе.
Тимур специализировался на ботах. Его основная задача состояла в том, чтобы «житель» такого совершенного виртуального мира вел себя реалистично. Однако из-за большого количества различных процессов, которые одновременно моделирует программа (они называются потоками), очень непросто научить бота правильно выбирать дорогу, обходя заболоченные или заросшие кустами места, прятаться с учетом текущей видимости, безошибочно определять «живые» объекты (других ботов или игрока) в среде, где движется практически все, и при этом не забывать о своей главной задаче: атаковать или защищать игрока — единственное по-настоящему мыслящее существо игрового мира. Никогда не знаешь, в каком месте и в какое время потоки пересекутся друг с другом. После того как была разработана базовая концепция «игрового интеллекта» и создано программное ядро, возникли проблемы. Оказалось, что встроить ботов в игру — еще полдела. Намного сложнее отучить их от неадекватных действий в такой сложной реальности, а именно: от расстреливания кучек опавшей листвы, взвеянной налетевшим ветром, петляния между лужами, когда до противника остаются считанные шаги, и тому подобной деятельности.
Тимуру пришлось создавать ботов, которые не просто носятся по сцене, стреляют или уворачиваются от пуль, а еще и взаимодействуют с окружающей средой. Анализируют виртуальный мир. Но благодаря этому каждая игра и получается уникальной. Сколько бы раз игрок не проходил один и тот же уровень, игра никогда полностью не повторится.
Выход в свет первой части FPS[16] «Stalker» не на шутку встряхнул всю мировую индустрию компьютерных игр. В одних только Штатах продали более двух миллионов дисков с игрой, а чистая прибыль компании достигла 14 миллионов долларов. Причиной такого успеха стала не только старательно прорисованная непрерывная игровая среда. Фанатов компьютерных стрелялок покорило поведение ботов, которые разительно отличались от своих прямолинейных собратьев из «DOOM 3», «Half-Life 2» и даже «Unreal ІІ: Awakening». Боты были настолько реалистичны, что иногда казались… живыми. За два года никому не известная украинская компания закрепилась на рынке, получила кучу заказов и даже начала формировать тренды в игровой индустрии. И все это в значительной мере благодаря Тимуру.
Шагая по коридору, Тимур размышлял над тем, что же могло вызвать гнев начальства. Четвертый add-on[17] к «Сталкеру» был выпущен на рынок полгода назад. Баги[18] там, конечно, были, но это все касалось сюжета и текстур на отдельных 3D-моделях. К его ботам претензий не было. Новое поколение бойцов, над которым он сейчас трудился, было на стадии эскизного проектирования. Дай Бог, чтобы через два года их направили на тестирование.
«Значит, если влетит, то за старое», — заключил парень, остановившись у кабинета директора по СРР. Он прислушался, на миг задержавшись. Из-за дверей приглушенно доносились голоса. Пузатый был не один и разговаривал с кем-то по-английски.
Тимур глубоко вздохнул и постучал.
— Входите, — донеслось из-за двери.
Тимур изобразил беззаботность и вошел в кабинет.
— А, Тимур! Здоро́во! Заходи, садись, — директор показал на одно из кресел.
Пузатый был крупным мужчиной, совсем лысым, с соответствующим фамилии круглым брюхом. Лицо его украшала задиристая мясистая челюсть. Повернувшись к гостю, загорелому иностранцу в пижонском деловом костюме, свободно расположившемуся на кожаном диване по другую от Тимура сторону стола для переговоров, директор произнес по-английски с ужасным акцентом:
— Here is that guy![19] — и недвусмысленно кивнул на Тимура. Тот вежливо поздоровался и уселся в кресло, догадываясь, что переговоры между этими двумя велись о нем.
— O’kеy… I see… — вальяжно ответил незнакомец. — He’s so young[20].
— Only twenty seven[21].
— That’s strange[22].
Мужчина сидел, положив ногу на ногу, и небрежно разглядывал Тимура. Из его темных глаз веяло холодом и какой-то обреченностью. Тимур вдруг понял, что тумаки отменяются. Но легче ему от этого не стало.
— Оскар Штаерман, — представил незнакомца директор. Штаерман был чилийцем с еврейскими корнями.
— Тимур Коршак, — Тимур сдержанно кивнул.
— Nice to meet you, Tymur,[23] — Штаерман говорил с едва уловимым испанским акцентом. И ни одной нотки уважения в голосе.
— Помнишь заказ трехлетней давности от «General Genetics»? — Пузатый крутнулся на кресле в сторону Тимура и заговорил по-украински. — Ну, те чудилы, что заказали только код.
Тимуру не пришлось насиловать память, чтобы вспомнить этот странноватый проект. Самое необычное и в то же время, пожалуй, самое легкое задание за всю его работу в «TTP Technologies». «General Genetics», будто бы разрабатывавшая компьютерную игру в стиле «экшн», заказала ботов, обученных действовать в команде, одним большим роем, но (!) при этом не предоставила практически никаких исходных данных и не представила среду, в которой будет происходить действие игры. Заказчику были нужны только голые операционные коды.
— Шеф, поймите, — наклонившись к Пузатому, зашептал Тимур, — я не компилировал тот код. Это было просто немыслимо! Я же не могу взять и скомпилировать отдельную процедуру или вырванный из контекста класс. У нас не было никакой возможности протестировать в реальной игре наши разработки. Поэтому если у них…
— Успокойся, — прервал его босс, — я хорошо помню эту странную заявку. К тебе нет никаких претензий. В этой ситуации я полностью на твоей стороне.
— А в чем проблема? И почему они спохватились только сейчас? Целых три года прошло!
Пузатый пожал плечами:
— Поговори с этим пижоном. Мне он ничего не стал объяснять. Хочет, мол, разговаривать только с разработчиком, то есть с тобой.
— О чем?
— О том, что его волнует. И не кипешуй. — Глаза Пузатого хитро блеснули. — Надеюсь, мы вытрясем из него немного денежек.
Тимур вытянулся в кресле и попробовал улыбнуться.
— Хай, Оскар! — еще раз поздоровался Тимур и деловито заговорил по-английски: — Это я писал коды по вашей заявке три года назад.
— Я уже это понял.
— И что у вас не в порядке?
— У меня все прекрасно, — когда Штаерман говорил, он почти не менялся в лице, словно вместо кожи у него была резиновая маска, — но вот ваши боты… С ними начались проблемы.
— Не сочтите за обычную отговорку, но здесь нет моей вины. — Надменность напомаженного гостя слегка раздражала Тимура. — Вспомните ваше техническое задание. Собственно, можно сказать, что его не было. Я находился в положении плотника, который делает рамы, не зная размеров окон.
— Так было нужно, — парировал Оскар.
— Воля ваша! Но что делать мне? За три года вы даже не сообщили, устроила ли вас наша работа. Для моих ботов нужно специфическое игровое пространство. Вполне вероятно, они оказались слишком сложными для вашего математического ядра.
— Сложными? — переспросил гость и как-то странно улыбнулся. — Нет-нет, они были прекрасными. Идеальными! Они анализировали все, что происходило вокруг, принимали решения, сотрудничали друг с другом, действуя как настоящий отряд. Для нас именно это было главным.
Тимур был несколько удивлен тем, что Штаерман говорил о виртуальных солдатах в прошедшем времени, словно речь шла о живых людях. И это изрядно резало слух.
— И что же произошло? Кто-то напортачил, оптимизируя код?
Оскар стиснул зубы так, что на щеках проступили желваки, и отвернулся к окну. Когда он снова повернул голову к Тимуру, в глазах его опять промелькнуло что-то фатальное и еще что-то такое, чего ну уж никак нельзя было ожидать от надутого заморского пижона. Неконтролируемый страх?.. Паника?.. Через мгновение Штаерман взял себя в руки, но на заданный вопрос так и не ответил.
— Позвольте мне сказать пару слов, — вмешался директор. — Мы сейчас меняем концепцию построения мира, — разумеется, он говорил о виртуальном игровом пространстве, трехмерной сцене, но все равно слова прозвучали коряво и пафосно. Он выглядел как Зевс на Олимпе. В самом худшем, если можно так выразиться, смысле. — Вместо описания поведения отдельных объектов — деревьев, облаков, ручьев или озер — мы переходим к агентно-ориентированному подходу. Если раньше облачко представляло собой 3D-модель, которая могла менять свою форму, размер, цвет и прозрачность в зависимости от концентрации влаги, двигалась в определенном направлении, изредка объединяясь с другими моделями такого же типа, то теперь это — огромное скопление, некая сеть или рой крошечных агентов, несущих в себе набор функций для взаимодействия со смежными агентами. Такая капля-агент сможет испаряться, конденсироваться, переходить в кристаллическую форму в зависимости от внешних условий, а также от состояния соседних агентов. — Несмотря на ужасный характер, директор по разработкам был прекрасным специалистом. Он продолжал: — Представьте — теплое облако-рой попадает в зону холодного воздуха. Пограничные или поверхностные агенты быстро охладятся и превратятся в жидкость — в игровом мире пойдет дождь. При конденсации из агента-капли выделяется энергия в виде тепла. Если воздух быстро нагревается, дождь прекращается, а облако, потерявшее часть агентов, плывет себе дальше. Если же будет прибывать холодный воздух, то внутренние агенты также сконденсируются и дождь будет идти, пока облако не иссякнет. На земле агенты соберутся в лужи, ручьи или озера, пока не испарятся снова. Вот такой непрерывный круговорот!
Директор испытующе взглянул на гостя. Оскар Штаерман сохранял невозмутимость. Его спокойствие граничило с безразличием. Дмитрий Пузатый продолжал:
— Конечно, на начальном этапе написание и настройка агентов занимает массу времени, но потом это окупится сторицей. Агентно-ориентированный подход снимает немало ограничений с виртуального мира. Теперь достаточно создать рельеф местности, загнать на сцену агентов, соответствующих воде, воздуху и органической материи, задать начальные условия — температуру, давление — и запустить солнце. В результате каждый раз у нас будет не просто игровая сцена, а уникальный и неповторимый виртуальный мир! — Чтобы усилить эффект от своих слов, босс взмахнул руками в воздухе. — Кстати, Тимур сейчас работает над тем, чтобы боты комфортно себя чувствовали в этом новом мире. Прежнее поколение тут не годится — они теряются, торопеют… в общем, никуда не годятся.
Тимур, подтверждая сказанное, сдержанно кивнул.
— Поэтому, может, вместо переделки старых проблемных кодов мы попробуем решить вашу задачу с помощью нового…
— Нет, — оборвал директора чилиец. — Не нужно никаких новых подходов. Мы хотим, чтобы тот, кто создал три года назад исходные коды для ботов, разобрался в проблемах. Я понятно выражаюсь? Для ботов. Точка.
Ни Тимур, ни Пузатый, конечно, не догадывались, что их гость (не будучи профессиональным программером) знает об агентном подходе не меньше и сам мог бы многое рассказать. Особенно о внешнем проявлении и о том, к каким результатам он может привести. Хотя тогда это уже не имело значения.
Слова чилийца задели Пузатого. Директор засопел и нахмурился.
— А какие именно проблемы? — фыркнул он.
— Я не специалист, поэтому, к сожалению, не могу вам подробно все описать, — уклонился от ответа Оскар. — Просто ваши боты ведут себя не так, как нам бы хотелось.
— Что это значит?! — вспыхнул Пузатый, забыв о выдержке и терпении, которые необходимо соблюдать при общении с клиентами. — Они голые бегают по сцене и швыряют друг в друга собственными экскрементами вместо того, чтобы атаковать игрока?
Тимур прикусил нижнюю губу. Не потому, что ему не понравилась метафора шефа. Просто так не разговаривают с клиентом.
Штаерман проигнорировал плоскую шутку. В кабинете повисло неловкое молчание.
— Может, у вас есть видео с прохождением какой-нибудь миссии, где использован мой код? — спросил Тимур. (Поиск багов начинается с изучения видеозаписи игры с экрана монитора.) — Это бы очень помогло. Его все больше и больше удивляла эта ситуация — зачем было переться черт знает куда, если все наверняка можно решить по электронной почте или по скайпу?
Впервые с начала разговора иностранец заколебался:
— Вы не понимаете. — Косматые брови взлетели вверх, Оскар подался вперед. — Чтобы разобраться, надо оказаться на месте. Собственно, для этого я и прилетел сюда. Мне нужен ты, Тимур.
Тимур и его босс переглянулись.
— Я вас правильно понял? Вы хотите, чтобы Тимур съездил к вам?
— Да. Мы хотим взять в аренду вашего специалиста. Иначе толку не будет.
Такого поворота ни Тимур, ни босс не ждали. Еще никто и никогда не просил одолжить на время сотрудника «TTP Technologies». Это смахивало на какое-то средневековье — прислать гонца, чтобы забрать мастера к себе для работы. Чушь! И опять же — зачем посылать кого бы то ни было за тридевять земель, если обо всем можно договориться по электронке?
Директор озадаченно притих. Задумался.
— Мы щедро заплатим, — добавил чилиец.
— Мы — это кто? — вставил Тимур. Три года назад, когда ему поручили проект, который в «TTP Technologies» считали несерьезным, заказчиком выступала «General Genetics», однако договор был подписан с физическим лицом, то есть де-юре «General Genetics» не имела к нему отношения. За работу исправно платили, всегда авансом, причем деньги переводили не из США, а из какой-то латиноамериканской страны (Тимур уже не мог вспомнить, из какой именно).
— Экспериментальный центр «NGF Lab», — последовал ответ. — Научная организация, которая проводит исследования по заказу различных независимых фондов и частных лиц. Инвестиции, в основном, американские и японские.
— «NGF Lab»? — переспросил Пузатый.
— Да.
Пузатый скосил глаза на лежавшую на его столе визитку Штаермана. На ней стоял логотип другой организации — «General Genetics».
— И куда надо лететь? — поинтересовался Тимур.
Лицо Оскара не дрогнуло. Только глаза напряглись, поменяли цвет: из карих стали совсем черными. Словно вода в глубоком мрачном колодце. Не мигая, чилиец ответил:
— Лаборатория находится в пустыне Атакама. Это север Чили.
— Где?! — босс раскрыл рот.
— Чили, Южная Америка.
Тут директор вспомнил, что три года назад деньги приходили именно из чилийского банка, «ABN AMOR Bank Chili». Но чтобы экспериментальный центр находился в пустыне?! И именно в этот момент он окончательно понял, что «General Genetics», или «NGF Lab», или как там она называется, производит что угодно, но только не компьютерные стрелялки. Босс посмотрел на Тимура. «Fuck it!»[24] — одними губами выговорил парень.
— Какая, к черту, пустыня, амиго? — Пузатый отбросил формальности прочь.