Infinity: Как это было (Making Of)
Анонс конкурса и тема
Как мне кажется тема данного конкурса оказалась интересной и лично мне бросающей вызов. Дело в том, что я с геймплеем не особо лажу, а босс это очень геймплейный момент.
Всего я делал кажется лишь в двух своих играх боссов — Vzerthos и Криста фон Графф. Посчитал, что это хорошая возможность попрактиковаться в их создании.
Сначала тема меня сбила с толку и я подумал, что это о так называемом Boss Rush
По классике надумал идеи в бумагу:
Было около 6−8 идей от весьма простых, до как мне кажется интересных и сложных. Зная себя старался в итоге выбрать что будет проще. А вот какие мысли были по идеям:
- Играем за компьютерщика против вируса, который портит файлы.
- Мы школьник, а боссами выступают учителя и контрольные работы.
- Босс в стиле дарксоус и собственно игра в 3д.
- Бой с боссом в изометрии. Тут было главное как представить
т. е. визуал. - Босс стрелялка в космосе то есть шмап.
- Как 4. но босса мы выращиваем как в тамагочи и выступаем менеджером.
- Игрок собирает и строит, а босс здоровенный паук раздражает и мешает.
- Схожа с 6. Побеждаем босса и выбираем ему улучшение.
Две недели раздумий
Творческий этап конкурса 3 недели. Я хотел поучаствовать, но ничего не приходило в голову. Помимо тех 6−8 идей, но я понимал, что вероятно не осилю это. Идеи не вдохновляли так сказать.
Затем решил писать мысли не на бумажке, а в цифровом виде. Примерно в это же время я уверовал в markdown то есть разметку и форматирование прямо в обычном сплошном тексте, а я любитель приятного оформления данных.
Собственно получилось так, что придумалась 9-ая идея, которая является комбинацией трёх других — 5, 7 и 8. Записал задумку в текстовый файл сначала на пару строк, а потом это всё разрасталось и вышло 2 файла по 5 страниц с оформлением (файлы прикреплены для ознакомления).
Если очень кратко, то новая идея звучит так:
«Летаем в шмапе, наваливаем боссу и выбираем улучшение и куда лететь, а там „астероид“, где добываются ресурсы и „воюем“ с боссом ещё раз. Когда снова победили, то улучшаем себя. И так несколько раз.»
Идеей загорелся и решил исполнить задумку.
Осталась неделя (с поворотом)
Думая над идеями и записывая в документ что хочу сделать и хоба — прошло уже 2 недели, а осталась одна и я это хорошо понимал.
Записывая в такой дизайн документ вещи я одновременно планировал смогу ли я это успеть в нужный срок. У меня очень плохо с оценкой сроков работ.
Прикинул примерно такой порядок:
- первый день делаю режим shoot-em-up,
- второй доделываю и начинаю делать top-down,
- третий доделка top-down,
- четвёртый это соединение этих двух режимов и создание системы апгрейдов, пятый делаю графику,
- шестой делаю музыку и звуки,
- седьмой день доводка до ума, оформление, заливка заявки.
План как швейцарские часы. Но я был бы не я, если бы не двойной-половинный дедлайн*, который к тому же в последнее время стал иметь коэффициент не 2, а 3 или даже 4 и поймёте почему так.
* двойной-половинный дедлайн (ДПД) это когда планируешь сделать дело за неделю, а в итоге получается две, поэтому надо планировать на срок в два раза меньше, чтобы уложиться в оригинальный срок.
Инструментарий
Конечно же я выбрал движок GameMaker, который уже перестал быть Studio 2, но для меня останется таковым. Хорошо знаком с движком, поэтому предположительно никаких сюрпризов не будет, что важно при лимитах времени. Однако, взять и сделать что-то на неизвестном движке это тоже весело и полезно, одобряю.
Первые 2−3 дня всё шло очень даже по плану. Учитывая, что я заранее расписал даже список объектов (хоть он потом и пополнялся), то всё прям было чуть ли не в голове, потом в доке, а затем в движке. Было достаточно приемлемо так работать вместо сумбура.
Затем начались какие-то расстыковки: промежуточная связь оказалась сложнее, улучшения вообще заставили сесть и думать в отдельном документе больше деталей и то пришлось потом переписать систему.
Начал понимать, что есть вероятность не успеть доделать, хотя идея была простая. НО по традиции Gaminator-ов классическое продление конкурса на неделю! Ура! Но могло его бы и не быть.
Как говорится, работа занимает столько времени, сколько на неё отведено и поэтому всю следующую неделю так же делал игру, но не совсем по плану. Очень не по плану даже.
Для интересующихся вот такая git-история у меня есть:
Можно увидеть из этих скриншотов, что я лишь на 8-ой день плотно взялся именно на «связь режимов», а до этого они хоть и были связаны, но очень вяло.
Глазастые уже могли заметить, что в описаниях есть одно слово, а может и не заметили его смысла, но …
Генерация нейро-графики
Возможно для кого-то станет шоком, а может быть «а, ну понятно», но графика в этой игре имеет скорее нейронное происхождение, чем рукотворное. Но не будьте обмануты — это не просто результат генерации, руками я конечно же правил и что-то изменял и делал особые «фильтры».
На этом скриншоте исключительно сгенерированные нейросетью изображения, которая послужили материалом для создания спрайтов.
Использовал я открыто доступные онлайн сервисы для получения результата, в одном оказался даже лимит и я под конец оказался «без рисующих рук» так сказать.
Некоторые (большая часть) графики была сгенерирована гибридным методом (на самом деле называется img2img), а дальше обработка в Photoshop.
Вот такой вот пример:
Спрайты представляю из себя такую логику: сгенерировать картинку (обычно 512×512), используя особенность ФШ под названием Smart Object* уменьшаю спрайт до 64×64 (например) и кидаю на этот LowRes со смешиванием overlay и прозрачностью в 10−15% особый паттерн пиксельный, а дальше пастеризация на 4−8 цветов.
- В теории это позволило бы передумать и вместо пиксельной игры сделать просто HD контент так как итоговые картинки были и так большего размера, чем нужно.
Какие-то спрайты куда сложнее по своей структуре, чем просто накинуть фильтры, например, Босс или игрок для режима Top-Down.
А здесь игрок. Каждый кадр это группа слоёв, а слой это смарт объект, который сделан из вырезки-результата нейросети, такого вот астронавта.
Так же с использованием сети сгенерировал себе текстуру для «пола» в режиме Top-Down, а руками нарисовал грани блока. В истории изменений можно заметить, что у меня внезапно отключили свет, а результат этого оказался в том, что я потерял исходник этого спрайта, поэтому остались лишь итоговые файлы:
Интересно, догадались ли вы, что графика создана не человеком? А СЛАВНЫМ РОБОТОМ!
Но для точности нужно так же упомянуть, что вся графика эффектов и интерфейс рисовались мной, за исключением рамки в главном меню.
Звуки и музыка
Время поджимало, а игра никак не звучала. И поступил я примерно как на всякие свои старые проекты — взял звуки из своей библиотеки, а вернее со старых своих игр. Здесь есть звуки из Бумажного Подземелья, Взертоса и КОД проектов сайта Gamin.me.
По плану было быстро изучить какие-нибудь базовые вещи по музыке и сделать пару-тройку треков. Я знал, что такое возможно для меня, но качество музыки будет не очень хорошим. Собственно я и узнал в этот период о магическом музыкальном круге с аккордами, однако, свою музыку я не успел написать.
Взял ли я чужую музыку? Нет. Написал свою? Нет же! Откуда тогда? Вновь помогли СЛАВНЫЕ РОБОТЫ то есть нейросети! Посидев какое-то время и вбивая запросы я не получал того, чего именно хотел, но пара тройка треков оказалась удовлетворительными для проекта, как мне кажется и я поставил их временно, но как известно — нет ничего более постоянного, чем временное.
И тут я понял, что хорошо бы для истории в исполнители, альбом, название вписывать проект, чтобы потом знать откуда этот звук. Что собственно было сделано с некоторыми, видно что они от Vzerthos 1.
Что не реализовал
По оригинальной задумке в голове (и это даже было в документе) после победы над боссом мы-игрок занимали его место, становились боссом и воевали уже с «другим игроком», такое бы повторялось циклически.
Попадаем в пространство через кротовую нору. Улучшаемся до такой степени, что мы становимся как босс. В конце уничтожаем изначального босса и сражаемся с сами собой «из прошлого». Может быть 3 концовки:
- Мы побеждаем корабль-игрок — возвращаемся монстром или парадокс.
- Даём уничтожить себя корабль-игроку — возвращается корабль игрока и типа хорошо.
- В прошлых этапах терпим поражение и это гамовер
Каноничной концовкой был бы вариант 2 конечно же, а 1 давал бы петлю или вроде того.
Но оценивая силы и сжалившись над игроком решено было сделать куда проще — побеждать босса пока не закончатся улучшения.
Итоги
Во-первых спасибо организаторам и сайту за конкурс, во-вторых стримерам, которые играю в конкурсные игры и в-третьих отдельно TheDreik, так сказать, евангелист-пропагандист, благодаря которому я вообще пробовал нейросети вообще и в этом проекте в частности.
Небольшое мнение о нейросетях: это выдающийся помощник, но как и любой инструмент — тут имеет значение в чьих руках и какая затем последует обработка. На текущий момент уже есть возможности ставить нейронки на относительно маломощные машины и следовательно генерировать всё локально без привязки к правилам онлайн сервисов, которые иногда ведут себя крайне странно, хотя и понятно (лимиты на генерации, ложные NSFW срабатывания). У многих они даже вызывают опасения, что заменят художников и я не буду скрывать, что и в моих мыслях есть то, что нейросети заметно пошатнут всю эту область. Так или иначе сеть помогла мне чуть ли не в последний момент сделать музыку собственно без знания музыки. Аналогично думаю и с графикой — для тех кто не особо умеет рисовать это мана небесная. Конец мнения.
Для себя понял, что зря опять ввязался в мульти-жанровость. Это была ошибка и надо было сделать простой Shoot’em up, без ненужного режима Top-down.
Как показывают стримы и комментарии стримеров\игроков снова у меня вышла медленная, скучная игра, где даже босс нудный!
Как говорится, стабильность признак мастерства, да?
Спасибо всем поигравшим и\или прочитавшим! В комментариях делитесь своим мнением об этом всём!
- 01 декабря 2022, 21:00
- 013
Комментариев пока нет