Рассказывая о любопытном ролевом проекте Ash of Gods, мы уже предлагали вам ознакомиться с дневниками разработчиков, но если вы до сих пор этого не сделали, возможно, сейчас самое время? Тем более, что глава проекта Николай Бондаренко пишет весьма интересно.
Я стремлюсь завершить игру за календарный год. Это чертовски сложно, даже когда точно знаешь, что нужно делать. С самого начала было понятно, что всё придется создавать одновременно: писать роман, превращать его в сценарий, работать над его технической адаптацией для запуска в Unity, рисовать окружение и персонажей, визуальные эффекты, анимации для боёвки. Всё в лучших традициях indie agile — движение быстрыми уверенным шагами вперед, даже когда ни черта не ясно, как именно стоит идти к цели. Обратная сторона медали — спустя 4 месяца активной работы над этой игрой у нас всё еще нет сборки, в которой всё, что мы сделали, можно было бы показать как цельный продукт. И сейчас мы семимильными шагами двигаемся к этому.
В поисках стиля
Большая часть августа и весь сентябрь ушли на поиск стилистики и техники рисования сцен. И тут я, как новоявленный «эй-я-знаю-всё» немного облажался. Рассчитывал, что концепт-художник Владимир Малаховский, мой товарищ и близкий друг нашего арт-директора Игоря, поможет с адаптацией стилистики сцен. Я уже работал с Владимиром над игрой Cradle of Magic, и он делал там тёплую и ламповую рисованную графику, которая на первый взгляд нам подходила.
«Я очень хотел диснеевские «Fire and Ice», LotR, «Снежная королева» Союзмультфима 1957 года и «Двенадцать месяцев» 1956 — тонкая линия, простые формы и заливки, теплая цветовая гамма, простая работа с цветом. И при этом достаточно близкое к комиксу».
Нынешняя же стилистика Владимира, однако, оказалась больше похожа на классические работы маслом, и была явно не тем, к чему мы стремились:
Попытка привнести больше реализма и четкости обернулась слишком долгим рисованием сцен. А стилистика оказалась достаточно сложна для того, чтобы другие художники могли работать в ней без заметной разницы.
Мы потеряли почти месяц на эксперименты, и это жутко демотивировало. На фоне того, что с персонажкой у нас всё получилось с первой же попытки — это выглядело провалом. Хорошо, что Игорь (арт-директор) вовремя вспомнил про Андрея Жердева, в первых же набросках которого чувствовалось именно то, что мы искали:
В конце августа (спасибо социальным сетям) мы нашли Юлию Жохову — прекрасную художницу, у которой был опыт работы в нужной нам иллюстративной технике. Начались поиски референсов и нащупывание стилистики, которой бы удалось верно передать атмосферу повествования. На город Альбус, его окрестности и двор дома Торна Бренина у нас ушло почти 1,5 месяца. При всей видимой простоте выработанная техника рисования (кисти, колористика, свет) всё ещё требовала уйму времени. Отдельно пришлось продумать дизайн растительности — отдельных деревьев, массивов и кустов. Понять, как верно рисовать строительные материалы. Так, в первой версии, наш Альбус смотрелся словно его минуту назад создал джин из сошедших мгновение назад со станка материалов.
Параллакс (это когда разные слои на картинке двигаются с разной скоростью) — наше всё, однако при работе с первой сценой у нас просто не было инструментов, чтобы тестировать то, что ребята рисовали в Photoshop. Мы делали это на коленке, создавая аниматики сразу в фотошопе.
Первая попытка собрать аниматик сцены в Unity произошла в конце сентября:
Нам нужно было найти решение, которое бы не только визуально всех устраивало, но и позволяло бы создавать контент быстро. Не уверен, впрочем, что нам это до конца удалось — с каждой новой сценой появляется что-то интересное и новое, чего не хватает в уже сделанном материале. Хочется вернуться и всё переделать или, как минимум, дорисовать. К середине декабря мы научились рисовать одну сцену в 1,5 — 2 экрана шириной за 2-3 недели — от идеи до сборки в Unity. Эта, сцена, «Деревня у Арки» возле города Урсус одна из наших первых побед:
В ней Юля использовала часть практик, которые чуть раньше были использованы Андреем Жердевым в третьем эпизоде игры (мы не показывали эти сцены) — элементы работы со светом, горные массивы на заднем плане, растительность, стилистика рисования Менгиров (здоровенные камни, образующие арку). Подобные штуки позволили здорово сократить время работы над иллюстрацией.
Привет, Unity
На картинке выше видно, как выглядит базовая режиссура эпизода — управление камерой, точками начала диалогов. Это как раз та часть, которую мы активно пишем прямо сейчас. Первый позыв — взять Fungus (единственное внятное решение для визуальных новелл в Unity) для нас не сработал. Повествование в эпизодах сильно связано с работой камеры и авторским текстом. Ничего такого в Fungus нет, а инструментарий для работы с ветвлением не такой удобный как в Articy (об этой штуке ниже).
Начали мы однако с другого — перенесли основные правила из прототипа в код игры на Unity и сделали для себя реализацию контроллера анимации для воспроизведения анимации на поле боя и написали небольшой инструмент для импорта отдельных клипов боевых анимаций:
Необходимо было решить сразу несколько проблем. Так, в настоящей последовательности удара Rush — 53 кадра, и персонаж в этой анимации достаточно много двигается — приседает, вертит корпусом, отходит. Боевое поле представлено в изометрической проекции и для того, чтобы каждая анимация плавно переходила от одной к другой, у всех таких кадров должна быть верно выставлена точки привязки. Иными словами то, как вы центрируете одни кадры по отношению к другим. По наивности своей, я рассчитывал, что такая плёвая и обычная операция для любой 2D игры (а у меня достаточно большой опыт работы с такими материалами во Flash) обязательно будет в Unity. Как оказалось, таких инструментов, как впрочем и кучи всего другого, чего ты ждешь от платформы для 2D игры, в нём нет. Более того, практически всё, что можно найти в open source или магазине Unity для 2D игр, заточено исключительно под платформеры. Так что импорт и выравнивание боевых анимаций пришлось писать самостоятельно.
Следом мы занялись частью, которая воспроизводит анимации, чтобы проверить, что наши клипы с ходьбой, ударами и мастер позой сделаны правильно и смотрятся прилично.
При этом, когда мы начали писать код в Unity у нас уже был прототип боевой системы (https://game.aurumdust.com), написанный мной на JavaScript. Сейчас мы всё еще добавляем и тестируем классы в нём, следуя правилу — пиши быстро и не думай о последствиях. Считаю, что главная сложность для реализации в Unity была в попытке перенести наш прототип, proof of concept боевой системы, максимально точно, сохранив всё, что есть в вебе, и при этом задолго до того, как начнётся работа над ИИ. Или мы решим внедрять готовые анимации, или в целом делать что-то серьезное именно с этой частью игры. Мне было важно сделать это как можно раньше, чтобы понять, насколько сложным это окажется, и как нам следует строить разработку в целом.
Очень важно было сделать так, чтобы всю математику и механики, что мы добавляем в прототип, можно было быстро перенести в финальную версию игры — умения и параметры классов, карты, правила перемещения и тому подобное.
Каждое умение — это небольшой текстовый файл в формат YAML, в котором в декларативной форме описано, как работает умение. Тут можно быстро изменять параметры, добавлять или убирать эффекты или просто менять механику поведения отдельных классов. Это позволяет в считанные минуты проверять те идеи, которыми делятся люди, играющие с нами в прототип. Так, к примеру, идею класса «Молотобоец» нам подсказал Voice of Reason. Получился класс, который может перемещаться практически по всему полю, а единственная его цель — не дать не походившему персонажу противника сделать ход. Нужно несколько минут, чтобы завести класс и начать смотреть, как он играет и влияет на игровой процесс.
Сюжет?
Всё это время Сергей Малицкий (автор сценария) и Дмитрий Ерохин (геймдизайнер) независимо работали с Articy. Эта такая штука, которая позволяет нам писать и проверять сценарий вне зависимости от того, как пишется код игры. Еще нельзя полноценно поиграть в новеллу, но мы уже можем «поиграть» в первые 5 эпизодов в Articy — проверить, как работает ветвление и выборы.
Почти месяц, с середины ноября, мы параллельно занимались режиссурой диалогов — как нужно правильно ставить персонажей в сцене, как делать переключение планов на двумерных сценах. В диалогах в игре участвует максимум 7 человек, так что мы пришли к модели «трех сцен» — двух основных и одной дополнительной. Геймдизайнер задает для каждой из таких сцен, какой персонаж где стоит, а Articy управляет тем, кто сейчас говорит.
Любой курс операторской работы в кино расскажет вам необходимую теорию — как правильно ставить камеру при разговоре группы людей, как делать смену планов и какие правила нельзя нарушать. Но при попытке эмулировать эти правила в 2D натыкаешься на ряд сложностей — камеру нельзя поворачивать, поэтому естественное для трехмерной сцены движение нужно как-то симулировать. Так же, при производстве фильма, режиссеру достаточно скомандовать, и оператор начнет снимать очередную реплику с другой камеры. Но при разработке игры нам крайне не хотелось каждый раз выставлять положение камеры руками, потому как это больше похоже на самоубийство — уже сейчас в игре порядка 2000 реплик (если я все верно посчитал). Мы потратили почти неделю на то, чтобы понять, как и когда нужно менять планы, чтобы всё смотрелось красиво.
И да, articy:access api — это большая боль. На поверку работа с ним оказалась не такой простой, как обещали рекламные проспекты. Истории «взял и всё сразу работает» с ним не вышло. Еще я с некоторым трепетом думаю о процессе локализации — обещанные с 2014 года инструменты интернационализации в Articy так и не появились. Не то, чтобы это была аховая проблема, но нервничать заставляет всё равно.
Что дальше
Впереди ещё 37 персонажей, 21 сцена и 12 боевых полей. Нарисовали 7 сцен и 3 поля боя. С начала сентября мы нарисовали 22 диалоговых портрета персонажей и 6 отдельных миниатюр для врагов на поле боя. Это чуть больше трети от общего числа персонажей в игре и судя по всему мы успеем нарисовать всех, кто нам нужен. Нарисовали кучу концепт арта для интро ролика.
До конца месяца будут готовы первые комплекты анимаций для боевых миниатюр — Фиск, Рамлин, Кригер, Арк и Соп. К середине февраля — еще десять персонажей, а к началу лета их число должно быть в районе 30. При этом мы отстаем на 4-5 календарных недель со сценами и на 2-3 недели по сценарному плану. И пока думаем, что со всем этим делать. Урезать контент или искать пути ускориться? Не знаю.
Иногда закончить сложнее, чем начать, знаете? Так что, пускай будет блиц из того, что нас замучило. Аааа, мы не успеваем. Замучила зима. В 16:30 уже темно и кажется, что дня больше не существует — просыпаешь когда ещё темно, а заканчиваешь когда уже темно. Сосед с перфоратором не даёт писать сюжет. И еще — почему-то очень мало часов в сутках.