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

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

В закладки

Идея

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

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

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

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

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

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

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

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

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

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

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

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

Новая жизнь

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

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

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

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

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

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

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

iOS:

Android:

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

{ "author_name": "Дмитрий Русаков", "author_type": "self", "tags": [], "comments": 8, "likes": 11, "favorites": 11, "is_advertisement": false, "subsite_label": "indie", "id": 33143, "is_wide": false, "is_ugc": true, "date": "Sat, 15 Dec 2018 17:15:06 +0300", "is_special": false }
Объявление на DTF
0
8 комментариев
Популярные
По порядку
Написать комментарий...
9

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

Ответить

Лишенный шар

8

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

Ответить
3

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

Ответить

Атомный клуб

0

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

Ответить
1

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

Ответить
0

Комментарий удален по просьбе пользователя

Ответить
1

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

Ответить
0

Ясно.

Ответить

Прямой эфир

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }