Сладкий кошмар: как студенты Технотрека написали игру на Unity



Sweetmare в цифрах
6 членов команды
10000+ строк кода
500+ часов работы
Бесконечность багов

Sweetmare — раннер, который разработали студенты Технотрека Александр Кузнецов и Влад Косинов. Они закончили курсы по C++ и Unity, но для создания игры многое пришлось осваивать самостоятельно. В этой статье Александр Кузнецов рассказывает о том, как команда преодолевала сложности, какие использовались инструменты и как у них получилось не забросить проект, а довести его до финала и выложить в App Store и Google Play.

Как всё начиналось

Был май. Мы заканчивали курс по С++ и делали финальный проект — пилили игру. Влад создал карту, я сделал самые простые тачки. Уже тогда мы подумали: было бы прикольно написать свою настоящую игру — не такую, где нигде ничего не двигается, а такую, чтобы люди могли по-настоящему, с удовольствием, в нее играть.

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

Так уже 21 июня мы начали делать свой раннер. У нас не было цели быстро выпустить игру и заработать денег: мы просто хотели создать свою первую, настоящую, качественную игрушку.

Идея игры

Идею игры продумывали наши дизайнеры — Настя Хохрякова, Ваня Соколов и Никита Ильин, а также их ментор с курса по анимации Яна Чинцова. Каждый предлагал свои варианты, их обсуждали и выбирали, что нам подходит: так было с жанром, направлением, сюжетом, сценарием и стилистикой. У нас было три варианта концепции:

  • призрак;
  • кто-то пытается кого-то схватить;
  • летит какой-то мудрец.



Больше всех нам понравилась идея, где малыш летит от призрака или, наоборот, гонится за ним. Так был определен главный персонаж и идея: это будет раннер, где малыш гонится за призраком. Почему гонится? Дальше узнаем.

Проработка персонажей

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



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





И такой призрак:



Вместе с дизайнерами мы обсуждали, как рисовать детали, — например, как сделать рот:



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





Почему мальчик летит за призраком?

По ссылке можно найти начальное видео, которое погружает в атмосферу игры.

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

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



Процесс разработки

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

Кроме того, все мы учились командному взаимодействию и организации процесса — например, для контроля работ Никита сделал график, где расписано, кто что делает по неделям:



Кроме того, у нас был Gameplay Overview с игровой механикой:



И список задач:



А вот инструменты, которые мы использовали для разработки:

Общее
  • Скайп — share экрана
  • Zeplin — передача сертификаций разработчикам
  • realtimeboard.com — общая доска
  • Keynote — для командных презентация
  • Dropbox — хранение данных

Разработка
  • Unity
  • Google

Дизайн
  • Ai + Ps — иллюстрации
  • Figma — интерфейс, спецификации

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

Первый билд

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

Сложности с фоном и музыкой

Наш персонаж перемещается слева направо. Как сделать так, чтобы фон тоже перемещался? Сначала мы сделали широкое полотно и два фона за ним, которые стыковались и перестраивались, когда персонаж приближался к краю. Но фоны стыковались некрасиво, так что через несколько месяцев мы изменили подход: сделали отдельные слои облаков и гор, разделили горы на передние и задние. Получилось гораздо лучше.



Кроме того, для игры нужна была музыка. Мы не планировали вкладывать в это деньги и хотели заполучить музыку бесплатно, так что я позвал своего друга—музыканта. Но его мелодии не нравились дизайнерам. В итоге они сами нашли музыку, правда, платную (20$). Кроме фоновой мелодии пришлось искать много дополнительных звуков. Получилось столько музыки! Это было достаточно забавно.



Нюансы разработки

Их было множество! Например, когда персонаж будет касаться призрака, жизнь должна становиться на 50% прозрачной. Или когда игрок нажимает на кнопку паузы, кнопка должна быть анимирована. Как это делать?



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



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

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

Перед запуском

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

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


В любой игре вы видите движение за счет таких последовательных картинок

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

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

Ценность курса была огромна: мы познакомились со многими нюансами разработки на Unity, научились выходить из самых разных ситуаций и к Хэллоуину планировали выпустить игру, но… Что-то пошло не так.

У нас была целая таблица с критериями и комментариями от друзей: что доработать, что исправить. Мы пригласили 10 человек на бета—тестирование, я начал думать насчет маркетинга — в феврале создали группу и подготовили пост, который увидели 5 000 человек.

Когда основная часть была готова, мы стали думать, как выгружать это в App Store и Google Play. Несколько раз переносили дедлайн, со всех сторон пошли разные баги, вылезли проблемы с Google Play... Было такое ощущение, что жизнь не давала нам релизить эту игру! В итоге 1 марта мы все-таки релизнули ее, и все равно вышли некоторые баги. Это было так нелепо: ты только релизнул, думал, что все готово, так долго трудился над этим, а тут — оп! — у тебя нет кнопки, игра не поддерживается на каком-то устройстве, меню почернело… Что происходит? Еще баги, еще!

Но в итоге мы все исправили.

Наш преподаватель Технотрека по Unity, сотрудник студии IT Territory Никита Папков, сказал очень приятные слова: большинству даже с десятой попытки не удается завершить свой проект — это касается даже специалистов. А тут бац — первый проект, и уже успех.



Выводы и планы

Если вы хотите написать свою игру — ищите единомышленников. Сделать интересную игру — процесс большой, сложный, необычный. Нужно, чтобы люди в команде поддерживали вас. Если ты дизайнер — начни изучать азы Иллюстратора. Если разработчик — берись за Unity.

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

Ну а мы втроем хотим сделать что-то новенькое — совершенно новую игру. Сейчас думаем над идеями. Посмотрим, что получится. Думаю, будет интересно! А пока можете познакомиться со Sweetmare :) Конечно, хочется, чтобы игра дошла до своей целевой аудитории — в первую очередь это школьники, которые любят позалипать в такие вещи. Пока у нас есть сайт и группа, может быть, дело дойдет до рекламы.