Опыт создания игры для Android в одиночку с нуля и как ее зафичерили на Google Play

19.11.2020 0

Бывало ли с вами такое: смотришь на пассажиров в общественном транспорте, которые лопают шарики в телефонах или залипают в «2048», и думаешь: «Простая же игра! Тоже хочу подобное сделать»? Со мной — постоянно, поэтому я решила разобраться, как создать популярную игру для смартфонов. Разведала, что по минимуму нужно знать для разработки игр, каких ошибок избегать и на что обращать внимание.

Разберитесь в азах

Чтобы понимать, как разработать концепцию игры, как выстроить игровой процесс и сделать так, чтобы пользователю было приятно играть, нужно познакомиться с геймдизайном. Понять принципы создания видеоигр помогут книги из подборки The 20 Best Video Game Design Books. Читать все, конечно, не обязательно.

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

  • Понимать жизненный цикл приложения для iOS/Android внутри операционной системы — что происходит при старте и телефонном звонке, какие ресурсы и когда загружаются в память.
  • Программировать на Swift/Objective-C для iOS и на Java для Android.
  • Понимать форматы звука и графики (текстур) для iOS/Android.
  • Иметь опыт программирования на C/C++ для iOS/Android на OpenGL.
  • Понимать цикл игры от создания до появления в Store.
  • Есть смысл посмотреть на игровые кроссплатформенные решения:

  • Unity 3D.
  • Unreal Engine.
  • Разработчик игр, сооснователь студии FIFTYTWO, выпустившей игры JELLIES! (5 миллионов установок на iOS) и Kenshō («Выбор редакции» в App Store и Google Play) Михаил Шагин выделяет Unity и C#: «Изучите Unity и язык программирования C# — это стандарт в индустрии. Работая на этом движке, вы будете быстро развиваться. Для Unity существует Asset Store — магазин готовых решений от разработчиков. Он сэкономит вам много времени и предоставит технологии, которые ранее были недоступны небольшим студиям и начинающим программистам. Обучаться помогут туториалы, видео-уроки и онлайн-школы».

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

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

    Онлайн конструкторы игр и приложений

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

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

  • www.appsgeyser.com – Наверное лучший онлайн конструктор на сегодняшний день. Appsgeyser позволяет бесплатно создавать различные виды игр и приложений в неограниченном количестве. После проверки и тестирования своего софта, вы можете свободно и без каких-либо ограничений опубликовать его. Кроме этого вы будете получать 50% дохода от показа рекламы.
  • www.unity3d.com – одно из крупнейших в мире творческих сообществ — и платформа для разработки игр номер один. С Unity вы сможете создавать любые 2D- и 3D-игры. Процесс разработки будет легким, а результат — глубоко оптимизированным и красивым.
  • www.c2community.ru – Делай игры без усилий! Construct 2 — это конструктор игр для Android, который позволяет создавать потрясающие игры без программирования и скриптов!
  • www.ibuildapp.com – Платный конструктор приложений для вашего бизнеса. Позволяет бесплатно создавать приложения для Android или IOS (iPhone и iPad). Созданные с помощью конструктора приложения могут быть не только анимированные, но и дополнены видео и звуком.
  • www.mobiumapps.com – платное создание мобильного приложения для телефонов iOS (Apple) и Android (Google) в режиме онлайн.
  • www.viziapps.com – Создание и запуск мобильного приложения в 3 быстрых шага.
  • www.appmakr.com – сделай своё приложение за 20 минут или воспользуйся готовым шаблоном.
  • www.theappbuilder.com – бесплатный онлайн-сервис для быстрого создания мобильных приложений для бизнеса.
  • www.appsmakerstore.com – онлайн-сервис для создания своего приложения в несколько кликов. Создавайте бесплатно свои приложения, публикуйте и зарабатывайте на рекламе за каждые .
  • www.biznessapps.com – Создание приложения для малого бизнеса, с широкими возможностями.
  • А каким способом удалось создать своё приложение вам? Поделитесь своим мнением, оставив комментарий внизу страницы, возможно ваше сообщение окажется полезным и поможет определиться с выбором другим пользователям.

    Нажмите на звезду, чтобы оценить!

    Средняя оценка 4.8 / 5. Количество оценок: 38

    Оценок пока нет. Поставьте оценку первым.

    Геймплей прежде всего

    Сначала разработайте core gameplay — основу игры: придумайте, что будет делать игрок, как и в зависимости от чего игровой мир будет на это реагировать. Он должен затягивать. К остальному переходите, только когда core gameplay будет готов на 100 %.

    «Отложите до финальной стадии проекта исправлене багов, улучшение графики, переводы и озвучку. Вам придется много раз переделывать игру, и часть несвоевременно проделанной работы окажется напрасной», — советует Михаил Шагин, сооснователь студии FIFTYTWO.

    Основной критерий крутого геймплея — он заставляет возвращаться к игре. «В игре должна быть глубина, чтобы игрок оставался в ней как можно дольше. В конечном счете успешность игр основывается на retention rate — проценте игроков, возвращающихся по прошествии времени», — объясняет Михаил.



    Разработка

    О разработке можно сказать очень многое. Я выделю лишь некоторые ключевые моменты. Также распишу о тех неожиданностях, с которыми мы встретились, и о том, что нас по-настоящему поразило.
    Всего разработка заняла около двух лет. Игра написана на нативном Андроиде и состоит приблизительно из 20 тысяч строк кода, не включая библиотеки.

    В самом начале ничего, кроме этой гантели на Activity не было. В начале разработки самым сложным стало понимание графического интерфейса, все эти layout’ы, виджеты и иже с ними… Далее по мере разработки игры мы узнавали про асинхронность в андроиде, про продвинутые виджеты, смотрели огромное количество различных библиотек и пытались разобраться, что вообще там такое написано, и как оно работает. После одного года общения с андроидом мы уже имели представление об основах разработки. Старый код постепенно переписывался, так как после подросших умений он уже казался слишком костыльным и непродуманным.

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

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

    Сейчас мы поставляем сразу 5 версий приложения в Гугл Плей (4 версии с разделением ресурсов и 1 версию без разделения), что позволяет экономить у некоторых пользователей около 18 мегабайт веса.

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



    Попробуйте применить принцип «Easy to learn, hard to master»

    Это классический совет в геймдизайне: научиться играть должно быть очень просто, но достичь совершенства — крайне сложно, практически невозможно. Это и приковывает к игре. «Этот принцип особенно важен для мобильных free-to-play проектов, потому что у разработчика есть не более 10 минут, чтобы зацепить игрока. Большинство пользователей удалят игру после первой же непонятной ситуации и больше никогда не запустят приложение. Человек сразу должен понять, как играть и в чем цель», — рассказывает Михаил Шагин.

    Авторство этого принципа приписывают Нолану Бушнеллу, создателю компании Atari. В оригинале он звучал так: «All the best games are easy to learn and difficult to master. They should reward the first quarter and the hundredth». Нолан Бушнелл сказал это в 1971 году в контексте игровых автоматов Atari. «В те времена игровые автоматы были в новинку, и простота игр была критичной для пользователя. Особого игрового опыта ни у кого не было, и для коммерческого успеха было необходимо, чтобы у игрока были ассоциации из реальной жизни», — объясняет Алексей Рыбаков, руководитель мобильной разработки DataArt.

    Прообразом известной игры Atari — Pong — послужил теннис. В ее основу заложены простые физические принципы: угол падения равен углу отражения и подобные. Она позволяла перенести реальный опыт в компьютерную игру, поэтому ее просто было понять начинающему игроку в 1971 году. Но с ускорением мяча при переходе на уровень выше она становилась все сложнее и сложнее (hard to master) и заставляла играть вновь и вновь.

    Геймдизайнер Роб Прадо придумал еще одну вариацию принципа: «Easy to learn and almost impossible to master». Алексей Рыбаков объясняет: «Идея в том, что достаточно просто собрать стаф, необходимый для получения нового игрового предмета или уровня. На примере StarCraft — легко отправить все свои войска и разрушить базу. Но по мере продвижения по сюжету у игрока должны появляться новые возможности, предметы, юниты. Все это, плюс взаимодействие с реальными игроками, приведет к тому, что игру можно будет проходить в огромном количестве вариантов. Игрок будет возвращаться к ней многократно».

    Этот принцип — не гарантия успеха. Но практически любое решение, которое будет заставлять человека возвращаться в игру, оправдывает себя.



    Создаем проект-заготовку для будущей Android игры

    Я не буду здесь подробно расписывать процесс установки Android SDK и Eclipse, за рамками повествования я оставлю и элементарные действия по созданию Android проекта. В интернете валяется огромное количество уроков и статей, посвященных этой теме. Создайте новый проект. В поле Project Name введитеDroidz

    . В качестве целевой платформы выберите Android 2.2 или выше. В Package Name — «
    ru.mobilab.gamesample
    «. Не забудьте поставить галочку около Create Activity. В качестве имени главной activity введите
    DroidzActivity
    . Откройте файл src/ru.mobilab.gamesample/DroidzActivity.java
    package ru.mobilab.gamesample;import android.app.Activity;import android.os.Bundle;public class DroidzActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }}
    Метод onCreate вызывается при создании activity во время запуска приложения. Этот метод можно рассматривать, как точу входа в программу. Класс R.java автоматически генерируется Eclipse и содержит в себе ссылки на ресурсы. Каждый раз, когда вы изменяете ресурсы в Eclipse класс R пересобирается.



    Сделайте геймплей простым и удобным

    Думайте об особенностях платформы, под которую пишется игра, и о ситуациях, в которых люди будут в нее играть. Советует Михаил Шагин: «Игровая сессия, вероятно, составит всего 10–15 минут. Большой плюс, если игрок сможет безболезненно отвлечься от игры. В этом помогут пошаговые геймплейные механики. Телефон обычно держат вертикально в одной руке — а это значит, что в вашем распоряжении будет только один палец игрока, большой. Постройте геймплей на простых свайпах и тапах — этот принцип используется в большинстве казуальных хитов. Посмотрите на Voodoo и Ketchapp — французских издателей игр, чьи установки составляют 50 % среди аркад в App Store. Такие проекты делаются за одну–две недели, что не мешает им занимать первые строчки в топе».



    Типичный сценарий

    Простая игра строится по определенной схеме. Для взаимодействия с пользователем предусмотрены следующие элементы:

    • Основной дисплей. На нем разворачиваются события. По завершении процесса рекомендуется реализовать переход к таблице рекордов, если результат оказался достойным этой «доски почета».
    • Меню. С помощью этого инструмента выбирают действия и делают настройки. Он обеспечивает переход к другим элементам. Меню обычно появляется сразу после заставки. Пользователю предлагается выбор дальнейших действий: приступить к игровому процессу, ознакомиться с инструкцией и правилами, просмотреть текущие рекорды и т. д.
    • Заставка. Представляет собой краткий анонс или рекламу с изображением логотипа. Демонстрируется в начале или во время пауз. Приветствуется использование хотя бы простой анимации.
    • Справка. В этом разделе меню описывают правила. Если текст не помещается в окне целиком, необходимо обеспечить возможность прокрутки.
    • Счет. Здесь отображаются текущие рекорды участников. В данном разделе можно просмотреть список в любой момент, не дожидаясь, когда сам там окажется. Также здесь бывает доступна информация о текущем игровом счете, но последний обычно можно наблюдать на основном дисплее.
    • Настройки. Пользователь должен иметь возможность поменять игровые параметры, свой аватар и логин или зарегистрироваться в качестве нового участника.

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

    В MenuActivity будут содержаться кнопки и другие элементы, запускающие остальные подпрограммы. SplashActivity потребуется для вывода заставки. Через несколько секунд автоматически запустится MenuActivity. Остальные активности: GameActivity (основной), SettingsActivity (настройки), ScoresActivity (счет) и HelpActivity (справка с возможностью прокрутки).

    Рекомендуется также задать базовый class BaseActivity, включающий общедоступные компоненты. Для каждой Activity требуется отдельный разметочный файл с набором нужных элементов. Первоначальной задачей разработчика является освоение работы с активностями. Для получения доступа к ресурсам и настройкам, используемым Activity, нужно сделать контекст приложения. Здесь прибегают к помощи метода getApplicationContext().



    Разберитесь в продвижении игр

    Подборки в магазинах приложений, реклама или сарафанное радио — что сработает для вашего проекта? Нужно понимать, что и с какой целью делаешь с точки зрения маркетинга. Михаил Шагин знал, зачем игре красивое оформление: «В Kenshō мы сделали упор на качество и визуальный стиль, что принесло нам бесплатную поддержку от платформ. Мы получили о App Store и Google Play, стали «Игрой дня» в App Store. Kenshō попала в подборки и на баннеры, что и дало нам основной трафик».

    Насколько сложно создать игру

    Сложность создания игры зависит от трёх ключевых факторов:

  • Бюджет разработчика.
  • Умение команды.
  • Время, потраченное проект.
  • Разработчик должен обладать двумя ключевыми умениями — геймдизайном и программированием. Неплохо если к ним прибавляется финансовая поддержка, которая поможет как в улучшении «железа», так и найме мастеров для музыкального оформления и продвижения продукта.

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