Инди
Sashka Ch
1371

Загадки — мобильная игра своими руками

История создания мобильной игры от идеи до релиза одним человеком. Кровь, пот и пиксели из первых рук. Как сказала Ивлеева Дудю: «Погнали!»

В закладки
Начало викторины в Paper Mario Color Splash

Вдохновение

Всю сознательную жизнь я играл в интеллектуальные игры и как-то раз попалась в мой телефон игра Little Riddles от американской студии Juxta Labs.

Скриншоты игры Little Riddles

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

На чём пишите?

В качестве движка выбрал Unity, у него удобная модель мира, магазин ассетов, большое сообщество и возможность делать сборки под Android и iOS. Mono показалось сухой, вместо неё использовал Rider. Еще помогали Photoshop, SourceTree и Google-документы.

Медленное прототипирование

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

Это мой первый проект на Unity, я решил, раз игра почти текстовая, то для реализации хватит UI-части движка. Когда начал писать код, для меня естественным было всё делать за компьютером — и программировать, и тестировать игру. Здесь скрывались первые грабли...

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

Каково же было моё удивление, когда игра, которая так классно работала на компьютере — ужасно тормозил на телефоне. Наверно, похоже чувствовали себя разработчики Batman Arkham Knight после релиза на ПК.

Скриншоты первого прототипа Загадок

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

¯\_(ツ)_/¯

Пришлось визуальную часть, а это большая часть кода, переписать с нуля на NGUI, это плагин к Unity для создания интерфейсов. Он менее удобен, чем UI движка, но зато основан на физике и, главное, быстро работает на мобилах. Наученный горьким опытом, работу плагина я протестировал на айфоне до начала разработки — NGUI «летал».

Совет

Делайте синтетический тест до начала разработки.

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

Таким образом, вы сразу увидете возможности движка на реальном устройстве, определите предел, что можно позволить себе в плане графики, текстур, моделей, насколько загруженной может быть сцена и т.д. и т.п. И если что-то пойдет не так, можно сразу расстелить коврик и помедитировать, за какой дверью искать выход из ситуации.

Совет

Выберите самое «слабое» устройство на котором должна комфортно работать игра и в течении всей разработки проверяйте производительность игры на этом устройстве.

В качестве такого эталонного телефона выбрал iPhone 5s.

Дизайн

Сначала дизайна в игре не было вообще, это ок. Потом я сделал его сам и он мне долгое время нравился.

Дизайн игры Загадки, версия «сделай сам »

Пока за пару месяцев до релиза я не понял, что он устарел. В результате нанял дизайнера, которая сделала всё стильно модно современно. Но релиз это отодвинуло еще на месяц-два. Что тут можно сказать...

Совет

Знаете, как улучшить игру — улучшайте, но в разумных пределах.

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

Финальный дизайн игры

Главное здесь — не впадать в крайность и не затягивать процесс выпуска игры. Где проходит эта грань — каждый решает сам: Nintendo, например, может годами делать очередной мега-хит, сдвигать сроки релиза или вообще их не сообщать; Эрик Барон, автор Stardew Valley, в течении 4 лет делал и переделывал игру, пока не получилась версия, которая его устраивала; у автор платформера Owlboy ушло на разработку 8 лет.

Шрифты

Почти сразу решил, в Загадках все будет честно и лицензию на шрифты я либо куплю, либо стану использовать бесплатные. К слову сказать, всю дорогу я использовал пару начертаний Helvetica, а дизайнер добавила Avenir на главную.

Проверка показала, оба этих шрифта — платные, а лицензия для мобильных устройств стоит в 10 раз дороже, чем для компьютера. Порядок цен такой: одно начертание одного шрифта для ПК стоит $89, а для мобилок — $890.

Окей, пошёл в Google Fonts, долго искал замену, которая бы понравилась и буквами и цифрами, затем кропотливо переделывал все шрифты в игре на понравившийся бесплатный Montserrat. Изменения экранов, верстка текста и тестирование заняли у меня еще недели две-три.

Совет

Со шрифтами лучше определиться на берегу.

Смена шрифтов на переправе ведет к тому, что придется менять верстку всех экранов, подбирать наилучшее начертание для смартфонов и т.п.

Анимации

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

Совет

Любые объекты должны появляется на экране плавно, так приятнее.

В реальном мире ничто не может появится перед нашими глазами внезапно, также как и не может внезапно исчезнуть. Молния не в счет : ) Если что-то резко появляется, например, сообщение об ошибке, это сильно «бьет по мозгам». Поэтому лучше везде делать плавные анимации, если сил совсем нет, то хотя бы обойтись изменением альфа-канала.

Базовые анимации игры

Звук

