Color Escape или как я начал делать игры без программирования

wAUYR9B

Всем привет. Я тут у вас оказывается давно уже существую, и думаю что пора все же выйти из ридонли, и немного начать делиться. Начну издалека — я гуманитарий, который в качестве хобби иногда любит позалипать в инди-поделки и поделать что-нибудь. Началось это давно, но об этом в другой раз.

Самое главное что я понял — что я всё же не программист, а делать игры хочется. И ниже я поделюсь с вами первым результатом, которого мне удалось достичь с помощью Unity и визуального скриптинга Playmaker.

Предыстория

Идея аркады с непереводимым названием и механикой прохождения уровней с использованием цвета возникла у меня еще аж в 2013 году где-то — я тогда только освоил первый Construct и решил принять участие в каком-то джеме, сделав двадэ платформер с простейшими механиками ходьбы-стрельбы по цветным дверям.

Идея настолько мне зашла в плане механики, что я решил удариться в популярный тогда среди двадэшных игроделов пиксельарт, и освоив Construct2 уже на тот момент, я начал делать Color Escape 2 — сиквел придуманного мной шидевра.

UYTOEAH


На тот момент это был верх моего творческого начала в области геймдева — начиная от рисования и заканчивая сборкой механик и написанием саундтреков. Огромных 6 уровней этой умопомрачительной аркады, вдохновленной различными пиксельартовыми платформерами я таки смог осилить — получился бегающий мистер Шмордон Бримен с цветопушкой. Но Констракт2 и мои знания в нем на тот момент в итоге аннигилировали изза избытка накопившихся багов в ультралагающую 2D беготню.

И я оставил эту затею, предавшись другим непотребствам и утехам.


jBnkWK1

В итоге скользкая дорожка привела меня в Unity, где мое неумение кодить (и уже стойкое нежелание учиться делать это нормально) было компенсировано Playmaker-ом. Кто не знает, это такое визуальное программирование, аля блюпринты, только стейт-машины. И понабравшись, я решил вспомнить старую идею, и реализовать её — мне давно хотелось чего то простого, бродительного, олдскульного и без претензии на графонии. В общем хотелось самобытной адвенчуры, которую собственно и получилось сделать.

О чем игра?

Никакой затейливой предыстории — мир странного невидимого божка охватил колоровирус и игроку предстоит расчистить все проходы в этих странных архитектурных заведениях от всяких цветастых дверей.

Механика простая — бродим, ищем цвет, стреляем в цветовой замок, стреляем в врагов, и ищем выход. Иногда наступаем на джампер чтобы прыгнуть высоко, иногда заходим в телепорт, чтобы оказаться быстро где-то, иногда катаемся на платформе — просто потому что это миленько и удобненько. В качестве бонуса — собираем жизни, которые тратим, если падаем в бездну (тьма внизу) и лаву (тоже внизу, но приятно-красная). Иногда пользуемся дарами физики и дедушки Ньютона, перетаскивая коробки с места на место.

Цель — пройти уровень, чему будут мешать закрытые цветастые двери и враги.

icoZlC3

Цветастые двери кстати есть 7 цветов, в то время как используемых цветов только три — классические RGB. Иногда нужно будет открыть и желтую, и белую дверь, и тут все по правилам смешения — нужно будет в соответствующие замки кинуть нужные цвета.

Как это вышло?

На все про всё у меня ушло ровно три недели. Ну три с половиной пускай.

Где-то после январских праздников, я застрял из-за налоговой в России на пару лишних недель, и дабы не повеситься и не спиться, я решил быстро сделать аркаду. Пайплайн разработки виделся сразу — сначала делаю все базовые механики, потом геометрию, потом уже собираю уровни, меню и озвучиваю.

Так и начал. С помощью плеймейкера все задуманные механики были реализованы, кроме одной.

OMCoIb4

