16/09/2019

Летний ue4jam на itch.io

С 8 по 14 августа на площадке itch.io проходил 2019 Summer #ue4jam. Среди 224 поданных на джем проектов были, конечно, игры от студий из СНГ. Одна из них даже стала финалистом! Мы попросили четыре команды рассказать о своем участии.

Иван Заболотный, ALLSTARGAMEDEVTEAM
Игра — Escape From Home

У нас есть компания из 4х человек, мы общаемся, придумываем вместе новые концепции, но таким составом ранее ничего не делали. Трое из нас работали над The Tavern Of Magic, но давненько не кооперировались для чего-то нового.

Когда анонсировали джем, мы решили, что было бы круто внезапно пошевелить руками и головами и растолкать заново интерес к независимой разработке. Собрались и стали ждать объявления темы. Ей стала фраза "Make it count", что ввело нас в некоторый ступор, так как вариантов перевода и использования фразы было много, а если переводить это дело на русский, добавляется еще один слой — наши собственные фразеологизмы и выражения. Безусловно, первая мысль — что-то связанное с математикой и счетом, но мы стали смотреть глубже и нашли определения, которые захватили нас — "приложить наибольшие усилия к выполнению задачи" и "сделать что-то так, чтобы это запомнилось".

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

Геймплей родился практически сам собой, а в нашей учетке Epic Games нашлись почти все ассеты для изготовления прототипа. В итоге у нас получился Action с тремя персонажами, где у каждого — своя роль. Кролик — стелс и отвлечение, Лиса — спринт, а Ворон — скаут, помечающий противников на карте. Мы продумали механики и выбрали 3 основных — доберись до финиша без потерь, платформинг и условный Crossy Road.

 

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

Наши цели в этом джеме:

  • Осветить проблему горящих лесов и попросить остальных быть бережливее к природе и бороться за то, что имеем
  • Расшевелить самих себя
  • Конечно же, победить

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


Мы с радостью узнали, что в джеме участвовали не только мы с просторов СНГ; джемы — важная вещь, помогающая учиться новому и правильно использовать старое. Они сплачивают как команды, так и всех участников в духе правильной и здоровой конкуренции. Мы очень надеемся, что джемы на нашей территории станут популярным способом самовыражения и благодарим "Эпиков" за ассеты, которые позволили нам поучаствовать и сделать все возможное.

Steppe Hare Studio
Игра — Pencil Heart (финалист!)

Меня зовут Зариф, я один из троицы разработчиков Steppe Hare. Постараюсь рассказать, как мы готовились к этому Unreal Game Jam. 

Первое преимущество

Мы только-только выпустили в ранний доступ нашу текущую игру Palmyra Orphanage, и после нескольких дней переработки ради релиза нам нужно было найти что-то, что помогло бы отвлечься. И тут мы узнаем о джеме. То, что нужно! К тому же, многим другим участникам придётся работать для конкурса по вечерам, а мы можем заниматься своей игрой все дни напролёт. У нас было не только желание участвовать, но и фора на старте. Идеально!

Планирование

В первую очередь, мы прочитали правила, чтобы разобраться, по какому принципу будут выдавать баллы. Есть три пункта для оценок: использование темы, веселье и визуал. Это значило, что если мы хотим попасть в финал, нужно выбить хотя бы четверки в трёх из них. А значит, нужно хорошо понять, что именно означает тема Make it Count.

Мы начали разбирать смысл этой фразы, что было довольно трудно для не носителей языка. Не просто забили в гугл, действительно разбирали по частям.

Make it Count. Блин... Условно можно перевести "Не упусти свой шанс. Сделай так, чтобы твои усилия не были потрачены зря". Поэтому мы начали думать об игре, в которой у решений четко были бы видны последствия. Среди идей было что-то стратегическое или сюжетное. Но этого недостаточно — мы хотели передать, что у игрока действительно есть лишь условный "один шанс", который имеет значение. В итоге решили дожать тему — у решений должны быть последствия, и ресурсы игрока уменьшаются с каждым принятым решением.

