История разработки Crazy Box Fall — игра, которую нарисовали в текстовом редакторе Pages

Меня зовут Юра. Недавно мне исполнилось 18 лет, учусь на втором курсе политехнического института на программиста. Я открыл для себя мир разработки под iOS почти год назад, в мае. Помню, тогда попал на статью, что создатель Flappy Bird по примерным подсчетам получает от рекламы 50 000$ в день. На тот момент все, что я умел, — это писать простые программы в консоли на паскале. Так что я сразу принял решение начинать копать тематическую литературу и развиваться в сторону iOS. 

Сама идея появилась еще в конце августа. Каждый день я качаю около десятка приложений из разных категорий, которые вышли в топ. Таким образом, я пытаюсь понять, что сейчас люди любят, и какие необычные программки и игрушки пробиваются в топы. Рекомендую иногда делать такое разработчикам, ведь не всегда можно угадать, что именно сейчас хотя скачать пользователи. Так вот, скачал я тогда игру, где нужно было ехать квадратиком и перепрыгивать касаниями через преграды. А после десятого уровня он начинал падать с горизонтальными преградами. Приложение показалось мне интересным, но я хотел убить того дизайнера, который рисовал эту игру. Она была ужасной, дизайн отвратителен, я ее удалил в тот же день. Но идея осталась в моей голове. Где-то через пару дней я прикинул, что до универа осталось три недели и можно успеть создать и выбросить в App Store какую-нибудь игрушку. Тогда я и вспомнил про квадратик. Решил следующее: заставить его падать с препятствиями и по ходу разработки прикрутить что-нибудь еще.

История разработки Crazy Box Fall — игра, которую нарисовали в текстовом редакторе Pages

В отличие от других своих «шедевров», я решил создать эту игру по правилам, соблюдая все шаги. Начал с модели на бумажке. Потратил буквально 15 минут (но это сэкономило мне часы разработки), получилось просто и понятно. По опыту, сначала решил создать все картинки для игры, а только потом начинать писать код. Как-то спонтанно в голову пришла идея, что квадратик должен быть не одноцветным, нужно его оживить и добавить эмоции. Хотел сделать его каким-нибудь простым и веселым. Внизу фото моего лучшего варианта (их было больше 20), как мне кажется, он какой-то больной получился. 

История разработки Crazy Box Fall — игра, которую нарисовали в текстовом редакторе Pages

Я понял, что проще купить за пару долларов хорошие картинки, а не насиловать зря компьютер. Зато все остальные изображения сделаны полностью мной в программе Pages. 

После создания всех изображений начался самый долгий и нудный (местами веселый) этап: нужно писать код, просто писать очень много строк кода. Я понимал, что игрушка получится немаленькой, поэтому с первых строк пытался делать код читабельным и логичным. Где-то до 2000 строк у меня получалось… Во время разработки минимум несколько сотен раз все идет совершенно не так, как нужно, и я не преувеличиваю. И тут два варианта развития событий: 

1) Ты знаешь, где облажался, но все равно смотришь, каким именно образом приложение работает некорректно, потому что часто результаты не предсказуемы и иногда забавны.


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

Большую часть времени я был во втором состоянии, но иногда возникали интересные ситуации, как та, что ниже на скрине:

История разработки Crazy Box Fall — игра, которую нарисовали в текстовом редакторе Pages

Я планировал закончить писать игру через 3-4 недели после начала, но все затянулось на три с половиной месяца. После завершения я был приятно удивлен своим результатом, потому что я реально часто хотел в нее играть, не смотря на то, что уже играл несколько сотен раз во время разработки и тестирования. Потом начал тестировать на своих одногруппниках. Особенно понравилось, что после проигрыша я очень часто замечал ту же злость, что и от Flappy Bird, люди проигрывали, матерились, но снова начинали играть, что бы заработать яблочки и разблокировать следующую оболочку для коробочки. Когда они бесились от проигрыша, меня переполняла радость. Я понимал, что это успех.

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

История разработки Crazy Box Fall — игра, которую нарисовали в текстовом редакторе Pages

Поскольку человек всегда воспринимает цифры и картинки с большим интересом, чем текст, хочу привести несколько фактов в цифрах о моем приложении:

1. Весь объем игры 5700 строк. Плюс-минус 300 строк на комментарии к коду.
2. Финальная версия имеет 53 предупреждения в коде. Это не ошибки, с ними программа будет работать, но это значит, что в этих местах Apple хотели от меня немного другого).
3. На создание магазина коробочек и встроенные покупки я потратил больше двух с половиной месяцев, то есть в несколько раз больше, чем на всю остальную игру.
4. Изначально я назвал свою игру Crazy Box, но потом оказалось, что это имя  уже занято. Поэтому в App Store написано «Crazy Box Fall», но под иконой значится старое название.
5. Все изображения я создавал не в графическом редакторе, а в текстовом Pages.
6. Когда опубликовали iOS 8, мне пришлось переписать всю игру с нуля, потому что до этого я тестировал на 7 версии, а на 8 ничего даже не запускалось.
7. Каждое яблочко появляется с вероятностью в 25%.
8. Мой личный рекорд — 134. Ни у кого из знакомых не получалось набрать больше 117.
9. Уже готово обновление ко дню святого Валентина с пятью новыми коробочками.
10. Каждый месяц я буду добавлять 10-20 новых оболочек для коробочки, вас ждет много сюрпризов.