Путь Студента К Разработке Мобильных Приложений

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



Фон

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

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

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

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

Немного продвинулся в чтении соответствующей литературы, для практики решил задачи из "Проект Шайлер" .

На самом деле, мне все это время хотелось начать заниматься чем-то действительно серьезным, и на определенном этапе я почувствовал, что если не сейчас, то никогда.

Игры стали «серьёзными», как вы могли догадаться.

Найдя для этого занятия библиотеку PyGame, я приступил к делу.

Для начала я решил немного потренироваться на чем-то банальном.

Всё-таки тетрис я не делал, а реализовал, хоть и не сразу, старую добрую игру «жизнь», чем очень доволен.

Жизнь

Путь студента к разработке мобильных приложений

Потом к моим творениям присоединились: почти готовый DX-Ball, в который я с интересом играл на компьютере дяди в середине 2000-х, копия Supaplex в зачаточном состоянии (все та же ностальгия) и в таком же состоянии аркадная игра, вдохновленная относительно современной The Binding of Isaac. Dx Ball'

Путь студента к разработке мобильных приложений

Исаак'

Путь студента к разработке мобильных приложений



Начало студенческой жизни и первые порывы к созданию собственных проектов

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

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

Дальше начался самый страшный период в жизни любого школьника: ЕГ?.

Программирование отошло на второй план, но сдав экзамены и поступив на факультет «электроника и наноэлектроника» в СПбПУ, я вернулся к программированию.

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

И вот я решил написать что-нибудь для Android. Я остановился на том же Python, так как это было единственное, что я все равно знал и за что мог цепляться.

Я начал изучать фреймворк Kivy. К сожалению, как бы мне этого ни хотелось, Python+Kivy — не лучший вариант для Android-разработки, и я понял, что далеко в этом направлении не пойду.

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

Так родился наш первый реализованный проект и появилась команда из двух человек, взяв название «Аспид Динамикс».



Путь студента к разработке мобильных приложений

Большая часть времени была потрачена на знакомство с Kivy и другой библиотекой KivyMD, которая предоставляла элементы Google Material Design. Остальное время ушло на рисование иконок и многочисленные редизайны (В итоге получилось не очень, но могло быть и хуже).

Поскольку я больше не работал один, это немного упростило процесс разработки и мотивировало меня.



Новые начинания

Получилось не совсем то, что я хотел, но я решил двигаться дальше.

Я внимательно рассмотрел новый для меня инструмент разработки — хорошо известный движок Unity. Выбор дальнейшего направления развития наконец-то сделан, осталось (просто) познакомиться с C# и изучить возможности самого Unity. Таким образом, мы подошли к событиям, произошедшим совсем недавно.

Как и прежде, я решил не браться сразу за что-то слишком тяжелое.

Идея была проста: создать игру, в которой люди записывали бы слова, соответствующие заранее определенному условию.

Один простой пример: «Введите слова, содержащие три буквы «о»», после чего вводите, например, «колокольчик».

Поначалу идея не показалась чем-то новым, но, проверив Play Market, я не нашел похожих игр, что в конечном итоге убедило меня в том, что идея удалась.



Проект «Мастер слова»

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

Реализация казалась простой, по крайней мере, после поверхностного анализа.

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

Закончив описание проекта, я с энтузиазмом приступил к реализации по пунктам.

Основная идея действительно довольно быстро воплотилась в жизнь: была добавлена возможность создавать уровни на основе нескольких шаблонов.

Шаблоны являются своего рода основой для определенных критериев, которым должно удовлетворять слово, среди них: начало слова с «подстроки», т.е.

буквы или последовательности букв, содержание «подстроки» в слове, содержание из N букв, четное/нечетное количество букв в слове и т.д. Далее введенные игроком слова проверялись на соответствие шаблону и наличие в словаре.

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

Мастер Слова

Путь студента к разработке мобильных приложений



Новые проблемы и неожиданные решения

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

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

, при этом упорно игнорируя других.

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

После этого следить за собой стало гораздо проще, но в итоге было сделано всего 60 уровней.

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

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

Видимо, это связано с тем, что слова для некоторых состояний найти легче, даже если их меньше.

Например, в сознании довольно легко всплывают слова, при условии, что они начинаются с какой-нибудь подстроки; например, возьмем слова, начинающиеся с «ба».

Мы как бы говорим себе это начальное состояние «ба», и мозг легко выстраивает его во множество слов: «танк», «банк», «банан» и т. д. Но если в условии будет не более 4 гласных и ровно 8 букв, то, хотя таких слов будет в 6 раз больше, скорость выбора явно снизится.

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

).

Если бы не было связи, ничего объединяющего эти слова, то, просто ища в голове, мы бы догадывались гораздо меньше.



Полировка, новые режимы, последние штрихи

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

Вдохновленный успехом генератора, участвовавшего в создании уровней, мы решили ввести новый игровой режим.

Это была игра на выживание, в которой нужно вводить слова, пока не истечет таймер.

Отличием от классического режима является то, что здесь перед игроком стоит задача ввести слово за N секунд по заданному условию.

Если условие успешно выполнено, создается новая задача и таймер продлевается.

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

Конечно, гораздо интереснее проверить свой словарный запас с другом на перемене или поиграть с незнакомцем онлайн.

«Классический» многопользовательский режим предполагает соревнование по количеству очков, полученных за определенное время.

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

Дизайн принес нам много проблем в процессе разработки.

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

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

В результате путем неоднократных доработок и сбора отзывов друзей я сам разработал окончательный дизайн.



Релиз игры, планы на будущее

Изначально Master of the Word должен был выйти только на Play Market из-за ограничений бюджета, но мой друг помог мне получить необходимые для выпуска в AppStore $99. Мы планируем расширять и обновлять игру.

Дополнительные уровни, достижения, рейтинги игроков и многое другое интересное.

Возможно, мы сделаем английскую локализацию, что в контексте этой игры дороговато.

Спасибо большое за внимание всем, кто прочитал этот длинный пост. Искренне Ваш, Команда Aspid Dynamics. Теги: #Разработка игр #iOS #Android #Разработка Android #программирование #C++ #unity #мобильные игры #AppStore #play market #indie

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.