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