Pull to refresh

Пост о том, как я игру лепил, из пластилина

Reading time 2 min
Views 13K
Всем доброго времени суток! Решил я поведать миру историю создания своей первой мобильной игры. Делал я ее по часу в день на протяжении почти полутора лет.

image


В игры играю только на телефоне, и, в основном, в таймкиллеры, когда образуется никуда не применимый отрезок времени. Основываясь на собственных предпочтениях, была определена платформа и жанр. Решено было сделать 2D стратегию в жанре «стенка на стенку» с достаточно короткими уровнями. В качестве сеттинга были выбраны славянские сказки, но больная фантазия внесла свои корректировки. Игру было решено делать на Unity, так как с C# я знаком достаточно хорошо.

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

Очень скоро выяснилось, что делать покадровую пластилиновую анимацию это просто “адский ад”. Фигурки сохраняют позу всего несколько секунд, потом поза начинает плыть. Я пробовал делать проволочный каркас, но и это не дало желаемого результата.

image

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

  • Крестьянин
    Крестьянин
  • Бомжеболотный огурец
    Бомжеболотный огурец
  • Переспелый змеербуз
    Переспелый змеербуз
  • Хренорыцарь
    Хренорыцарь


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

Закончив с анимацией я прикинул баланс на коленке и опубликовал закрытую альфу в Google Play, дав доступ друзьям и коллегам. Оказалось что баланса нет вообще. Алгоритм порождения противников оказался запредельно рандомным. То уровень было пройти просто нереально, то он проходился вообще без усилий. Тогда я решил избавиться от рандома, и сбалансировать каждый уровень вручную. Сделав таким образом первый несколько уровней я понял, что на эту работу уйдет слишком много времени, и подход надо менять. Потратив еще пару дней на разработку детерминированного алгоритма порождения противников я получил приемлемый результат. Осталось определить входные параметры для каждого из 99 уровней. Прежде чем мне удалось с этим закончить, я прошел свою игру еще раз 30, попутно корректируя цены прокачек, характеристики юнитов игрока, и юнитов противника. Очень сильно в тестировании мне помогли мои друзья и коллеги. Некоторые из них играли в игру на протяжении нескольких месяцев, и за это время дали мне огромное количество фидбэка.

На этом у меня все. Буду рад услышать критику. Конечно же, надеюсь на конструктив.
Tags:
Hubs:
+19
Comments 18
Comments Comments 18

Articles