Были и другие варианты работы с названием. Например фраза “it count” означает "посчитать это", так что мы думали об игре про числа. Также count можно перевести как "граф", поэтому был вариант сделать игру про графа. Их мы отмели, потому что в базовом значении они были слишком очевидными, а у нас не хватало фантазии, чтобы дожать их и сделать оригинальнее.

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

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

Ну а потом начался гринд.

Работаем над механикой

Пора собирать билд. Чем быстрее, тем лучше. Над ним работает Ринат, наш программист. Он решил построить два уровня, один обучающий, другой — с различными фишками, где мы можем раскрыть особенность нашей механики. У Рината уже был опыт создания такой игры — год или два назад мы делали небольшой проект, Give Me Your Coins, так что с основой для платформера у него проблем не было, и он мог полностью сосредоточиться на механике и интересных элементах. Кстати, о них.

Вторая оценка выдается за "веселье", значит — работаем над геймплеем. Игра для геймджема сильно отличается от работы на продажу. Необходимо подготовить всего пару минут игры, так что многие проблемы "больших" проектов отпадают автоматически. Всё, что остается — сделать 4 минуты стабильного, рабочего геймплея и "20 секунд веселья". Почему так? Дело в том, что люди запоминают только яркие эмоции, так что нам достаточно сделать "не ужасную" игру и добавить в неё 20 весёлых секунд — игроки запомнят именно их и будут считать, что вся игра была весёлой. Над ними мы и работали большую часть времени.

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

Оформление

Третья часть победы — графика. Здесь возникает проблема. Дело в том, что никто из нашей команды не является профессиональным художником или 3d моделлером. Но наш Дима специализируется на работе с эффектами и текстурами, так что мы сделали упор именно на них. В первый день за основу мы взяли один из бесплатных паков Unreal Store, я накидал модель карандаша (мой первый персонаж в 3d), и пошла покраска. Дима изменил цвета, добавил постпроцессы бумаги на экран и сделал нам эффекты для рисования и заточки персонажа. Проблема была в том, что оценку ставят только за работы, которые команды сделали во время геймджема, поэтому когда Дима закончил основное оформление, Ринат заменил платформы из готового пака на цветные коробки. Благодаря Диме к концу последнего дня чужих моделей в игре почти не осталось. Мы обязаны оценкой за графику именно ему.

Дима работал с глазами, я — с ушами: подбирал аккомпанемент, искал звуки для действий на экране. Кидал на проверку, исправлял — главным было действовать в темпе, не зацикливаться на одном элементе. Потом пришёл черед написания текста для обучения и оформления заявки с игрой (она должна быть на английском, а в команде эта обязанность — на мне).

Последние штрихи и секретный соус

Мы закончили работу над игрой в середине последнего дня. Теперь можем остановиться и заняться чем-то еще, так? Конечно нет! У нас осталось ещё несколько часов, и мы намеревались потратить их на то, чтобы максимально улучшить нашу оценку. Снова прошлись по игре: улучшили звуки, текстуры и модели, исправили самые очевидные баги, добавили "умф!" геймплею.

"Умфом!" я называю необязательный штрих, который превращает посредственный элемент геймплея в хороший. Примером может быть небольшая деталь анимации, крохотный визуальный эффект или забавный каламбур в тексте. Когда наш Pencil Heart был практически готов к отправке, мы раскидали по нему несколько "умфов". Так, при падении плиты вниз камера начала слегка трястись, как от землетрясения, а при прохождении уровня на экране карандашом рисовалось сердце.

Ну а к вечеру отправили работу. Вот и всё.

Итоги. Зачем оно нам надо?

Есть много причин поучаствовать в конкурсе разработчиков. У нас, например, их было три.

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

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

 

Space Skeletons
Игра — An Important Delivery

Мы — команда Space Skeletons. Костяк (pun not intended) команды состоит из двух человек, но обычно к нам присоединяются друзья, чтобы помочь, чаще всего — с музыкой.

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

Этому мы еще учимся — не всегда получается сделать что-то играбельное и понятное. Бывает, что интересные технологии, с которыми хочется поиграть, так соблазняют, что большая часть времени тратится на них.

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

 

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