Джампер оказалось реализовать почти невозможно, так как я использовал стандартный контроллер для движения игрока, а управлять его подпрыгиванием из Playmaker нельзя без ракования. Я же не хотел стрелять себе лишний раз в колено и выбрал менеджерский путь — купил скрипт джампера за 700 рублей на известном фриланс-сайте. Переделывать контроллер на кастомный ради джампера мне было честно лень, поэтому если баги и будут — это всё из-за одного единственного скрипта :D

Первым делом появились все двери и цветные замки. Ну и сами цвета. Откровением стала возможность проектировать всё на уровне объектов — в процессе удалось разобраться как можно внутри объекта контролировать его состояние в зависимости от того, с кем он столкнулся, и при этом контролировать объект столкновения. Проще говоря, каким то чудесным понятным образом очень ловко выстроилась с помощью этого плеймейкера вся механика.

Сложнее всего было с ИИ. Вот его делать еще нужно практиковаться. Пришлось поскачивать сторонних событий и действий из экосистемы плеймейкера, но они с лихвой покрыли потребности. В итоге придумалось три весьма простых аркадных противника, которых можно победить стреляя цветовыми сгустками.

UXTcEju

Дальше наступила творческая пора — нужна была визуальная картинка уровней. Я знал сразу, что хочу делать абстракцию, но не понимал какую, пока не наткунлся на фильтр пикселизации для игровой камеры. Тут всё сразу встало на свои места. Этот фильтр позволял скрывать небрежность геометрии, придавая ей определенный абстрактный вид.

Собственно это и знаменовало мои мучения с левел-дизайном. Оказывается юнити 2019.1 не очень хорошо приспособлена для создания уровней, или я слишком сильно хотел все быстро. В общем то левел-дизайн занял примерно столько же времени, сколько и создание механик. Плюс ко всему отняла время калибровка механик, встроенных уже в уровень (господи храни префабы).


BmI1r09

Тотальной ошибкой было оставить озвучку (имею ввиду SFX) на потом. Её нужно было делать вместе с созданием механик, а я её делал когда демо уровень уже был собран почти. Поэтому пришлось покорячиться, чтобы некоторые вещи обвесить звуками правильно и не запутаться.
Ну и в конце — сведение. Так я называю процесс описания логики открытия уровней и перехода между ними. Это особый математический изыск для меня как для гуманитария, работать с 0-based системой счисления, выводя на фронт значения с единицы. В общем эти пляски, и еще пляски с поломавшимся канвасом, заняли еще пару дней.

День ушел на озвучку демоуровня, который по сути есть туториал в игре, и всё. Задумка реализована, дальше можно просто клепать уровни из готовой геометрии и механик — при прохождении уровня, будет открываться новый в списке. Остается только сделать глобальное сохранение, чтобы при выходе из игры, прохождение сохранялось.

ОПРОБОВАТЬ

Ссылка на ИТЧ
(игра доступна для скачивания бесплатно если что. В ней готов один уровень — туториал)

Планы

Делается это все в качестве личного времяпрепровождения и демонстранции того, что 3Д игры можно делать без кода, поэтому в какой то момент может и забыться-забиться. Но я думаю, что штук 10 уровней я соберу для этой бродилки, и возможно выкину ее в стим. Еще у меня есть желание завести туториал-блог о плеймекере, на примере создания игры показывая (в качестве видео или текста) как работать с плеймекером — оказалось что в русегменте такого нет. Возможно потому что и не нужно)

Вопрос сыгравшим

Архитектура демоуровня состоит из трех «стилей» визуально:

— монументализм (большие просторные изолированные пространства, открытое небо)
— камерность (узко, закрыто со всех сторон, коридорность)
— опенспейс (платформы и пространство)

На ваш взгляд, основные уровни стоит делать придерживаясь какого из этих трех стилей? Само собой, цвета уровней будут не серые и белые всегда).

  • Fakov
  • 08 февраля 2022, 18:36