Если сами не пишете музыку, то звуки для игры лучше покупать или скачивать наборами. Звуки из набора будут звучать друг с другом цельно и гармонично. Я в итоге купил один набор звуков и скачал несколько роялти-фри паков.

Еще из интересного — оказалось, что часть привычных нам звуков в приложениях — это звуки, издаваемые человеческим ртом. Различные смахивания, чпоки, вжухи, нажатия на кнопки и т.п.

Снова

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

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

Капитанский совет такой:

Совет

Составьте план, что нужно для выпуска игры. Снова и снова возвращайтесь к работе над игрой и двигайтесь по плану.

Самое сложное скрывается за словом снова. Всегда трудно что-то делать, а делать постоянно, в течении длительного период времени, ещё трудней. Для любителей рефлексии: не нужно себя ни в чем винить, например, сегодня я сделал мало или вместо работы над игрой весь вечер просидел за Dark Souls. Это ок, главное снова возвращаться к работе, снова и снова ) В качестве награды вас ждет кайф, когда вы будете отмечать очередной пункт плана, как выполненный, а потом и релиз.

Созревание

Базовая механика игры — это как зерно, которое даёт росток, из ростка вырастает дерево и, в идеале, дерево начинает плодоносить.

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

Мысль простая, но почему бы и простую мысль не озвучить : )

Рост идей на примере «Загадок»:

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

Дерево идей на самом деле больше, но не станем утомлять читателя : )

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

Релиз

К релизу пришел так:

  • изначально у меня был просто список задач, что нужно сделать
  • потом задачи в списке упорядочились по приоритету
  • далее список разделился на 3 списка: сделать к релизу, доработать в обновлениях и штуки на будущее.

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

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

Если вы дочитали до этого места и вам интересно, что получилось, вот ссылки на игру:

Что теперь

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

Кривая счастья во время запуска приложения Paul Graham

С одной стороны ты счастлив — довёл дело до конца, сделал продукт, открыл его в сторах, красавчик, что сказать : ) С другой стороны, через 3 дня после выпуска цифра установок так и остается «1+». Просто открытие игры в сторе не дает почти никакого трафика, это и есть, согласно картинке, Пропасть Печали. Ты понимаешь, что да, ежедневно в App Store выходит примерно 1500 приложений, а в Google Play еще больше, на этом фоне быть замеченным непросто. Это данность.

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

Как продвинуть игру без денег или почти без денег, расскажу в следующей статье. Если будет позитивный опыт о котором можно рассказать, конечно : )

Всем отличной недели!

{ "author_name": "Sashka Ch", "author_type": "self", "tags": ["long"], "comments": 13, "likes": 38, "favorites": 28, "is_advertisement": false, "subsite_label": "indie", "id": 32291, "is_wide": false, "is_ugc": true, "date": "Tue, 27 Nov 2018 06:23:00 +0300", "is_special": false }
Промо
3D-модель феникса, который победил в конкурсе маскотов vc.ru
В марте фантазировали на эту тему, пришло время реализации.
Объявление на DTF
0
13 комментариев
Популярные
По порядку
Написать комментарий...
8

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

Ответить
0

Хороший вариант ) статьи дают буст к установкам, правда для экспериментов нужен постоянный поток регистраций.

Ответить
2

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

Ответить
1

Здесь начинается второй большой этап в жизни мобильной игры — софт-лонч и продвижение.

Нет, он начинается еще до анонса игры.

Ответить
0

Так, но не совсем. Дело не столько в анонсах, сколько в охвате аудитории. Побольше аналитики, поменьше маркетинга.

Ответить
0

Как можно продвигать игру не анонсировав ее? И софт-лончить не продвигая?

Ответить
0

Сашка, спасибо за интересный отчёт! Какие у тебя были навыки перед началом разработки?

Ответить
2

Спасиб. Я работал java-разработчиком, а последние лет 5 работаю ПМ-ом, навык программирования есть, но нужно было восстановить его + освоить юнити. По дороге заметил, что для юнити оч много видео-уроков, а мне больше нравятся текстовые - в них можно быстро найти то что нужно и запрогать )

Ответить
0

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

Ответить
0

В итоге вся разработка заняла примерно 2 года, это периодическое программирование по вечерам после работы. Если заниматься целый день с утра до вечера, то мб и за месяц можно сделать прототип, кто его знает : ) За предложение спасибо, помедитирую )

Ответить
0

Чел, я тебя ненавижу, я установил твою игру, не смог отгадать загадку, спросил у друзей в конфе
В итоге, щас всей конфой сидим и отгадываем твои загадки. Несколько человек играют по скриншотам. И почему это не правильно?

Ответить
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" }