Страница 9 из 22
— Тимур Коршак, — Тимур сдержанно кивнул.
— Nice to meet you, Tymur,[23] — Штаерман говорил с едва уловимым испанским акцентом. И ни одной нотки уважения в голосе.
— Помнишь заказ трехлетней давности от «General Genetics»? — Пузатый крутнулся на кресле в сторону Тимура и заговорил по-украински. — Ну, те чудилы, что заказали только код.
Тимуру не пришлось насиловать память, чтобы вспомнить этот странноватый проект. Самое необычное и в то же время, пожалуй, самое легкое задание за всю его работу в «TTP Technologies». «General Genetics», будто бы разрабатывавшая компьютерную игру в стиле «экшн», заказала ботов, обученных действовать в команде, одним большим роем, но (!) при этом не предоставила практически никаких исходных данных и не представила среду, в которой будет происходить действие игры. Заказчику были нужны только голые операционные коды.
— Шеф, поймите, — наклонившись к Пузатому, зашептал Тимур, — я не компилировал тот код. Это было просто немыслимо! Я же не могу взять и скомпилировать отдельную процедуру или вырванный из контекста класс. У нас не было никакой возможности протестировать в реальной игре наши разработки. Поэтому если у них…
— Успокойся, — прервал его босс, — я хорошо помню эту странную заявку. К тебе нет никаких претензий. В этой ситуации я полностью на твоей стороне.
— А в чем проблема? И почему они спохватились только сейчас? Целых три года прошло!
Пузатый пожал плечами:
— Поговори с этим пижоном. Мне он ничего не стал объяснять. Хочет, мол, разговаривать только с разработчиком, то есть с тобой.
— О чем?
— О том, что его волнует. И не кипешуй. — Глаза Пузатого хитро блеснули. — Надеюсь, мы вытрясем из него немного денежек.
Тимур вытянулся в кресле и попробовал улыбнуться.
— Хай, Оскар! — еще раз поздоровался Тимур и деловито заговорил по-английски: — Это я писал коды по вашей заявке три года назад.
— Я уже это понял.
— И что у вас не в порядке?
— У меня все прекрасно, — когда Штаерман говорил, он почти не менялся в лице, словно вместо кожи у него была резиновая маска, — но вот ваши боты… С ними начались проблемы.
— Не сочтите за обычную отговорку, но здесь нет моей вины. — Надменность напомаженного гостя слегка раздражала Тимура. — Вспомните ваше техническое задание. Собственно, можно сказать, что его не было. Я находился в положении плотника, который делает рамы, не зная размеров окон.
— Так было нужно, — парировал Оскар.
— Воля ваша! Но что делать мне? За три года вы даже не сообщили, устроила ли вас наша работа. Для моих ботов нужно специфическое игровое пространство. Вполне вероятно, они оказались слишком сложными для вашего математического ядра.
— Сложными? — переспросил гость и как-то странно улыбнулся. — Нет-нет, они были прекрасными. Идеальными! Они анализировали все, что происходило вокруг, принимали решения, сотрудничали друг с другом, действуя как настоящий отряд. Для нас именно это было главным.
Тимур был несколько удивлен тем, что Штаерман говорил о виртуальных солдатах в прошедшем времени, словно речь шла о живых людях. И это изрядно резало слух.
— И что же произошло? Кто-то напортачил, оптимизируя код?
Оскар стиснул зубы так, что на щеках проступили желваки, и отвернулся к окну. Когда он снова повернул голову к Тимуру, в глазах его опять промелькнуло что-то фатальное и еще что-то такое, чего ну уж никак нельзя было ожидать от надутого заморского пижона. Неконтролируемый страх?.. Паника?.. Через мгновение Штаерман взял себя в руки, но на заданный вопрос так и не ответил.
— Позвольте мне сказать пару слов, — вмешался директор. — Мы сейчас меняем концепцию построения мира, — разумеется, он говорил о виртуальном игровом пространстве, трехмерной сцене, но все равно слова прозвучали коряво и пафосно. Он выглядел как Зевс на Олимпе. В самом худшем, если можно так выразиться, смысле. — Вместо описания поведения отдельных объектов — деревьев, облаков, ручьев или озер — мы переходим к агентно-ориентированному подходу. Если раньше облачко представляло собой 3D-модель, которая могла менять свою форму, размер, цвет и прозрачность в зависимости от концентрации влаги, двигалась в определенном направлении, изредка объединяясь с другими моделями такого же типа, то теперь это — огромное скопление, некая сеть или рой крошечных агентов, несущих в себе набор функций для взаимодействия со смежными агентами. Такая капля-агент сможет испаряться, конденсироваться, переходить в кристаллическую форму в зависимости от внешних условий, а также от состояния соседних агентов. — Несмотря на ужасный характер, директор по разработкам был прекрасным специалистом. Он продолжал: — Представьте — теплое облако-рой попадает в зону холодного воздуха. Пограничные или поверхностные агенты быстро охладятся и превратятся в жидкость — в игровом мире пойдет дождь. При конденсации из агента-капли выделяется энергия в виде тепла. Если воздух быстро нагревается, дождь прекращается, а облако, потерявшее часть агентов, плывет себе дальше. Если же будет прибывать холодный воздух, то внутренние агенты также сконденсируются и дождь будет идти, пока облако не иссякнет. На земле агенты соберутся в лужи, ручьи или озера, пока не испарятся снова. Вот такой непрерывный круговорот!
Директор испытующе взглянул на гостя. Оскар Штаерман сохранял невозмутимость. Его спокойствие граничило с безразличием. Дмитрий Пузатый продолжал:
— Конечно, на начальном этапе написание и настройка агентов занимает массу времени, но потом это окупится сторицей. Агентно-ориентированный подход снимает немало ограничений с виртуального мира. Теперь достаточно создать рельеф местности, загнать на сцену агентов, соответствующих воде, воздуху и органической материи, задать начальные условия — температуру, давление — и запустить солнце. В результате каждый раз у нас будет не просто игровая сцена, а уникальный и неповторимый виртуальный мир! — Чтобы усилить эффект от своих слов, босс взмахнул руками в воздухе. — Кстати, Тимур сейчас работает над тем, чтобы боты комфортно себя чувствовали в этом новом мире. Прежнее поколение тут не годится — они теряются, торопеют… в общем, никуда не годятся.
Тимур, подтверждая сказанное, сдержанно кивнул.
— Поэтому, может, вместо переделки старых проблемных кодов мы попробуем решить вашу задачу с помощью нового…
— Нет, — оборвал директора чилиец. — Не нужно никаких новых подходов. Мы хотим, чтобы тот, кто создал три года назад исходные коды для ботов, разобрался в проблемах. Я понятно выражаюсь? Для ботов. Точка.
Ни Тимур, ни Пузатый, конечно, не догадывались, что их гость (не будучи профессиональным программером) знает об агентном подходе не меньше и сам мог бы многое рассказать. Особенно о внешнем проявлении и о том, к каким результатам он может привести. Хотя тогда это уже не имело значения.
Слова чилийца задели Пузатого. Директор засопел и нахмурился.
— А какие именно проблемы? — фыркнул он.
— Я не специалист, поэтому, к сожалению, не могу вам подробно все описать, — уклонился от ответа Оскар. — Просто ваши боты ведут себя не так, как нам бы хотелось.
— Что это значит?! — вспыхнул Пузатый, забыв о выдержке и терпении, которые необходимо соблюдать при общении с клиентами. — Они голые бегают по сцене и швыряют друг в друга собственными экскрементами вместо того, чтобы атаковать игрока?
Тимур прикусил нижнюю губу. Не потому, что ему не понравилась метафора шефа. Просто так не разговаривают с клиентом.
Штаерман проигнорировал плоскую шутку. В кабинете повисло неловкое молчание.
— Может, у вас есть видео с прохождением какой-нибудь миссии, где использован мой код? — спросил Тимур. (Поиск багов начинается с изучения видеозаписи игры с экрана монитора.) — Это бы очень помогло. Его все больше и больше удивляла эта ситуация — зачем было переться черт знает куда, если все наверняка можно решить по электронной почте или по скайпу?
23
Рад познакомиться, Тимур (англ.).