Santa Pixel Runner — как мы делали милую новогоднюю игру

Привет, DTF. Пришло время рассказать как мы решили сделать нашу первую «взрослую» игру.

Santa Pixel Runner — как мы делали милую новогоднюю игру

Идея

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

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

Выбор инструмента

Поскольку делать приложения-игры нам решительно надоело, назрел выбор игрового движка. Спросив совета у Google мы решили выбрать Unity. И не безосновательно:

  • Огромное количество обучающих материалов, активное сообщество.
  • Язык C# - на тот момент мы хорошо знали Java и решили, что переход будет менее болезненным.
  • Возможность использовать бесплатно - логотип Unity при старте игры в нашем случае выглядел гордо.

Собственно разработка

Сложно описать словами с каким дивным миром полным открытий мы столкнулись. Если Вы занимаетесь программированием, но никогда не работали с игровыми движками - Вам определенно стоит попробовать.

Я понимаю, что то о чем я сейчас скажу для опытных разработчиков выглядит как обыденность, но на меня это произвело большое впечатление. Вы когда-нибудь задумались, как какой-нибудь игровой объект определяет расстояние до другого объекта? В Unity, например, можно "бросить" вперед луч и получить информацию какой из объектов перед Вами и на каком расстоянии - это настолько просто и гениально, что сложно это воспринимать без эмоций.

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

Суровая реальность

Очевидно, при разработке (если это так можно было назвать) мы допустили ряд ошибок. Из очевидных могу выделить две:

  1. Время. Поскольку Unity из коробки не поддерживает механизм локализации, а разбираться как сделать грамотно времени не было, было принято решение делать игру на английском. Первая версия оказалась в магазина платформ 21 декабря 2017 года и ее даже действительно суммарно скачали 100 человек, но через 4 дня загрузки упали до нуля, так я вспомнил что на западе рождество отмечают 25 декабря. So sad.
  2. Непроверенная механика. Основная идея заключалась в том, что чем дольше играешь - тем сложнее. Помимо этого препятствия генерировались случайным образом через случайное расстояние с определенными ограничениями дабы не получились непроходимые места. Как не сложно догадаться - непроходимые места получились. Помимо этого мы умудрились пропустить баг, когда со временем препятствия начинали сами по себе ползти по земле в сторону бедного Санты, это выглядело даже немного страшно.

Новая жизнь

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

  • Элемент случайности в появлении препятствий - отличная идея, но нужно было как-то избавиться от непроходимых или слишком простых мест. Техническая реализация придуманного решения сейчас кажется очень простой и логичной, но придти к этому было не просто. Если кому-то интересно, то, пожалуйста, напишите в комментариях, это тема отдельной публикации.
  • Препятствия разной высоты! Просто необходимо было разнообразить процесс игры - двойной прыжок и более высокие препятствия добавили разнообразия.
  • Звуки - это очень важно, нельзя обойтись одной лишь фоновой музыкой.
  • В соревновательной игре обязательно должна быть таблица лидеров! От идеи собственной реализации отказались практически сразу и решили использовать встроенные игровые механизмы платформ iOS и Android.
  • В жизни снег никогда не падает строго вертикально, правда? Снежинки должны сдуваться и вращаться вокруг своей оси.
  • Неплохо бы было менять фон в зависимости от времени суток.
Дневной фон
Дневной фон

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

Вместо заключения

Закончить свой рассказ хочется фразой "нормально делай - нормально будет". Это действительно так. Игроки всегда чувствуют обман или видят недоработки. Если разработчик сам не любит свою игру, то почему другие должны?

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

Ознакомиться с игрой можно по следующим ссылкам:

iOS:

Android:

Крайне приветствуется конструктивная критика игры/статьи в комментариях!

1919
8 комментариев

Выглядит как ещё один пиксельный раннер, которых уже мильон.

9
Ответить

Я вам название локализовал, не благодарите:
"Святой пиксельный бегун" :)

8
Ответить

Спер у вас текст о конфедициальности. Видимо, мою одну игру Гугл убрал из маркета из-за отсутствия такого. За это набегал у вас на второе место в рекордах ;)

3
Ответить

Не называйте, пожалуйста, эти тупые тапалки играми.

5
Ответить

Для раннера получилась нагруженная статья.
Тихий хайп под нг?;)

1
Ответить

Комментарий недоступен

Ответить

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

2
Ответить