реклама
разместить

Как я разрабатываю словесные игры для iOS

Как я разрабатываю словесные игры для iOS

Вступление

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

Почему именно так? Моя выпускная работа в университете была на эту тему (почему именно такая — это отдельная история) и с тех пор я разрабатываю игры в этом жанре. Только изредка отклоняюсь и делаю что-то другое.

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

Концепция

Как я разрабатываю словесные игры для iOS

Идея, которая пришла мне в голову — совместить физическую составляющую action-игр и словесную составляющую словесных.

Концепция простая — поток блоков с буквами летит из левого края экрана в правый в зоне по центру экрана. От границы зоны блоки отсакивают. После вылета за правую часть экрана, блок исчезает, на его место респавнится новый блок и появлятся из левой части экрана.

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

1 день. Разработка основных механик

​Просто отрисовка | Попытки в физику | Все работает!
​Просто отрисовка | Попытки в физику | Все работает!

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

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

Это был самый трудный момент, ибо с физикой в SpriteKit я практически не работал. И гайдов в интернете не так много, из-за этого, многое делается наугад. Особенно коллизии объектов.

Как я разрабатываю словесные игры для iOS

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

Как я разрабатываю словесные игры для iOS

Добавил красоты в виде партиклов. Партиклы появлятся после нажатия на блок с буквой.

Как я разрабатываю словесные игры для iOS

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

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

Проблему так и не решил. На симуляторах ее нет, возможно, после залива в TestFlight проблема пропадет. Ну или я просто поменяю цвет фона.

2 день. Доводим игру до конца

Как я разрабатываю словесные игры для iOS

Для начала решил изменить то, как показывать игроку те буквы, которые он уже собрал. Блоки сверху решил убрать и вместо этого вывести туда таймер. А в слове снизу [то слово, что необходимо собрать], подсвечивать зеленым цветом собранные буквы.

Добавил лейбл с очками — в центр за пролетающими блоками. При увеличении кол-ва очков, лейбл окрашивается в зеленый цвет на секунду.

Как я разрабатываю словесные игры для iOS

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

Как я разрабатываю словесные игры для iOS

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

Как я разрабатываю словесные игры для iOS

Сделал главное меню, подсказку, экран окончания уровня и лидерборд.

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

Как я разрабатываю словесные игры для iOS

С таблицей лидеров проблем не возникло — воспользовался реализованным решением из другого проекта. Таблица лидеров у меня хранится в Firebase. При первом посещение таблицы лидеров пользователь вводит свой никнейм для таблицы.

Как я разрабатываю словесные игры для iOS

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

Чтобы игрок не тыкал бездумно на все блоки подряд, добавил бомбу. При нажатии на бомбу, уровень завершается. С другой стороны добавил положительный, для игрока, предмет — блок с с временем. Если нажать на него, то игроку дается дополнительные 10 секунд.

После этого добавил словарь английский слов в игру и локализовал интерфейс на аглийский [первоначально все делал на русском]. Добавил Flurry для отслеживания действий пользователя. И AdMob, для размещения рекламы.

Вчерашняя проблема с окрашиванием safeArea ушла сама собой, типичный Xcode.

​Памогите
​Памогите

Ну и в самом конце моя самая нелюбимая часть — производство скриншотов для AppStore. 3 основных устройства по 4 скриншота на двух языка.

Вечером второго дня отправляю игру на ревью в AppStore — неплохо!

3 день. Отказ в публикации

Кот победит? ​
Кот победит? ​

Сомнения в том, что будут проблемы у меня возникли еще тогда, когда игра не прошла ревью за ночь — обычно именно столько времени это занимает. И правда, через 24 часа после отправки Apple отклонили игру.

Как я разрабатываю словесные игры для iOS

Apple не понравилась ссылка на группу в ВК, которую я указал как адрес поддержки. И у них не сработала кнопка «Оценить приложение».

Странные причины для отказа. Во второй раз у меня отклоняют приложение. Но в прошлый раз, причина была более понятной.

Проверил кнопку — она работает, что на симуляторе, что на двух разных физических устройствах. Возможно, после перезаливки билда, проблема, если она и правда случилась у ревьюера, уйдет сама. А возможно, на повторном ревью, будет другой человек, у которого не будет таких проблем.

Как я разрабатываю словесные игры для iOS

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

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

4 день. Публикация игры

Как я разрабатываю словесные игры для iOS

Повторное ревью, обычно, занимает гораздо больше времени, но на этот раз мне повезло — через 20 часов после отправил на проверку, приложение опубликовали.

Итого

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

P.S. Приветствую любые вопросы, предложения и пожелания к игре!

5050
реклама
разместить
39 комментариев

Иконка шикарная!

Спасибо за статью, успехов в дальнейшей разработке.

6

Какие метрики успели собрать после релиза, можете поделиться аналитикой, спасибо)

1

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

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

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

Можно подробнее про таблицу лидеров? Нужно платить за пользование сервером где этот список хранится? 

Вот ссылка на прайс Firebase: https://firebase.google.com/pricing

В данном случае автор, вероятно, использовал функционал Cloud Firestore. Там к тому же довольно подробная и понятная документация.

2
Раскрывать всегда
Слово пацана - Голливуд эдишен
247247
8888
1212
66
33
22
11
11
11
Ну конечно Гослинг с табуреткой в ноге это...)))
«Если вы не читали книги, я не виноват»: Джейсон Момоа подтвердил, что вернётся в триквеле «Дюны»

В материале есть спойлеры.

«Если вы не читали книги, я не виноват»: Джейсон Момоа подтвердил, что вернётся в триквеле «Дюны»
3434
33
22
11
11
В форсаже уже ждем когда вернется, кому дюна эта нужна
Какие бывают "серьёзные мужские хобби"?

Листаю винчик бывает и попадаются те, кто не просят, а требуют серьёзное хобби. Типа чел увлечён покраской - задрот. Разрабатывает для души игрушки - задрот. Ходит на рыбалку - фу, скуфяра.

Призываю в тред тех, у кого серьёзные хобби

2929
1313
77
11
11
Коллекционирование столетних вин, прогулки на личной яхте, инвестиции в молодые стартапы, поездки верхом в своём загородном имении
«Человек-паук: За пределами вселенной» выйдет в июне 2027 года, а следующий фильм с Томом Холландом — в июле 2026-го

Придётся подождать.

«Человек-паук: За пределами вселенной» выйдет в июне 2027 года, а следующий фильм с Томом Холландом — в июле 2026-го
6666
1616
44
33
33
11
11
11
11
Лучше бы наоборот мультфильм пораньше сделали, он как-то интереснее лично мне.
Нужна консультация по возврату Озон.

При доставке монитора до моего города была повреждена матрица

Нужна консультация по возврату Озон.
6464
44
33
22
22
Озон максимально лояльные парни и дамы, так что попробовать стоит. Но то, что не проверил в пвз - это уже повод задуматься. А так, желаю удачи и да прибудет с тобой сила.
Роскомнадзор запустил шоу «Заблокировано — и точка»

В нём ведущие рассказывают, как «делают интернет чище».

Роскомнадзор запустил шоу «Заблокировано — и точка»
1.1K
284284
187187
4242
1111
1010
88
33
33
11
11
11
11
11
11
11
Baroque (1998): Самая странная РПГ
Baroque (1998): Самая странная РПГ

Родные мои, я надеюсь вы уже наигрались в Балдурс Гейты, Старфилды и прочую ерунду. Поэтому позвольте познакомить вас с диковинной РПГ с первой PlayStation, аналогов которой нет до сих пор. Пусть вас не смущает её название – посвящена она вовсе не живописи, а крови, железу и бетону…

3000
8181
77
11
11
Все франшизы попадают в рай — Need for Speed (1994 — 2022)

Ультимативная история самой знаменитой серии гоночных игр на планете. 30 игр. 30 обзоров. Один блогер. Одна дорога, длиной в 30 лет. И самая масштабная статья в истории блога Дениса Большакова.

Все франшизы попадают в рай — Need for Speed (1994 — 2022)
5454
1111
55
44
44
33
33
11
11
11
11
Оставляем в закладках. Такие шикарные материалы с подробными обзорами каждой мелочи можно перечитывать годами и смаковать как хорошее вино. Это как "Война и мир" Толстого, если бы тот не был графоманом и выдавал самую суть. Тянет на 5к от редакции
Я никогда не стремился к отношениям, но недавно решил их попробовать

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

пикрандом. 2.5D
44
22
22
22
11
11
11
11
реклама
разместить
Разработчик Path of Exile 2 пришел на подкаст к русскому стримеру и выдал базу

Александр ответил на самый популярный вопрос в комьюнити пое, что же GGG думают об RMT составляющий в Path of Exile 2. Так же ночью прошел еще один подкаст с генеральным директором GGG, в котором он дал пояснения к патчу 0.2.0, читайте в статье

4343
55
44
33
11
11
Сборник смешнявок к 1 апреля: жители ДТФ делятся смешными, забавными и милыми моментами из видеоигр

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

500
3333
1515
22
11
11
11