Июня, 13:22 реального времени
— Берегись! — завопил Махмуд, заметив, что метрах в двух от земли засветилось пятно переходного тамбура.
Мак-Мэд проворно отскочил в сторону как раз в тот момент, когда из тамбура выкатился обшарпанный погрузчик с грудой ящиков. Задумчиво покрутив колесами, он со страшным грохотом рухнул вниз.
— Ксен, не дрова ведь грузишь! — возмущенно заметил Банзай.
Сидящий за рычагами погрузчика программист высунулся из кабины:
— Ну знаешь, если бы вы потрудились выучить пару команд и реестр идентификаторов, мне бы не пришлось изображать из себя грузчика!
— Нет уж, хватит, — сурово отрезал Банзай. — Кеша вот попробовал — еле откачали.
— Так то Кеша, — уныло буркнул Ксенобайт.
В том, что горемычный дизайнер снова умудрился чего-то напутать, ничего удивительного не было. Но вот последствия очень впечатлили всю компанию.
Задача была, в принципе, несложной: подключиться к одной из библиотек, куда Ксенобайт заранее сложил нарисованные Кешей модели, текстуры и прочий скарб, выбрать там нужную штуковину и установить ее в пространстве игры. Для удобства Ксенобайт даже сделал что-то вроде визуального интерфейса: здоровенный ангар со стеллажами, на которых лежали ящики. На каждом ящике было изображение содержимого или, на худой конец, ярлычок с текстовым описанием.
По мнению Ксенобайта, решительно все было сделано для удобства пользователя. Мелисса, правда, тут же рекомендовала оформить все в виде каталога, по которому нужную модель можно будет просто заказать, но пока они с Ксенобайтом спорили о теории интерфейсов, Кеша умудрился напортачить там, где никто не ждал. Как ему это удалось, осталось загадкой, но дизайнер завис где-то между редактором пространства и библиотекой, в области кода, ну никак не предусматривающей визуализации.
Ксенобайт потом утешал Кешу, что оказаться посреди выполняемого кода не так уж и плохо. Лучше, конечно, вляпаться в какой-нибудь архив, там даже по-своему красиво, но главное — все стоит на месте и можно спокойно обмозговать сложившуюся ситуацию. Даже если при этом тебя самого заархивирует. Это как йога: с непривычки действует на нервы, но со временем перестаешь замечать, что твоя левая ступня торчит у тебя из-за уха.
Вообще, затруднительно описать, что испытывает человек в виртуалке, вылетая по каким-либо причинам из зоны визуализации. Десятки предохранителей и фильтров обычно отключают пользователя прежде, чем с ним произойдет что-то уж совсем странное. Но уж если не повезет, то бедолага получает по полной программе: поток полной чепухи по всем каналам восприятия. Кеша провел в мире математической абстракции две минуты и четырнадцать секунд, но за это время, по его словам, насмотрелся такого, что волосы на голове встают дыбом. Мало того, под впечатлением пережитого он залез в вирт-редактор и нарисовал несколько «пейзажей», пытаясь передать свои впечатления. Надо сказать — получилось. Тестеры, глянув на эти абстрактные инсталляции, делали теперь все, чтобы не оказаться в схожей ситуации.
В результате доставкой объектов (а вернее, их экземпляров) из библиотек в игровое пространство занимался лично Ксенобайт. Программист, более других привычный к подобным казусам, ворчал, но не очень громко, прекрасно понимая, что в случае чего Мелисса моментально найдет ему еще какое-нибудь занятие.
Некоторые модели и даже целые сцены приходилось не возить из библиотек, уже подключенных к движку игры, а напрямую конвертировать из вирт-редактора, чтобы потом, собрав локацию, упаковать ее в новую библиотеку. Тут снова чуть не произошел конфуз, когда Ксенобайт — случайно — едва не упаковал локацию вместе с Мелиссой, Внучкой и Кешей.
Так или иначе, работа продвигалась. Тестеры начерно сотворили материк, после чего приступили к знакомой со времен Енотограда работе: обустройству локаций. Правда, на этот раз им приходилось возводить не бетонные коробки, а бамбуковые хижины, пагоды и усадьбы в абстрактно-восточном стиле, а вместо руин и свалок создавать парки и сады камней.
Впрочем, все это было лишь разминкой, небольшими тестовыми локациями, пока окончательно утверждались эскизы и сценарий стартовой местности игры. А пока Банзай решил занять всю компанию не менее важным, чем строительство, делом.
— Где выгружать?
— Я не знаю... Ну, давай вон на той полянке.
— Ладно.
Ксенобайт крутанул баранку погрузчика. Башня из напоминающих гробы ящиков качнулась и опасно накренилась. Не обращая внимания на сердитые вопли Банзая, программист бесцеремонно свалил ящики в кучу на указанной полянке.
— Ксен, ну ты совсем озверел, — поморщился Мак-Мэд. — Просто натуральный грузчик... А если сломается что-нибудь?
— Да что им сделается, — равнодушно махнул рукой Ксенобайт.
— И где теперь какой?
— А какая разница?
— Тоже правильно. Ладно, вскрывайте!
Махмуд, ворча, подошел к одному из ящиков и, примерившись, ловко вогнал под крышку ломик-активатор. Индикатор распаковки пробежался до ста процентов, после чего крышка отлетела в сторону. В похожем на гроб ящике лежало что-то очень похожее на труп, что, в общем-то, неожиданностью не было.
***
Кеша любил рисовать вирт-пространства. Еще больше он любил смотреть, как нарисованное им оживает в игровых мирах. И как никто другой он знал, что между этими двумя точками лежит целая куча тяжелой работы.
Полбеды, когда речь идет о какой-нибудь детали пейзажа, желательно статичной: например, куске стены. Гораздо сложнее разобраться, к примеру, с монстром, который должен не просто сидеть на полянке, а двигаться, атаковать, обороняться, бегать, прыгать, а порой — еще плавать и летать.
Патологически конфликтующий со всяким программированием Кеша сравнительно легко мог нарисовать достаточно сложную анимацию, просто выстраивая кадр за кадром. Но анимация персонажей для вирт-игр — штука более замысловатая. Ведь монстр должен не просто разыгрывать перед зрителем заранее определенное представление, а реагировать на поведение игрока, желательно — без видимых перескоков с одной анимации на другую.
— Ну, давайте, что ли, оживляйте покойничка, — вздохнул Банзай. — Внучка, ты готова?
— Всегда готова! — весело сообщила Внучка, оглядывая поляну через видоискатель неизменной камеры.
— Хорошо. Значит, так, я все равно буду делать захват движений, но постарайся снимать буквально все, даже если оно тебе покажется не сильно интересным, ладно?
— Нет проблем, я тут вокруг еще несколько стационарных грабберов поставила, так что будет даже с нескольких ракурсов.
— Умничка. Мак, готов?
Вместо ответа Мак-Мэд медленно растаял в воздухе. Зато «покойничек» в ящике вдруг вздрогнул, с театральным всхлипом втянул в себя воздух, утробно замычал и, вытянув вверх руки со скрюченными пальцами, сел.
— Хорош комедию ломать, вылезай, — равнодушно буркнул Банзай.
Мак-Мэд в новом теле пожал плечами и вылез из ящика. Выглядел он, что ни говори, жутковато: модель автоматически подстроилась под его габариты, но кожа еще не была текстурирована и покрашена. Гладкая, матовая, больше похожая на пластик, нежели на что-то живое, она имела пепельно-серый цвет без оттенков по всей поверхности, отчего лицо и правда напоминало физиономию свежего утопленника с бескровными губами. Мало того, широкие штаны имели тот же цвет и текстуру, отчего казалось, что они растут прямо из бедер модели. Впрочем, так оно, строго говоря, и было. Мак-Мэд потянул шеей, передернул плечами и пару раз подпрыгнул, привыкая к модели.
— Ну что ж, — проговорил наконец стрелок, — запускайте болванчика!
Ксенобайт пошевелил пальцами, вызывая панель управления. Воздух в двух метрах от Мак-Мэда вдруг подернулся рябью, сгустился, и через миг там, точно отражение в зеркале, появилось еще одно тело.