Привет, Мир! Мы два новоиспеченных разработчика мобильных игр, бывшие одноклассники, выпускники Казанского федерального университета, Айдар и Эд, продолжаем рассказ о разработке нашей первой игры «Syncomania» на Android.

Для тех, кто только что присоединился, вкратце напомним содержание первой части:

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

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

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

Вознаграждение


История первого уровня: «Личная жилплощадь должна быть у всех, даже самых маленьких, поэтому каждому герою досталась отдельная комната. И одному из героев повезло — единственный выход находится прямо в его комнате. Поначалу счастливчик ведет себя эгоистично и стремится покинуть уровень поскорее. Но с опытом он осознает, что такое поведение не самое эффективное. Для оптимального прохождения надо работать в команде и сперва думать о других героях».

image

Вариативность прохождения — это особенность игры, которой мы искренне гордимся. Все наши уровни имеют альтернативные решения: короткие или длинные, очевидные или изящные. На каждом есть свой мировой рекорд — минимальное количество ходов, известное на данный момент. Поиски кратчайшего решения мы поощряем с помощью общепринятых звездочек, как, например, в «Angry Birds». Но, по нашему мнению, непрозрачный метод оценивания вызывает недоумение и раздражение. В «Syncomania» мы постарались сделать его наглядным: игрок получает три звезды, если проходит уровень за минимальное число ходов. С одной звездой тоже все очевидно: просто спаси всех героев, не обращая внимания на рекорды. Но за какие заслуги давать две звезды? Нам нужно было пороговое значение. Чтобы не задавать его для каждого уровня отдельно, мы ввели простую формулу:

порог = 1,5 * минимальное число ходов.

Таким образом, если мировой рекорд составляет 20 ходов, то за 29 игрок получает две звезды, а за 30 — только одну. Последующие тесты показали, что многим порой не хватает пары ходов до идеального прохождения. Мы решили, что их надо мотивировать, и ввели еще одну градацию: если игрок прошел уровень на 1–4 хода хуже мирового рекорда, то он получает 2? звезды.

image

Так как количество уровней ограничено (на данный момент их 96), мы замедлили скорость потребления контента с помощью механики завершения. Новая глава, состоящая из 12 уровней, открывается после того, как игрок соберет заданное количество звезд. Таким образом мы повышаем реиграбельность, вручая дополнительные часы наслаждения (и бессовестно надеясь на появление внутриигровых покупок и кликов по рекламе).

Обманчивая внешность


Вариативность не имеет смысла, если решение на три звезды можно найти с первого взгляда. Поэтому мы стараемся придумывать наживки для игроков: одно или несколько прохождений кажутся очевидными, но приводят к неэффективным или проигрышным состояниям. К примеру, уровень «Угол» — визуально очень простой, но практически никто не проходит его с первого раза. Большинство стремится по пути наименьшего сопротивления — сразу к выходу в правый верхний угол. Съедая нашу наживку, игрок попадает в патовую ситуацию:

image

Испытывая начальные уровни, мы заметили, что симметричное расположение объектов выглядит гармонично, а хаотично разбросанные ловушки и стены создают визуальный мусор. Тогда мы решили использовать симметрию повсеместно. Но, как известно, нет правил без исключений. Например, на уровне «Свеча» мы намеренно отклонились от симметрии и поставили одинокую стенку, намекая на то, что ей следует воспользоваться при прохождении (хотя, возможно, это и наживка).

image

На раннем этапе разработки мы пытались выяснить, как небольшие изменения в расстановке объектов влияют на метод прохождения. Например, у нас есть около 10 модификаций конструкции «Четыре комнаты», и в каждой из них применяются разные приемы. На уровне «Сжатие» игрок учится сближать героев, чтобы проходить между ловушками.

image

В «Имитаторах» придется приспособиться к поведению врагов.

image

А на уровне «Замок» нужно помочь запертому герою выбраться из комнаты.

image

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

Названия


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

image

Кстати, рабочим названием нашей игры было «One 4 all» — «один за всех» (с намеком на четверку), а текущее «Syncomania» (влечение к синхронизации) мы придумали уже перед запуском.

Самообучение


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

image

Эд: «Пока мы писали эту статью, моя жена прошла этот самый уровень за 24 хода и побила рекорд, который держался больше года! Во время разработки я тоже любил устанавливать рекорды на новых уровнях (ведь первое прохождение по умолчанию было лучшим)».

Рекорды


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

image

Кривая сложности


