Этому «марио» нужна своя фишка

Как ученики GeekUniversity соревновались в создании новой механики платформера на Unity

26 января в 12:00 в московском офисе Mail.ru Group мы собрали студентов факультета разработки игр и профессии гейм-дизайнера. Зачем? Чтобы, объединившись в пары, они попробовали себя в роли тех самых ребят из книги «Кровь, пот и пиксели» — с ограниченными возможностями, полыхающими дедлайнами и острой потребностью придумать что-нибудь классное.

Условием задачи был демоплатформер от разработчиков Unity. В него было необходимо добавить новую механику, которая использовалась бы и при перемещении, и в бою с врагами. С заданием участники могли ознакомиться за сутки до проекта. На совместную работу в паре «гейм-дизайнер — разработчик» на мероприятии отводилось несколько часов.

Помогали ребятам в работе и определяли победителей наши преподаватели: Иоанн Павловский со стороны гейм-дизайна и Илья Афанасьев от разработки.

Иоанн: «В гейм-дизайне часто бывают ситуации, когда нет чётких задач и надо родить что-то из ничего. В такие моменты многие теряются и в условиях „неограниченной свободы“ ничего толком не могут придумать. С другой стороны, часто бывает, что рамок много — тогда гейм-дизайнер ощущает себя словно в тисках.

Вот как звучало задание для ребят: „Добавьте только одну новую механику, которая будет применима и в бою, и в движении. По желанию: измените баланс тех механик, которые уже есть в игре“. Такая задача одновременно и давала полную свободу, и выставляла жёсткие ограничения — в этом и была наша задумка. Чтобы выиграть, нужно было подойти к задаче креативно, найти лазейки в условиях и понять, как сделать в игре больше того, что кажется возможным, и не нарушить правила.

Многие ребята были очень близки к победе. Студенты генерировали классные идеи: добавляли под ноги герою платформы, которые падают и давят противников; создавали вокруг персонажа зоны, дающие разные эффекты; предложили реализовать метание, толкание противников и разгон протагониста. Из каждой вышла бы интересная игра!»

Преподаватели рассмотрели множество интересных идей и признали победителем с точки зрения гейм-дизайна проект Вероники Танаевой.

Вероника: «Мы с моим напарником, Олегом Крыловым, решили дать персонажу лестницу. Он спаунит [ставит — прим. ред.] её перед собой немножко под углом, и она падает в соответствии с законами физики. Лестница длиннее, чем максимальное расстояние прыжка персонажа. Так что она позволяет перебираться через пропасти и залезать на высокие уступы. А ещё лестница убивает противника, если падает на него.

Это первый прототип, а в дальнейшем с этой лестницей можно развлекаться, насколько хватит фантазии: спаунить в прыжке и бежать по ней, пока она падает; цепляться за крюки; в конце концов, возвести из нескольких лестниц памятник Сэму Бриджесу [главный герой игры Death Stranding — прим. ред.] :) Преимущество нашей лестницы в том, что одна механика даёт множество вариантов использования — значит, игроки долго будут получать фан при минимальных затратах на разработку. Мы с Олегом работали за разными устройствами, и из-за этого нам не хватило времени, чтобы «подружить» мой вариант уровня и его скрипты. Оригинальный уровень с сайта Unity не раскрывал все возможности нашей лесенки :)

Идея с лестницей пришла в голову, когда мне попалась одна картинка на Pinterest во время поиска идей. Как раз Иоанн Павловский, отец всея гейм-дизайна на GB, помог мне постичь глубину механики и открыл Pinterest как источник вдохновения :)

Понравилось, что это мероприятие было организовано явно с учётом пожеланий с прошлого. Приятно знать, что мы не зря пишем отзывы :) Благодарю педагогов за все эти события — отличное дополнение к официальной учебной программе! И желаю сил и терпения, чтобы возиться с нами и проводить ещё джемы».

Помимо победителя от гейм-дизайна, мы отметили ещё один проект — со стороны разработки. Илья Афанасьев, декан факультета разработки игр, сам поучаствовал в соревновании: был программистом сразу в двух парах, с разными гейм-дизайнерами.

Илья: «По заданию гейм-дизайнера программист должен был усовершенствовать готовый проект — поменять баланс, внедрить новую механику. Уровень подготовки участников различался: у кого-то было больше опыта, у кого-то меньше. К тому же гейм-дизайнеры иногда изобретали идеи заново уже в процессе разработки. Но в итоге мы пришли на помощь к тем, кому она была нужна, и всё получилось.

Программисты старались сделать код как можно элегантнее, но времени на это не хватало. Я и сам, работая в двух парах за разработчика, быстро перестал заморачиваться с красотой кода — лишь бы всё работало к дедлайну! В итоге те, кто пошёл таким путём, сделали намного больше.

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

Лучше всех с заданием, на мой взгляд, справился Павел Небольсин. Он не вмешивался в работу стандартного кода, следовал принципам SOLID, не изменял, а только расширял функциональность приложения. При реализации новой механики ему не пришлось ломать то, что уже было в демоприложении. Его код получился элегантным и хитрым, из простых вещей Павел получил мощный инструмент — всё по принципу KISS (Keep It Simple Stupid). Такую работу было легко оценить — сразу ясно, как всё работает, без дополнительных вопросов. Визуально проект получился органичным, будто новая механика была в уровне изначально».

А вот что говорит о своём проекте и соревновании сам Павел: «Мы придумывали механики, в которых будут сочетаться перемещение и атака. Остановились на той, что похожа на способность адептов в StarCraft II. Персонаж мог выпустить свою астральную копию, на которую в нашем случае не действовала гравитация, и потом перемещаться на её место.

Таким образом можно убивать монстров, падая на них после телепортации, и перелетать пропасти, недоступные для прыжка. Основная сложность была в том, что нам дали готовый проект, куда надо было внедрить свой код, не переделывая слишком много. Ведь время было ограничено. Честно говоря, я не ожидал победы, и это было очень приятно. В качестве призов мы получили сертификаты в Steam :)

В этом задании мне помогли вебинары по Unity, которые ведут Илья Афанасьев и Роман Муратов. И конечно, знание языка C#, за что спасибо Сергею Камянецкому.

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

Идея Павла нам понравилась — мы обязательно продолжим собирать гейм-дизайнеров и разработчиков в офлайне :) Ждём вас на факультете разработки игр и профессии гейм-дизайнера — присоединяйтесь!

геймдевигровая разработкаобучение разработке игробучение гейм-дизайнугейм-дизайнсоздание игрпрограммированиеgames
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!