С последним в полном объеме давали о себе знать новые юридические реалии. С момента официальной регистрации «Вэнс Корп» мы вышли из яселек Старк Софта и вместе с этим лишились покровительства Харлана, храни его Уату. Более того, теперь все наши доходы с рекламы облагались налогом по полной, взрослой программе. Какие там тринадцать процентов? Теперь с каждого заработанного миллиона прибыли мы обязаны были отстегнуть государству минимум триста тысяч. Федеральный налог, налог штата, городской налог Нью-Йорка... Всё это накладывало на скорость финансового развития студии приличный такой дебафф, срезая примерно 30% эффективности. Но таков уж баланс. Новые возможности всегда накладывают новые ограничения. Интересно, а в этом мире Дядя Бэн успел сказать Паркеру культовую фразу про ответственность? Наверное, нет, раз он выглядит как гребаный маньяк из ДБД.
Но вернемся к интеграции во флагманы. Тут я наконец-то смог расчехлить заранее расставленные билборды и пустые рекламные баннеры на задних планах, просто подгрузив на них текстуры со стилизованной рекламой стриминговой площадки, которую я опять же затребовал с отдела маркетинга Катча. Бедняги, как же они носились там с горящими задницами, стараясь успеть выполнить все за одну рабочую смену.
— Файнали. — Хрипло выдохнул я, нажимая на кнопку заливки последнего апдейта, и со стоном откинулся в рабочем кресле.
Спина жалобно хрустнула, напоминая о прошедшем трехдневном марафоне, но это была приятная боль. Почти как после зала, только в пояснице и грозящая скорым защемлением седалищного нерва. Если я, конечно, не буду с этим что-нибудь делать.
Но несмотря на потери в здоровье, моя работа была завершена. Причем я постарался сделать все интеграции максимально безболезненными, в форме органичного расширения геймплея или вселенной. Никакой выскакивающей рекламы или ломающих погружение варпов на сайт регистрации.
Игроки не получат негативного опыта по отношению к Катчу, скорее наоборот — у них появится азарт и прямая мотивация изучить продвигаемый продукт. Всё-таки коллектаблсы — вещь дьявольски затягивающая. «Юбисофт» со своими бесконечными вопросиками на карте не даст соврать.
Документы по рекламной акции уже были подписаны, и оговоренная сумма должна была вот-вот упасть на наши счета. А это значило, что теперь у меня появились реальные средства, чтобы перевести студию на следующий этап. Пора завязывать с сессионными таймкиллерами, которые я клепал до этого ради выживания. Пришло время делать настоящие игры. Глубокие, сложные, с нормальным бюджетом и механиками, за которые не стыдно и Кодзиме в глаза посмотреть.
Как и ожидалось, транзакция не заставила себя ждать. На следующее утро меня разбудил звонок Выдры.
— Ваша казна пополняется, милорд! — Примерно так звучало его сообщение вместо приветствия. На этом хорошие новости не заканчивались: ему удалось согласовать пару новых рекламных контрактов.
— Сегодня что, рождество? — Я довольно крякнул, усаживаясь за рабочий стол, по привычке открыл почту, чтобы проверить, нет ли важных писем по делам лордским. И тут же наткнулся на сообщение от Коула. Взглянул на календарь: четвертое августа. — Нет, не рождество, даже по древнеславянскому календарю не выходит.
Сообщение было абсолютно пустым, если не считать прикрепленный ниже архив с тривиальным названием «ТЗ_01».
Я скачал содержимое письма, в очередной раз проигнорировав тактичную просьбу Винрара купить лицензию, и пробежался взглядом по содержимому. Спустя секунду я издал удивленный присвист, заставив дремавшую на диване Аврору вздрогнуть.
В архиве лежала на удивление грамотно спроектированная реализация «думающего» ИИ.
OffenseAI/
├──
├──
├──
├──
│
├── Goals/
│ ├──
│ └──
│
├── Actions/
│ ├──
│ ├──
│ └──
│
└── Demo/
└──
С детским азартом я запустил тестовую сцену. На экран тут же выпрыгнуло черное окно консоли с примитивной визуализацией трех линий обороны, собранных из слешей и нижних подчеркиваний.
Введите условия мира:
1 линия — Стрелки ? Стены ?
2 линия — Стрелки ? Стены ?
3 линия — Стрелки ? Стены ?
Я быстро вбил параметры, ударил по Энтеру, и программа тут же создала мир и отчиталась в дебаг-логе:
WorldState world = new WorldState();
[0] = 10;
[1] = 3;
[2] = 7;
[0] = true;
[0] = true;
[1] = true;
[1] = false;
[2] = false;
[2] = true;
В консоли скромно мигнула строчка: «Вы произвели ручную настройку мира!»
Я хмыкнул, потирая подбородок. Пока что ничего сверхъестественного. Написать простенький скрипт инициализации параметров — задача уровня первого курса, примерно так же легко, как зачизить Шреддера в Черепашках-ниндзя на старой доброй Dendy. Но набор файлов в архиве внушал надежду, так что я снова нажал Энтер, чтобы дать программе ход.