Разработав большую часть уровней, мы столкнулись с проблемой упорядочивания их по возрастанию сложности. Это нетривиальная задача — хотя бы потому, что поиск решения субъективен для разных игроков. Кроме того, один и тот же уровень легко завершить в лоб, но чертовски сложно пройти оптимально. В итоге мы решили упорядочивать их по поиску очевидного решения, чтобы игроки не спотыкались на первом прохождении, но при желании могли бы погрузиться в оптимизацию уже на начальном этапе. Чтобы знакомить людей с новыми механиками постепенно, мы разделили уровни на тематические главы: Ловушки, Потоки, Враги и т.д. В начале каждой главы мы размещаем уровни попроще, а к концу проверяем игрока на прочность. Так у нас образовалась кривая сложности с колебаниями.

image

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

image

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

Примеры


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

image

Экспериментируя с двумя таймерами, мы направили их потоки на свободную клетку. Ящики дошли до конца и взаимно уничтожились при столкновении. Это стало для нас неожиданностью, так как в иных случаях механика игры не позволяла сталкивать ящики между собой. Немного посовещавшись, мы решили, что это не баг, а фича. Как следствие, был создан уровень «Череп», где можно уничтожать ящики таким способом.

image

Перепробовав многочисленные виды взаимодействий, мы пришли к мысли, на протяжении многих веков служившей двигателем науки и прогресса: «А почему бы нам не смешать все это и не посмотреть, что получится?» В результате у нас появился самый запутанный на первый (и на второй) взгляд уровень — «Водоворот». Впрочем, несмотря на пугающий вид, это отнюдь не самая сложная головоломка в игре. Учитывая малое число шагов, не приводящих к проигрышу, этот уровень можно пройти простым перебором. С ним справился даже наш автоматизированный решатель — всего за 16 ходов.

image

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

image

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

Продолжение следует...

В следующей части мы расскажем о разработке интерфейса игры.
Поделиться с друзьями
-->

Комментарии (12)


  1. 640509-040147
    25.11.2016 18:22

    Количество скачиваний в play market всего 500. Как-то рекламируетесь, или просто разместили игру и всё?


    1. qwase
      25.11.2016 21:09

      Так ее только выложили. Или сразу должно быть пицот тыщ?


    1. eKross
      25.11.2016 21:12

      К сожалению, у нас нет бюджета на маркетинг. Продвигаемся с помощью небольших статей, но этого мало.


  1. sky_driver
    25.11.2016 19:46

    Хотелось бы почитать не только описание игры, но и архитектуру проекта, особенности реализации, расскажете?


    1. CRACKeH
      25.11.2016 21:09

      Полностью согласен.
      Игра завлекает, хотелось бы увидеть примеры архитектуры и реализацию


    1. eKross
      25.11.2016 21:11
      +1

      Обязательно. Мы посвятим этому отдельную статью. Спасибо за интерес к проекту.


  1. kip_ind
    27.11.2016 09:42

    по описанию видно что вы постарались сделать классную головоломку, вот только заманивают клиентов либо уникальным геймплеем, либо «котиками», может найти художника и добавить графики… для герое, для препятствий, для ловушек, фон…


    1. eKross
      27.11.2016 22:58

      Мы старались делать упор на геймплей по мере способностей. «Котиков» же мы делать не умеем.

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


      1. kip_ind
        27.11.2016 23:57

        я вас понимаю, сам пишу без вложений, в последней игре художника нашел на форуме, договорился делить доход, когда он присылал мне графику я просто балдел от разницы между моими «художествовами» и его работай. но у вас как я понял много сил вложено в продумывание уровней и делиться доходом наверное жалко… значит надо много «сорить» на тематических форумах на всех языках(!) и если уровни и геймплей (даже продуманность по затягиванию в процесс) действительно хороши то будет успех. =)


  1. 4ainik
    27.11.2016 21:19

    игра ориентирована на четырех-ядерный мозг :)
    +1 интересно посмотреть на исходники


  1. Deosis
    28.11.2016 08:11

    Можно добавить главу, где герои ходят не синхронно:
    При шаге вверх половина пойдет вверх, половина пойдет вниз (можно обозначить цветом/формой)
    Или при шаге вверх один идет вверх, один вниз, один влево, один вправо.
    Тогда можно добавить платформы, которые поворачивают героев.
    Подобная механика взорвет мозг игрокам.


    1. 4ainik
      30.11.2016 13:20

      а можно добавить главу где каждый герой будет ходить в рандомном направлении :)