Размышляя над разнообразием контента для своего ТГ-канала, посвящённого разработке, меня посетила одна занимательная идея, а именно: запустить новую рубрику с названием «Игра одним дублем». Суть рубрики следует из названия. Включая запись, нужно было бы с нуля начать делать какую-либо небольшую игру, останавливая запись только тогда, когда игра была бы полностью готова. Целью «Игры одним дублем» было получение видеоматериалов, содержащих полный процесс создания игры от «А» до «Я», включая создание визуальной части, написание музыки, звуков и т. п. Единственной подготовкой перед записью было бы составление плана того, что за игра будет создаваться и какие инструменты для этого будут использоваться.
Установив для рубрики правила, я начал готовиться к первой записи, как раз составляя план будущей игры. Для первого раза я решил не придумывать ничего сложного и в качестве жанра выбрал простой 2D-платформер на получение очков и установку рекордов. Игровым персонажем была выбрана космическая альпака (космическая потому, что она в космосе и в шлеме), которая должна будет удерживаться как можно дольше на постоянно движущихся платформах. Для реализации этой задачи я выбрал следующие инструменты: Unity — движок, на котором будет собираться игра; VS Code — среда для написания скриптов; Paint — программа для создания визуальной составляющей игры; дефолтный диктофон, встроенный в Windows, для записи звуков и музыки; OBS Studio — программа для записи видео.
Обычно для создания игровых спрайтов (картинок) я использую приложение Procreate, а для создания звуков и музыки — Cubasis (мобильная версия Cubase), но для первого видео для этих целей я захотел использовать те инструменты, которые по умолчанию есть на любом Windows 10 и доступны каждому без предварительной покупки и установки.
И вот настал день создания. Запись пошла… Я быстро проговорил, что буду делать ближайшие несколько часов, открыл Paint и начал рисовать элементы, из которых будут состоять будущие объекты игры. Для упрощения процесса рисования я использовал встроенные в Paint шаблоны и геометрические фигуры, так как рисовать мышкой после использования графического планшета является той ещё болью, да и времени долго ковыряться не было — ведь нужно было успеть сделать ещё очень много всего. Сами элементы для альпаки были сделаны с помощью шаблона диалогового облака, как в комиксах, с наложением дополнительных геометрических фигур; платформой для прыжков стал простой прямоугольник, залитый цветом. Весь процесс создания изображений занял у меня чуть более часа, но когда пришло время экспортировать всё это дело, я столкнулся с неожиданной проблемой, о которой даже не подозревал. Оказалось, Paint не умеет сохранять изображения в .png с прозрачным фоном, а такой формат файла необходим для нормального формирования игровых объектов. Для решения этой проблемы я стал искать сайт, на котором можно удалить фон с фотографии. Перебрав 5 сайтов, в конечном итоге удалось получить приемлемый результат.
Элемент из которого была собрана альпака.
Закончив с изображениями, я приступил к аудиосоставляющей проекта. Нужно было записать на диктофон следующие аудиофрагменты: несколько звуков для шагов, звук для прыжка, звук для геймовера и какую-нибудь музыку. Начал я с музыки: музыкальными инструментами выступили две бутылки из-под колы объёмом 0,5 л. Налив в эти бутылки разное количество воды, я продул в них что-то вроде короткой ритмичной мелодии, которая будет воспроизводиться в бесконечном цикле в игре. Далее пришёл черёд создания звука прыжка. Если прижать часть пластиковой линейки к поверхности, а другую часть отогнуть и отпустить, то получится своеобразный дребезжащий звук от колебаний линейки — такой звук я и записал для прыжка. Звук шагов был исполнен коробкой из-под чая по деревянной поверхности, а звук геймовера я записал голосом.
Инструменты, при помощи которых была озвучена игра.
Далее, используя созданные материалы, я начал собирать и программировать задуманную игру. Когда игра была сделана и доведена до уровня «играется», я остановил запись. Запись вышла на 6,5 часа. И тут случился большой облом… Эта запись была моим первым опытом использования программы OBS, и я неправильно выставил настройки приоритета экранов: в итоге на протяжении всего видео по центру экрана красовалась открытая папка, перекрывающая собой весь процесс создания игры. Видео, ради которого затевалась игра, было негодным для выкладывания и даже для монтажа. С чувством досады я выложил саму игру про альпаку в свой ТГ-канал, утешая себя тем, что осталось хоть что-то после этого утомительного процесса создания игры в один дубль. Но на этом история космической альпаки только начинается…
Скриншот из игры (звезды и планеты были добавлены позже).
Где-то через пару дней после публикации поста мне написал мой хороший друг Матвей. Его специализация — это разработка и создание всяких прототипов и рекламных роботов, которые чистят обувь или надувают мыльные пузыри, и прочее в этом роде. И Матвей попросил меня исходники проекта про космическую альпаку. На вопрос «для чего?» он ответил: «Потом увидишь». И так как никаких планов на проект у меня не было, я без колебаний отдал ему исходники на растерзание.
Где-то через месяц я увидел первый промежуточный результат его работы. Оказалось, что он решил создать альпачий мозг. Ему нужен был проект, чтобы разобраться с темой машинного обучения с подкреплением, и как раз в это самое время я и выложил подходящую для его целей игру в канал. Он создал режим под названием «Киберальпака», в котором альпака самостоятельно пытается научиться удерживаться на платформах, самостоятельно анализирует окружение и сама принимает решения к действию. Он создал режим тренировки, где дюжина альпак единовременно прыгают по платформам, получая награды и наказания за те или иные действия, и эта дюжина альпак тренировала свой коллективный киберальпачий мозг. (Возможно, позже мы подготовим более подробный материал о создании режима «Киберальпака».)
тренировка коллективного мозга двенадцатью альпаками.
Доведя обучение кибермозга до приемлемого уровня, он сделал рабочую сборку, чтобы с проектом мог ознакомиться любой желающий. Вы уже можете скачать архив с игрой с нашего сайта (exoplanet-collective.space) и посоревноваться с киберальпакой в прыжках по движущимся платформам. Можно выбрать один из трёх типов модели поведения, которые определяют навык киберальпаки. И если вы выберете последний из трёх типов, то уж поверьте, она сделает всё, чтобы не оставить вам и шанса на победу.
Графики результатов тренировок альпаки
В итоге вышло так, что если бы не идея, которая с треском провалилась, мы бы не начали проект, который развивается и масштабируется до сих пор и дарит весьма интересный опыт соревнования с компьютером.
Режим «Киберальпака»
P. S. Позже я сделал ещё одну попытку создать игру одним дублем (игру можно скачать с exoplanet-collective.space), и видео получилось на 9 часов, но, посмотрев его, я понял, что для нормальной реализации этой рубрики нужно куда больше ресурсов, чем я мог на это потратить, и идея с игрой одним дублем была отброшена насовсем.
Вторая «Игра одним дублем».