Помимо UE4, самые ценные инструменты для нас — Substance Designer для быстрого создания текстур и Blender для всего, что связано с 3D. Также мы часто используем анимации с Mixamo и звуки с FreeSound.org.


Морданов Артём
Игра — BirdVR

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

Конкурс длился 4 суток и 10 часов, как только объявили тему — начинается отчёт, однако сам анонс с правилами и рекомендациями объявляют заранее. Продолжительность, на мой взгляд, — отличная. Игры получаются короткими, и сразу можно оценить и увидеть — интересно получилось или не очень. В Unreal Engine получается работать быстро и не утомительно, многое можно реализовать сразу "из коробки", а система Blueprints для начинающих вроде меня — просто находка.

Перед участием

До объявления темы внимательно ознакомился с правилами. Очень рекомендую вдумчиво читать полную версию, а не сокращенную выжимку из анонса. В правилах указано, что работы будут оцениваться по следующим критериям:

  • До 5 очков за раскрытие темы.
  • До 5 очков за фактор "веселья".
  • До 5 очков за графику (если используются купленные модели и текстуры, очки не начисляются!).

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

Также есть отдельные номинации: “Is this real life?” за лучшую VR/AR игру. “Tiny award” за лучшую игру до 100mb. “Army of One” за лучшую игру, разработанную в одиночку. Именно на них я и решил сосредоточится, причем — на всех трёх!

Также интересно ознакомится с победителями прошлых конкурсов, работы все — в открытом доступе, можно скачать и посмотреть.

После объявления темы

Сутки у меня выпадали точно, поэтому оставалось 3 дня 10 часов на сон, спортивный кружок, прогулки с собакой и подготовку работы на конкурс.

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

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

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


Была идея сделать и стрельбу с помощью движения головой "как будто плюешь", но реализовать и проверить на практике не успел.

Разработка

Действовал согласно своему жизненному опыту: разбил задачу на этапы, выписал их в список на листок, в процессе после каждого выполненного пункта делал перерыв 15 мин, чтобы "мозг не закипел". Некоторые хитрости:

  1. Для уменьшения размера билда можно не использовать текстуры, а ограничится vertex color в материале.
  2. Я использовал модели и звуки, которые уже есть в UE4.
  3. Запаковывайте в проект только то, что в нем действительно используется, ничего лишнего. Для этого можно провести "миграцию" всего уровня, тогда мигрируют только те объекты, которые действительно есть в уровне.
  4. Рассчитывайте свои силы и время! Я планировал добавить режим "свободного полета", когда игрок взлетает над городом и разноэтажные здания дают хорошо почувствовать эффект высоты, но не успел довести до конца, а драгоценное время — потратил.
  5. Для экономии времени, сам тоннель, по которому летит птица, генерируется процедурно, я не рисовал его заранее. Тоннель разбит на участки длинной 300 метров. 1,2 км появляются сразу, а далее каждый раз, как игрок пролетает 300 метров, участок за его спиной уничтожается, а впереди — появляется. Каждые 10 участков гарантировано появляются ворота, после пересечения которых свет в тоннеле меняется, так создается впечатление "пройденного этапа".
  6. Тестируйте на производительность регулярно. Для VR я пользовался программой oculus debug.

Релиз

Обязательно нужно оставить время на публикацию! Подготовить описание, скриншоты, видео — это всё не менее важно, чем сама игра. Будет здорово, что из целого списка работ именно ваша будет выделятся и выглядеть профессионально. У меня на это, увы, времени не хватило.

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

* * *

Recent Posts

Продвижение мобильного приложения. Шаг 2: рекламный трафик

14/10/2019
Вы рекламируете свою игру, чтобы показывать пользователям рекламу в своем приложении и получать с этого доход. 

Shores Unknown: история одного геймдизайнера из Японии

04/10/2019
Геймдизайнер Илья Руднев делится деталями разработки своей игры и полезными советами для инди-разработчиков.

Теория качественного звукового сопровождения в видеоиграх

02/10/2019
Разберем основы удачного саундтрека, как работает музыка, какие баги со звуком встречаются в играх и их причины.