Android — Разработка игр на мобильные устройства.


Содержание
Цукерберг рекомендует:  С++ - Подскажите по С++ новичку

Apps4all

Игры на Android

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

Android – уже сформировавшаяся, но всё еще растущая платформа. При этом она крайне популярна среди разработчиков: платформа крепко обосновалась и широко распространена на рынке. Возможности современных Android-устройств начинают превосходить возможности консольных систем последних поколений. Удивительно то, что любые игры, начиная от самых примитивных и заканчивая сложными, мультиплеерными проектами, имеют равные шансы на успех. За примером далеко ходить не надо — Flappy Bird. Большое разнообразие пользователей по критериям возраста, пола и предпочтений делает Android идеальной платформой для игровых компаний-разработчиков любого калибра.

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

Мобильная сфера оказалась очень демократичным рынком для разработки игр. Отчасти за счёт большого числа пользователей и их разнообразия, что позволяет всем разработчикам найти свою нишу. Но есть и другая причина – сегодня в распоряжении мобильных разработчиков гораздо больше инструментов и сервисов, чем когда-либо. Без них разработка игр не была бы такой доступной на этом быстроразвивающемся рынке.

Android является, пожалуй, наиболее развитой мобильной игровой платформой, если говорить о доступных инструментах и сервисах. Команда разработчиков Android, Google и такие партнеры как Intel, вложили исполинские усилия в то, чтобы обеспечить успех платформы, предоставляя специальные инструменты, различные API и сервисы для совершенствования Android-проектов. Многие из этих средств созданы целенаправленно для помощи разработчикам игр, к примеру:

  • Разработчики: Барьер для выхода на рынок никогда прежде не был таким низким. Сейчас каждый может создать приложение на Android и опубликовать его. Традиционно приложения пишутся на Java, который популярен как самостоятельный язык программирования и является самым распространенным языком объектно-ориентированного программирования в компьютерных классах большинства мировых университетов.
  • Средства разработки: Средства разработки Android предоставляются на бесплатной основе. Здесь нет затратных компиляторов или лицензионных сборов. Eclipse — хорошо известная среда разработки, уже скоро ожидается выпуск Android Design Studio, стандартные инструменты Android предоставляют весь необходимый функционал и постоянно улучшаются. Члены Open Handset Alliance, к примеру, Intel, выпустили ряд инструментов, чтобы упростить разработку под программную среду x86, а также х86-совместимые Android-устройства.
  • AndroidSDK: Android SDK – полнофункциональный набор интерфейсов программирования, который Java-разработчики сочтут привычным и простым в использовании. Поддержка OpenGLES позволяет разработчикам создавать приложения с интенсивной графикой, в то время как встроенные базовые графические и анимационные библиотеки Android дают возможность простым играм выглядеть притягательно без особого труда.
  • Нативная разработка: Нужно портировать много игровых библиотек? Разработчики, желающие использовать свои существующие игровые библиотеки на C/C++, могут использовать для этой цели Android NDK вместо глобальной переделки.
  • Сторонние игровые движки: Существует множество популярных игровых движков, которые дают возможность быстро создать игру на Android без изобретения колеса. Игровые движки могут помочь с портированием, предоставить фреймворк, поддерживающий распространенные паттерны дизайна игры, а также инструменты для генерации игровых объектов, к примеру, текстур и уровней.
  • Сторонние библиотеки для разработчиков игр: Разработчики могут использовать сторонние библиотеки для выполнения стандартных задач в играх, причем некоторые библиотеки оптимизированы под определенные процессоры. Их использование позволяет сократить время на разработке алгоритмов, а также получить наиболее оптимизированный код, что не всегда удается сделать с помощью компилятора.
  • Игровые сервисы: Google (Google Play Game Services) и Amazon (Amazon Game Circle) разработали комплект сервисов, позволяющих разработчикам сосредоточиться на основном функционале игры и «безболезненно» интегрировать социальные опции.
  • Публикация: У разработчиков существует масса доступных механизмов распространения.

Как видите, у разработчиков игр в распоряжении огромный набор средств. Они могут сфокусироваться на игровом коде и делать его всё лучше и лучше, не посвящая значительной части времени разработке других аспектов игры. Такая установка дает возможность любому – от инди-разработчика до огромной студии с голливудскими бюджетами – попытать счастья и добиться успеха. Теперь давайте рассмотрим некоторые из вышеописанных ресурсов более детально.

Идеальная платформа для разработчиков игр — Android

Разработчики, средства разработки Intel и Android SDK

Изучению платформы Android посвящено много статей, книг и даже университетских программ, поэтому мы быстро пробежимся по главным темам. Если вы только в начале пути, вам будет полезно посмотреть сайт, посвященный разработке на Android — https://developer.android.com. Здесь вы сможете узнать об Android, скачать AndroidSDK и необходимые инструменты, чтобы приступить непосредственно к разработке.

Вам стоит также направиться в Intel Developer Zone для Android и заполучить средства Intel для Android-разработки, а также инструменты отладки. Инструменты Intel Graphics Performance Analyzers (Intel® GPA) для Android — незаменимы для сбора аналитики для игр с интенсивной графикой. А Hardware Accelerated Execution Manager отлично экономит время: инструмент значительно ускоряет эмуляцию Android на устройства на базе процессоров Intel, вне зависимости от того, какой тип приложения вы разрабатываете.

Android NDK

Если вы потратили уже достаточно времени на разработку вашей игры на другой платформе, у вас есть возможность использовать существующий код в Android-приложении, используя Android NDK. Он поддерживает компоновку вашего приложения (на Java) с существующими библиотеками C и C++. У NDK существует ряд ограничений и его использование часто не лучшим образом сказывается на производительности. Использовать эту методику стоит только в случае, когда объем кода, который необходимо портировать, достаточно велик. Загрузить NDK и узнать больше информации вы можете здесь: https://developer.android.com/tools/sdk/ndk/index.html. Инструкции по установке пакета NDK и построению приложений с его помощью вы найдете в этой статье: https://software.intel.com/ru-ru/articles/ndk-for-ia.

Сторонние игровые движки

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

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

Игровые движки широко варьируются в зависимости от того, что они могут дать разработчику: некоторые предлагают полный игровой пакет, другие – поддержку низкоуровневых библиотек. Одни — 2D, другие — наоборот, 3D. Многие движки также предоставляют инструменты для создания полноценных игр и приложений: от конвертеров формата, редактора уровней до физических движков и средств управления анимацией. Через игровой движок доступны и обычные игровые средства вроде создания аватара.

Некоторые игровые движки являются характерными для платформы Android, в то время как другие могут быть кроссплатформенными и поддерживают разработку консольных игр в дополнение к мобильным. Существует много движков для Android – точнее, так много, что проще перечислить несколько самых популярных.

Определение наиболее подходящего для вашей игры движка является ключевым решением. Движки с большим количеством функций обычно массивны и сложны в использовании, нежели менее функциональные и, как следствие, более «легкие» игровые движки. Если посмотреть с другой стороны, многофункциональные игровые движки обросли крупными сообществами разработчиков, так что просьба о помощи или поиск специалиста – задачи, легко осуществимые. Некоторые движки сфокусированы на поддержке кроссплатформенности на основе единой кодовой базой. В таком случае, разработчик обычно пишет игры на некотором скриптовом языке. Другие движки могут потребовать нативного кода для каждой платформы. Наконец, выбор игрового движка может просто-напросто сводиться к стоимости лицензии.

Если ваш проект включает разработку игры, требующей высоких технических характеристик от устройств пользователей, вам будет интересно узнать, какие движки могут быть оптимизированы под специфические процессорные платформы, например, под Intel x86. Игровые движки, адаптированные под конкретные процессоры, имеют свои преимущества. Они отлично работают на отдельно взятой платформе взамен «неплохой работе» на всех остальных. Также они позволяют разработчику использовать передовые технические возможности на самых новых, премиальных Android-устройствах. Или же наоборот, увеличивают размах игры за счет ее возможности стабильно работать на недорогих или даже устаревших Android-устройствах с низкой производительностью.

Примеры различных типов игровых движков могут быть вам полезны. Давайте взглянем на libgdx и Project Anarchy, — два принципиально разных игровых движка.

Libgdx – это 2D- и 3D-движок, который помимо Android поддерживает Windows, Linux, Mac OS, BlackBerry, iOS и даже веб. В отличие от многих кроссплатформенных сред, приложения пишутся на Java, что очень удобно. Графика включает API для 2D- и 3D-интефейсов, низкоуровневые вспомогательные инструменты для OpenGL, а также математические или физические библиотеки. Поддерживаются музыкальные и звуковые эффекты, включены различные вспомогательные API – для файлов, предпочтений и разбора формата файлов. Наконец, доступны некоторые инструменты для конфигурации проекта, генерации шрифтов и редактирования системы частиц. Игровой движок libgdx является открытым и хорошо поддерживается сообществом. Проект очень развит: он имеет большое количество документации и обширную галерею приложений и игр, его использующих. Если вам комфортно работать с Eclipse и нет предубеждений против open-source сообщества, libgdx может стать отличным выбором для вашей игры.

Project Anarchy – полнофункциональный игровой движок, разработанный Havok и компанией Intel. У Project Anarchy есть всё: от физических движков до 3D-позиционного аудио, от профилирования кода до моделирования ландшафта. В отличие от libgdx, Project Anarchy лицензирован. В то время как мобильная лицензия Anarchy обеспечивает внушительный функционал на бесплатной основе, полный пакет опций движка Havok требует различных лицензий. Project Anarchy поддерживает разработку для Android ARM и x86 устройств, а также iOS. Windows, десктопные или консольные платформы так же поддерживаются, но для них необходимы другие лицензии. Project Anarchy имеет расширенный пакет инструментов для каждого члена команды разработчиков, включая дизайнеров, графических дизайнеров, аниматоров и других разработчиков. Как более профессиональное решение, Project Anarchy может оказаться совершенно не тем, чего ожидают многие разработчики мобильных приложений. Те, кто работают на Anarchy, используют более традиционные платные инструменты разработки вроде Visual Studio и Perforce. Если команда разработчиков вашей игры хорошо разбирается в традиционных методиках и инструментах, Project Anarchy станет лучшим движком для вашего проекта.

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

Сторонние библиотеки для оптимизации игр

Существует много библиотек для Android в дополнение к тем, что идут в составе Android SDK и предложений Google. К примеру, Intel предлагает целый ряд инструментов и библиотек, которые могут пригодиться разработчикам Android-игр, особенно если производительность устройства является для вашей игры камнем преткновения.

Несмотря на тот факт, что Android-устройства на базе процессоров Intel не могут похвастаться таким большим числом пользователей как ARM-устройства, Intel приложил немало усилий, чтобы предоставить разработчикам высоко оптимизированные библиотеки. Все они адаптированы под конкретные технологии Intel и значительно превосходят компиляторы. Тем не менее, любой разработчик, использующий их как составные части x86 NDK, будет внедрять собственную реализацию на других процессорах или задействовать готовую Java-реализацию.

Библиотека Intel®Integrated Performance Primitives (Intel® IPP) предоставляет алгоритмы обработки данных и мультимедиа для преобразования изображений, статистики и даже компьютерного зрения. Чтобы узнать об Intel® IPP для Android, посетите страницу http://software.intel.com/en-us/articles/using-intel-ipp-with-android-os.

Современная разработка игр неизбежно требует высокой производительности и возможности параллельного выполнения кода: необходимо сохранить высокий уровень передачи объектов рендеринга, подготовить реалистичную анимацию, воспроизвести искусственный интеллект, создать реалистичный звук и сетевое подключение. Библиотека Intel Threading Building Blocks (Intel® TBB) предоставляет фреймворк для создания многопоточных приложений. Android, в свою очередь, тоже предоставляет подобные инструменты поверх SDK, но приложения невозможно будет портировать на другие платформы. С Intel® TBB у вас не возникнет проблем с портированием, вдобавок вы получите дополнительные оптимизации для устройств Intel. Подробнее об использовании библиотеки TBBдля написания Androidприложений вы можете прочитать в блоге Intelна Хабрахабр: http://habrahabr.ru/company/intel/blog/161527/.

Мобильные и игровые сервисы

В дополнение к Android SDK, сторонним игровым движками и библиотекам, существует также множество дополнительных сервисов. Прежде чем начать разработку игры, вам важно узнать всё о существующих решениях. Многие из этих сервисов вы сможете удачно интегрировать в свой проект.

Такие крупные игроки рынка как Google предоставляют расширенный набор сервисов для помощи Android-разработчикам сразу в нескольких направлениях. Лучшее место для старта — Google Play Game Services, где вы найдете возможности для поддержки социальных аспектов игры, например, таблицы результатов или достижений; инструменты облачного хранения; игровые модели пошаговой стратегии или игры в реальном времени, а также многое другое. Прочие сервисы, такие как Google Play In-App Billing и Google Mobile Ads менее ориентированы конкретно на игры, но, тем не менее, они помогут вам монетизировать игру. Также Google предоставляет сервисы для интеграции игры с социальными медиа, к примеру, Google+. Если необходимы облачные сервисы, попробуйте Google Cloud и Google Cloud Messaging. Для сбора важных данных о работе приложения и пользователях можно использовать Google Analytics. Разработчики, желающие опубликовать свое приложение в Amazon, смогут найти подобные сервисы в Amazon GameCircle.

Возможности публикации

Итак, вы вложили в проект свое время, свои выходные, пот, кровь и слезы. Вы завершили разработку игры, и сейчас вам необходимо найти ваших пользователей. С Android у вас есть несколько путей публикации. Большинство разработчиков публикуют свои игры в Google Play и Amazon Appstore. Оба магазина требуют от разработчика создать аккаунт (за небольшую плату) и затем издатели, Google или Amazon, добавят вашу игру в свой каталог приложений, будут управлять ее распространением и собирать доход. Затем они вычтут процент своего интереса и передадут вам остаток, — все просто! Есть также и альтернативные методы публикации. О них и о многом другом вы можете узнать на http://d.android.com/tools/publishing/publishing_overview.html. Если вы хотите опубликовать приложения для x86 устройств, прочитайте советы Intel по публикации таких приложений: http://software.intel.com/en-us/blogs/2012/11/12/how-to-publish-your-apps-on-google-play-for-x86-based-android-devices-using.

Помните, что конкретный метод распространения игры может быть ограничен выбранными вами игровым движком или библиотеками. К слову, бесплатные и открытые игровые движки c меньшей вероятностью будут ограничивать ваш полет. Тем не менее, как минимум один из упомянутых нами игровых движков требует от разработчиков публикации только в хорошо известных магазинах приложений (Google Play и Amazon Appstore). Более того, условия лицензии некоторых игровых движков могут потребовать процент от вашего дохода, что может повлиять на ценообразование вашего продукта, внутриигровых покупок и других приемов монетизации. Удостоверьтесь, что вы прочитали все условия, прежде чем выбирать игровой движок для своей игры.

Заключение

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

Обязательно заходите на сайт программы Intel® Developer Zone, чтобы получить больше информации об инструментах Intel для разработки Android приложений.

ТОП-10 разработчиков мобильных игр для Andro > 2012-05-29 , Автор — Hardmind ; Продукт — -10 ; [27663]

Разработчики игровых приложений для мобильных устройств, вместе с инвесторами не могли оставить столь перспективный рынок без внимания. В настоящее время, в маркете «Google Play» уже размещено более 350 000 приложений и игр.

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

Сегодня можно смело выделить ТОП-10 разработчиков игровых приложений для Android.

1.Компания Gameloft (самые популярные игры: Assassin’s Creed, Modern Combat, Brothers In Arms, Asphalt 6: Adrenaline, Ice Age Village, Order & Chaos Online)

2.HandyGames завоевала популярность благодаря таким играм: Clouds & Sheep, Townsmen 6, Tattoo Tycoon, Guns’n’Glory WW2;

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

4.GameHouse – игры Doodle Jump, Cake Mania, Collapse! Chaos. Основным направлением компании является разработка и продвижение аркадных и логических игр.

5.Компания Zynga завоевала внимание онлайн аудитории благодаря своим социальным играм в сети Facebook. Самые известные приложения компании: Scramble With Friends, ZombieSmash, Dream Zoo.

6.Game Insight International – представитель российской индустрии мобильных игр. Самые популярные игры компании Моя Страна, Большой Бизнес, Железная Дорога.

7.Electronic Arts Nederland BV – мобильное подразделение компании EA. Такие мобильные игровые приложения как Worms, The Sims, Need for speed помогли достичь популярности, но из-за множества ошибок, игры получили очень низкие оценки.

8.MINICLIP.COM вместе с популярными играми Hambo, Fragger, Gravity Guy. Отдельно следует отметить Hambo, которая занимает 5-ую позицию в топе бесплатных приложений.

9.Компания Disney разработала такие игры как Крокодильчик Свомпи и Пираты Карибского Моря.

10.Dragonplay прославилась азартными играми, среди следует отметить Slot City — Slot Machines и Live Holdem Poker Pro.

Способы создания игры на Andro > 26 сентября 2020 26 сентября 2020 | Виктор Бухтеев

Для операционной системы Andro >

Создаем игру на Android

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

Способ 1: Онлайн-сервисы

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

  1. Перейдите на главную страницу сервиса по ссылке выше или через поиск в любом удобном браузере.
  2. Нажмите на кнопку «Создать».

Выберите жанр проекта, который хотите сделать. Мы рассмотрим обычный раннер.

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

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

Каждая игра имеет главную тему, которая отображается, например, при входе или в главном меню. Кроме этого присутствуют различные текстуры. Добавьте эти изображения в категории «Background and game images».

Назовите свою игру и переходите далее.

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

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

Сохранить и загрузить проект можно только после регистрации или входа в AppsGeyser. Выполните это и следуйте далее.

Сохраните приложение, нажав на соответствующую кнопку.

Теперь вы можете опубликовать проект в Google Play Market за небольшую плату в двадцать пять долларов.

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

Способ 2: Программы для создания игр

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

Мы же рассмотрим принцип создания проекта в Unity:

  1. Загрузите программу с официального сайта и установите на компьютер. Во время инсталляции не забудьте добавить все необходимые компоненты, которые будут предлагаться.
  2. Запустите Unity и перейдите к созданию нового проекта.

Задайте название, удобное место сохранения файлов и выберите «Create Project».

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

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

Способ 3: Среда разработки

Теперь давайте рассмотрим последний, самый сложный метод – использование языка программирования и среды разработки. Если предыдущие два способа позволяли обойтись без знаний в области кодинга, то здесь вам обязательно потребуется владеть Java, C# или, например, Python. Присутствует еще целый список языков программирования, которые нормально работают с операционной системой Android, однако официальным и наиболее популярным считается Java. Чтобы написать игру с нуля вам сначала нужно выучить синтаксис и ознакомиться с основными принципами создания кода на выбранном языке. В этом помогут специальные сервисы, например, GeekBrains.

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

Кроме всего, если ваш выбор на Java, а вы никогда раньше не работали с языками программирования, рекомендуем ознакомиться с JavaRush. Уроки там проходят в более развлекательном стиле и больше подходят для детей, однако при нулевом багаже знаний сайт будет полезен и взрослым.

Само программирование происходит в среде разработки. Наиболее популярной Integrated Development Environment для рассматриваемой операционной системы считается Android Studio. Ее можно загрузить с официального сайта и сразу же приступить к использованию.

Существует еще несколько распространенных сред разработки, которые поддерживают разные языки. Знакомьтесь с ними по ссылке ниже.

В этой статье была затронута тема самостоятельной разработки игр под операционную систему Andro >

Отблагодарите автора, поделитесь статьей в социальных сетях.

Как хорошо заработать на разработке игры для Andro >

Индустрия мобильных игр для смартфонов и планшетов на Android с каждым годом набирает обороты.

  • На 2020 год в России более 80 млн. пользователей смартфонов.
  • Самые популярные мобильные игры приносят доход от 3-х до 5-ти млн. долларов в квартал.
  • 69% – доля рынка Android, 27% – игры для iOS.

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

Какое направление игры выбрать?

Самыми популярными мобильными жанрами в России являются:

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

  1. С помощью монетизации через рекламные сети (AdColony, Chartboost, Admob, Vungle и др.) – в вашей игре показывается реклама, за которую вы получаете процент.
  2. С помощью внутренних покупок – в играх могут быть виртуальные валюты, товары, VIP-статусы, которые помогают игроку и которые можно приобрести за реальные деньги.
  3. С помощью системы достижений – они могут стимулировать игрока приобрести тот или иной товар за реальные деньги.
  4. Брендирование – в случае, если ваша игра приобретает популярность или же имеет обнадеживающие прогнозы, то вполне возможно, что вами заинтересуются крупные компании. Например, захотят поместить свой логотип на одну из ваших текстур!
  5. Платные версии игр с большим количеством контента, чем в бесплатных. Это наиболее популярная бизнес модель (наличие платной и бесплатной версии), и называется она Freemium.

С чего начать разработку мобильной игры?

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

  • насколько свободна интересующая меня ниша? Вполне возможно, что игр в жанре, в который вы метите, и так хватает, а интерес пользователей только падает. Вам такое вряд ли нужно.
  • кто моя целевая аудитория? Составьте портрет пользователя, который будет играть в вашу игру. Подскажем: в среднем это мужчины и женщины 25-30 лет, с семьей.
  • кто мои конкуренты? Необходимо проанализировать их сильные и слабые стороны, обратить внимание на контент, монетизацию, систему покупок внутри игры, а также игровую механику.
    чем дизайн моей игры и ее гемплей будет интересней и увлекательней? Здесь важно не только придумать оригинальный интерфейс и историю — нужно сделать игру интуитивно понятной.
  • как она будет называться? Сделайте название коротким и интересным, от одного до трех слов. Посмотрите, как зовут себя конкуренты и старайтесь придумать что-то уникальное. Копировать слова можно, но не более одного.
  • Какой язык программирования будет использоваться? Чаще всего используется Unity, но, тем не менее, также обозначьте это на начальных этапах разработки.

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

Где найти разработчика игр для Android?

Поиск разработчика приведет вас или на рынок фрилансеров или на рынок IT-компаний. Кому отдать предпочтение? Коротко о каждом:

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

Если хотите, чтобы игра появилась в Google Play и хорошо продавалась, то рекомендуем отдать предпочтение веб-студии!

Как выбрать веб-студию для разработки игры?

Анализ рейтингов разработчиков мобильных игр

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

Оценка скорости обратной связи

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

Теперь самое время ознакомьтесь с портфолио оставшихся в списке веб-студий. Отберите тех, кто обладает наибольшим релевантным опытом. Оцените удобство и простоту интерфейса нескольких игр из портфолио, перейдя по ссылкам на Google Play.

Затем предоставьте им техническое задание (ТЗ) или описание функционала игры на оценку. Если компания просто прислала число в рублях или в часах – смело вычеркивайте ее из списка.

Общение с клиентами

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

Знакомство с командой

Когда в списке осталось 2-3 компании можно переходить к личному знакомству с командой.

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

Поинтересуйтесь, есть ли в компании собственный отдел QA (тестирование), иначе искать ошибки придется вам или вашим клиентам. Спросите про парк устройств QA-отдела. Если в нем только несколько смартфонов Xiaomi и Lenovo, то это уж точно не должно внушать доверия. Парк устройств обязательно должен включать как дешевые смартфоны на Android, так и актуальные флагманы известных брендов.

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

Позвоните нам и узнайте, почему разработку игр для android стоит доверить компании «InfoShell»!

Разработка и создание игр для Android

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

Этапы разработки игр на Android

Создание игр на Андроид всегда состоит из множества этапов. Первый этап — написание документации, изучение конкурентов, проведение аналитики, формирование концепт документа. Начинать всегда нужно с подготовки прототипов интерфейса, пользуясь схемами и мокапами. Важно на этом этапе просчитать и заложить весь функционал будущего проекта. Программирование — практически последняя часть этапов и включает в себя наладку сервера, базы данных, API и другие ключевые решения. Заключительной частью являются тесты синтетикой и органикой, нагрузочные тесты, поиск уязвимостей и финальный релиз игры в Google Play и App Store с качественной ASO оптимизацией, которую проводят наши маркетологи.

Таким образом разработка мобильных игр под Андроид состоит из следующих этапов:

  1. Аналитика.
  2. Написание документации.
  3. Формирование прототипов.
  4. Интерфейс UI/UX.
  5. Серверная часть — Back End.
  6. Клиентская часть — Front End.
  7. Тестирование.
  8. Релиз, ASO.

Особенности платформы

В случае с нативными движками — к примеру в Android Studio, мы имеем ряд преимуществ. Такие как, более быстрое и гибкое создание игр, позволяющая реализовывать функционал игры на понятном устройству языке — Java. Темная сторона — стоимость разработки игрушки для Андроид будет в два раза дороже, чем в кроссплатформенном движке Unity или Unreal. Дело в том, что такие движки уже содержат в себе SDK под платформы Google Play и App Store, что является плюсом, но есть и минус. Огромная куча библиотек, которые не будут использоваться в проекте, занимают важное место под методы. Итак, в каждом отдельно взятом случае — нужно выбирать основу игры, движок или нативные языки, этот вопрос обсуждается вместе с заказчиком, и решение принимается вместе.

Сделайте заказ в нашей студии

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

Доверьте работу профессионалам, оставьте заявку на просчет прямо сейчас! Оценка проекта за 10 минут. Создание игр на андроид любой сложности

Разработка игр для Andro >Хотите найти надежного фрилансера по разумной цене?

  • Разработка игр для Android на YouDo.
  • Наш сайт поможет быстро найти опытного исполнителя из автосервиса для заказа услуг.
  • Разработка игр для Android — разместите заявку и проверенные специалисты предложат вам свои услуги и цены.

Только проверенные исполнители

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

Быстро и удобно

Уже через несколько минут после публикации задания вы начнете получать предложения от заинтересованных девелоперов YouDo.

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

Изготовление игр

Главное в разработке игр для android – создание полноценного продукта, который будет востребован мировой индустрией развлечений. Для того, чтобы игра принесла суперприбыли, она должна:

  • Понравиться пользователям.
  • Быть очень качественной и удобной.
  • Правильно продвигаться и рекламироваться.

Качественные игры, могут помочь:

  • Зарабатывать деньги.
  • Рекламировать основной бизнес с помощью выставленного логотипа и медиа-рекламы.
  • Для непосредственной продажи своих услуг или товаров посредством соцсетей или мобильных приложений.

Стоимость создания качественной игры

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

Создавая игры для android с целью монетизации и раскрутки игры, заказчики порой платят за услугу десятки тысяч долларов. Цена разработки игр под android командой профессионалов с биржи Юду начинается от 60 000 рублей, и зависит от размера и сложности работ. Одна и та же игра может обойтись заказчику и в 80 000 рублей и в 300 000 рублей. Но, в зависимости от бюджета, у этих проектов будет различаться уровень работ, графики и т.д.

Программисты биржи предлагают:

  • Разработку игр под android под ключ по договоренной фиксированной цене.
  • Создание игры с нашим продвижением. В этом случае вы также платите оговоренную стоимость услуги, но мы сами запускаем и раскручиваем проект, следя за его продвижением, и получаем за это 10% от полученной прибыли.


Каждая игра требует постоянных обновлений, которые обходятся недорого и оплачиваются почасово. Дополнительные услуги дизайнера также будут рассчитываться в зависимости от времени выполнения работы. А час работы специалиста веб-студии стоит от 200 рублей до 1000 рублей, в зависимости от рабочего стажа и мастерства.

От чего зависит качество игры

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

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

Разработка игр для Andro > 29.08.2020 Рубрика: Интернет Автор: admin

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

Заработок на разработке игр под Android

Своя фирма по разработке игр для Android это выгодно, потому что зарабатывать на приложениях достаточно легко. Продавать их можно через GooglePlay, как делают большинство предпринимателей в этой сфере. Сделать все просто, достаточно предложить свой продукт, защитить авторские права. Также иметь долларовые счет, на который и будут начисляться честно заработанные своим умом деньги. Конечно, продавать свой товар через GooglePlay сможет только зарегистрированный предприниматель. Поэтому без ненавистного всем ИП не обойтись.

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

Сколько стоит создание игры для Android

А фирма по разработке игр для Android начинается с подбора персонала на главную роль. Потребуются вам для начала: программист, дизайнер, обязательно маркетолог и тестировщик. Если у вас нет начального капитала для создания наиболее удобных условий работы своего персонала, на этом можно сэкономить, и найти работников удалено. Вам не придется платить за аренду офиса и специального оборудования. Удаленная работа специалистов привлекательна для предпринимателя тем, что при минимальных затратах денежных средств, вы будете получать превосходный результат не выходя из дома. Для большей экономии, в роли тестировщика и маркетолога вы можете выступить самостоятельно.

Идея для начала

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

  • Оригинальность
  • Практичность
  • Удовлетворение широкой аудитории

Если пройтись по этим пунктам, можно получить качественный продукт, который будет пользоваться популярностью. Не стоит придумывать что-то свое на ранних этапах. Просмотрите рынок предложений, рассмотрите варианты с зарубежных сайтов. Какие программы пользуются большей популярность. Берите идеи с уже реализованных программ, добавляйте в нее пару своих мыслей, и вот готов уникальный и оригинальный продукт. Разработка игр для Android проходит именно так.

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

Устанавливаем цену на создание игры под Android

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

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

И самый оптимальный вариант поставить свою фиксированную цену на свои услуги. Но поймите, что завышать цену на приложения будет слишком глупо. Ведь программа, которая продается, например, по цене 1-2 доллара, будет продавать больше, чем та же программа за 20 долларов. Поэтому ставьте цены ниже, и вы увидите, что люди будут скачивать именно ваше приложение, потому что оно доступно.

Не стоит забывать!

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

Разработка игр под Android – самоучитель

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

Как-то раз мне довелось присутствовать на одном мастер-классе по прототипированию в одной крупнейшей IT-компаний в России. Там, каждому участнику предлагали создать свою собственную игру с нуля за час, не имея никаких навыком программирования. То есть ты запускаешь программу и через час имеешь простенькую игру на Android, отлично не правда ли? К моему собственному удивлению, у меня получилось создать такую игру, было это совсем не сложно, нашлись даже люди, которые смогли поиграть в эту игру. Кстати, игра создавалась на платформе Clickteam Fusion. Именно об этом мы и поговорим в дальнейшем.

Программы для разработки 2D игр на Android

Как я уже писал выше, пользовался для создания игр я платформером Clickteam Fusion, кроме него на рынке представлены следующие программы: Game Maker Studio и Construct 2. Но так как я работал с Clickteam Fusion будем рассматривать разработку игры именно при помощи этой программы.

Как работает программа

Сразу хочу сказать, что все представленные выше конструкторы предназначены для создания игр в 2D. Уверен, что в скором будущем появятся и решения для 3D игр. И так если Вы хотите создать 2D игру, можете продолжать читать дальше, а если же Вас интересуют 3D, Вам придется изучать программирование, без этого пока никуда.

Игра состоит из кадров. В каждой сцене или кадре будущий пользователь должен решать ту или иную задачу. Если это меню, и Вы хотите создать кнопки Старт, Выход, Настройки, каждому из этих параметров, Вы должны присвоить свойство «active».

Как это сделать рассмотрим ниже:

Переходим в окно «Редактор кадра», то что справа. Нажимаем ПКМ и выбираем «Insert object».

Выбираем “Active”. Затем, нам остается создать изображение кнопки или здесь же его нарисовать. Кроме того, можно создать анимацию. Кстати один объект может иметь несколько анимация (выбранный персонаж, невыбранный, купленный, некупленный).

Теперь нам всего лишь осталось придумать действие, которые будет происходить при нажатии кнопки. Для этого открываем “Редактор событий”

Тут мы выбираем из списка условия для активации действия. В нашем случаи это будет tap по экрану или клик по мышке.

Осталось выбрать какое действие осуществить.

Вот и все. Таким простым способом мы запрограммировали кнопку без каких-либо знаний программирования. Именно из ряда таких событий и будет состоять ваша игра. На этом я заканчиваю рассказать о том, как разработать игру под Android с нуля для чайников без знания программирования при помощи платформера. Если этот пост будет популярным, я расширю и дополню инструкцию. Спасибо за внимание.

Как начать разрабатывать под Andro >
    Переводы, 21 ноября 2020 в 18:16

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

Начало работы

Новичкам в программировании поможет наша вводная статья.

Для новичков в Android Google сделал хорошее введение в Android на своём сайте. Также есть замечательный краудсорсинговый гид по Android. Кроме того, есть курс от Google на Udacity.

Если у вас возникают проблемы с Android, крайне рекомендуется сперва проверить StackOverflow. Он создан для ответов на технические вопросы и даже является официальной платформой Q&A для Android.

Статьи по Android вы всегда можете найти у нас на сайте.

Я хочу начать разрабатывать под Android. С чего мне начать?

Первый и важнейший шаг в разработке под Android – это изучение Java и XML. Как только вы более менее познакомитесь и с тем, и с другим, изучите официальную Документацию по Android и пройдите несколько уроков, пока не почувствуете себя достаточно уверенным для создания собственных проектов. Удачи!

Нужно ли мне Android-устройство для разработки?

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

Какую IDE мне лучше использовать?

  • Android Studio — официально поддерживаемая IDE для разработки под Android. Именно она используется в современных руководствах и видео, в том числе и от Google.
  • Eclipse была основной IDE для разработки под Android на протяжении многих лет, поэтому большинство устаревших уроков, ресурсов, видео и скриншотов сделаны на ней.
  • IntelliJ IDEA был альтернативой Eclipse, но в настоящее время разумнее начать с Android Studio. Android Studio – это ответвление IntelliJ IDEA, так что вы получите все её преимущества плюс бонусы под Android.

Может, мне стоит забыть про Java и начать учить Kotlin?

Google теперь официально поддерживает Kotlin как язык разработки под Android, но это не значит, что про поддержку Java можно забыть. В ближайшем обозримом будущем документация, инструменты, новые фичи платформы будут поддерживать как Kotlin, так и Java. Хотя Kotlin — более молодой язык с некоторыми приятными особенностями, вы всё ещё можете создавать отличные приложения на Java. Выбор зависит только от вас, но если вам не принципиально или вы новичок, то, возможно, лучше сделать выбор в пользу Kotlin.

Какое устройство/ОС/т.д. мне использовать?

По этим вопросам был проведён вопрос на Reddit, результаты можно посмотреть здесь.

Ресурсы

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

Официальные ресурсы Android

Дизайн

  • Шпаргалки по Android для графических дизайнеров
  • Красивости для Android – вдохновение для создания графических интерфейсов под Android.

Рассылки

  • Android Weekly – замечательная рассылка, помогающая быть в курсе последних разработок Android.

Коллекции библиотек

Инструменты

  • Genymotion – крайне полезный и функциональный эмулятор.
  • Android Asset Studio – отличная коллекция инструментов для создания/редактирования иконок, изображений и т.д.
  • Codota Plug-in для Android Studio – замечательные примеры кода прямо в Android Studio.

Примеры open source приложений

Идеи для приложений

Итак, у вас есть идея для приложения… Люди каждый день об этом пишут. Но перед тем, как просить помощи в реализации проекта, нужно ответить на следующие ключевые вопросы:

Каков мой бюджет?

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

Какая у меня маркетинговая стратегия?

Вы собираетесь использовать обычное сарафанное радио или готовы платить за известность?

Какой список задач у данного проекта?

А также, какие есть ограничения? Сколько мне нужно разработчиков?

Откуда будут приходить/где будут храниться данные?

А также, как они будут использоваться? Разработана ли у меня соответствующая политика приватности?

Есть ли цель заработать денег?

Если да, как вы собрались её достигать? Через рекламу, IAP, подписки, платные приложения? Всё вышеперечисленное?

Как вы будете платить вашим разработчикам?

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

Какой будет способ тестирования?

На какой тип устройства вы собираетесь устанавливать его? Как много итераций вам нужно? Каких людей вы хотите вовлечь?

Как скоро вы хотите опубликовать приложение в магазине?

Это однозначно повлияет на конечный доход.

Будете ли вы требовать или предлагать регистрацию/интеграцию с социальными сетями?

Продумайте реализацию этой функциональности.

Какова ваша целевая аудитория?

Это нишевое приложение или оно может быть распространено повсюду?

Реализована ли уже моя идея?

Если да, как я могу улучшить её или что в ней отсутствует?

Что делать с идеями для приложений, если вы не разработчик?

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

«Росбанк», Москва, до 60 000 ₽ (до налогов)

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

  • Нарисуйте дизайн вашего приложения (внешний вид и функциональность). Он может быть грубым и нарисован на бумаге. Но он должен быть достаточно конкретным, а не размытым.
  • Составьте список своих навыков, связанных с идеей.
  • Составьте список того, что вы вложите в свою идею.

Поймите, что разработка требует значительных усилий. Представьте, что разработчик работает полный рабочий день (8 часов) на протяжении 2 месяцев, чтобы создать ваше приложение. И вы также работаете полный рабочий день. Что вы делаете в это время? Если ваша работа, по вашим представлениям, заканчивается раньше, то нужно пересмотреть идею. В этом сценарии разработчик выполняет большую часть работы, и вы, честно говоря, бесполезны. То, что вы можете дать после того, как приложение закончено, не имеет особого значения и не будет мотивировать разработчика заканчивать продукт.

Пересмотр вашей идеи

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

  • Распределяйте работу настолько справедливо, насколько это возможно.
  • Фокусируйтесь прежде всего на ваших навыках.
  • Ваша загрузка должна примерно равняться 2 месяцам полноценной работы. Для простых приложений загрузка, конечно, может быть меньше. Вы можете попросить сообщество (например, наше) помочь в оценке трудозатрат.

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

  • Представьте всё. Не беспокойтесь, что идею могут украсть. Поскольку теперь идея завязана на ваших навыках, а распределение работы более справедливое, разработчику выгоднее работать с вами вместо того, чтобы делать всё самому. Используйте картинки и диаграммы, где это уместно, чтобы описать идею. Не упускайте важных деталей или того, что вы считаете тайным преимуществом. Скорее всего, оно таковым не является, и замалчивание этих деталей сделает идею размытой и недостаточно убедительной.
  • Что вложите вы? Очень важно это обозначить.
  • Каких взаимоотношений вы ищете? Долевое участие? Будете платить разработчику? При долевом участии нужно принять факт того, что разработчик может изменять приложение, и вам нужно будет вместе работать над тем, чего вы оба хотите. Не только вы обладаете видением того, какое направление является наилучшим.

Возможно, вам надо будет пересмотреть свою идею и внести изменения. И повторить это много раз.

Создание мобильной игры

В продолжение комментария http://pikabu.ru/story/quotya_sdelal_igruquot_nakipelo_4059294#comment_62458685, в котором я на крик души пользователя @Perja предложил выложить пост о разработке НЕ говно-игры (как мне кажется) собственного производства, если кому-то это будет интересно.

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

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

Те, кто скажут, что этот пост — просто реклама игры, — ради Бога, я не обижусь, и мне это сложно полностью отрицать. Здесь, действительно, присутствует небольшой элемент хвастовства и большое желание поделиться тем, что я сделал пару лет назад, будучи практически полным нулём в реальном программировании, но желающим понять, на что я способен (таблички Excel, взлом шестнадцатиричных кодов, да рисовка в Гимпе — вот весь мой «запас»).

Те, кто решат, что это — игра на говнокоде и автор #@$^#, — отличная критика в мой адрес, и нет мне оправдания! У меня действительно на тот момент было больше желания и рвения, чем каких-либо практических знаний по разработке игр.

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

Прим. Материалы актуальны для 2013-2014 годов, поэтому сразу извиняюсь, если какие либо элементы повествования будут не совпадать с нынешним раскладом в IT мире.

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

Итак, вводная прошла, давайте попробуем пройти по порядку от и до. Сама игра называется Robot’s eye, доступна только в Google Play для мобильных устройств (разработка была кросплатформенной, но выложить по объяснённым далее простым причинам я её мог только для Android платформы), и представляет собой головоломку, основанную на физических законах и цветовом восприятии.

Никакой рекламы в игре нет, только 40 уровней (20 в первом разделе и ещё 20 в обучении).

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

Поначалу, когда было только огромное желание удариться в разработчики игр, было очень тяжело понять, что же должно быть тем проектом, который мне нужно выполнить. Тут, за основу попадалось много хороших вариантов, наподобии Angry birds или Doodle Jump, но меня заинтересовала Cut the rope, весьма добротная игровая серия от отечественных разработчиков, которая интересна не только маленьким пользователям телефонов, но также и взрослым, ввиду наличия уникальной и интересной игровой механики. И тут, желание что-то создать, которое было, но на уровне ниже среднего, примерно в течение года до этого, вдруг прорвало порог лени и страха.

Я стал думать о создании собственного продукта для мобильных устройств. Почитал дневники разработчиков Cut the rope на Хабре (кстати, рекомендую) и увидел, что ребята, действительно, творят какую-то магию, которая проходила всегда где-то мимо меня. Но я не мог просто взять, и скопировать их или чью-то ещё идею — это не красит человека, и решил выдумать эдакую головоломку, которая может и похожа, но скорее по жанру, чем по механике геймплея. В итоге, решение пришло само собой — создать геймплей с физическими законами цветовым восприятием. И не использовать верёвки.

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

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

Сказано-сделано. На тот момент, я достаточно неплохо владел бесплатным графическим редактором Gimp, который и использовал для создания статичной картинки робота (да и остальных картинок). К сожалению, два пятиминутных наброска ручкой на бумаге канули в историю, поэтому есть только окончательный вариант рисовки из Gimp. Все кнопки, уровни и задники рисовались по ходу написания уровней, но робот был нарисован ещё до создания игры — это было сделано для того, чтобы, во-первых, всё, по-возможности, плясало от стиля робота, а во-вторых, чтобы я понимал, что уже сделано хоть что-то, и на полпути останавливаться не стоит.

Далее, камнем преткновения стал выбор среды разработки, которую нужно использовать для создания всей архитектуры приложения. Так, как игра должна была использовать физические законы, то выбор сужался до выбора игровых движков, которые предоставляют такие возможности. После ознакомления с основными доступными движками на тот момент, я отфильтровал два основных кандидата — Corona SDK и Stencyl. Оба из них имели достаточно неплохой послужной список, набор возможностей и кроссплатформенность. Сейчас, конечно, есть и другие достаточно неплохие варианты (особенно Unity хорош в последнее время по соотношению качества и доступности), но тогда именно Stencyl и Corona SDK попали в мой личный топ. Я слышал на тот момент про Eclipse+Android SDK, но я был «не бум-бум» в написании кода, а также хотел получить именно кроссплатформенный продукт, поэтому, его рассматривал только в последнюю очередь.

И как я ни старался освоить LUA (язык написания скриптов для Corona SDK), на тот момент я понять его не смог (хотя, оборачиваясь сейчас назад, понимаю, что это был бы немного лучший вариант, в основном, из-за гибкости и доступности разработки в последующем). Что, в итоге, привело меня к Stencyl.

Сразу оговорюсь, что сама разработка на Stencyl абсолютно бесплатна, однако для публикации хоть где-нибудь, кроме Flash или HTML5, нужно в обязательном порядке приобрести лицензию за $200. Забегая вперёд, скажу, что разработка в Stencyl действительно была удобна и проста, и, в знак благодарности, я решил подкинуть ребятам деньжат.

Да, было жалко. Да, я понимал, что это мне нужно только на момент создания этой игры. Но уж очень пригорало в одном месте — очень хотелось потестировать игру на мобильнике и поделиться с друзьями, и, видимо из-за этого, палец случайно соскочил на мышке как раз в тот момент, когда курсор проносился над кнопкой «Купить».

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

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

После же этого, поняв, как устроен данный движок со всеми своими сценами, поведениями, персонажами, я просто нажал «Add new game» и начал экспериментировать.

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

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

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

Поэтому, лучше сразу (что я сделал, только когда напоролся на это спустя десяток файлов), создать дополнительные папки-категории внутри основной с проектом.

Я распихал элементы вот так для самих сцен:

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

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

Когда элементов немного, называйте их хоть 00, 01, 02, 03. Но, если элементов больше десяти, сразу задумайтесь над именованием, чтобы потом не запутаться. Простые аббривеатуры или сокращения спасут вам много времени и сил.

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

Например, гусеница — абсолютно статичный элемент, который всегда закреплён в одном месте (не может перемещаться по экрану), имеет высокий коэффициент трения и практически нулевую упругость. Когда объект попадает на неё, то он не отскакивает, а прочно прицепляется к месту приземления и движется в том же направлении, в котором крутятся шестерни гусеницы. Наоборот, резиновая подушка имеет крайне высокий коэффициент упругости, что позволяет любому объекту, попавшему на неё отскакивать в определённом направении.

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

Самое интересное, это как в данном движке подаётся программирование:

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

Были правда и четырёхэтажные формулы

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

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

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

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

После того, как 20 первых уровней были наполнены и оттестированы (достаточно большой промежуток времени ушёл на многочисленные перезапуски и отладки каждого уровня), я задумался о создании звукового сопровождения, которое тоже добавил в игру к каждому соответствующему персонажу. Почти все звуки я создавал сам, пыхая и угукая в микрофон ноутбука, а после отправляя их в программу Audacity (бесплатная), которая позволяет изменять звуки, обрезая их, регулируя их громкость, тембр, скорость и прочее. И, в итоге, все основные элементы, требующие звукового сопровождения (вентиляторы, звуки отскока, гусеницы и прочее), таки получили его. Но это всё смотрелось скучно без какой-то музыки. Поэтому, было решено вставить какую-нибудь ненавящивую тему. В интернете много различных Musicbox, которые позволяют создать музыкальный бэкграунд из смеси заготовленных звуков. ОСТОРОЖНО, в таких Musicbox часто могут обитать вирусы. Также, Freesound, Royaltymusic и библиотека звуков Youtube Вам в помощь — там можно найти много композиций, доступных для использования в любых целях.

Далее, необходимо было сделать стандартные настройки, типа «Выключить музыку», «Выключить звук» и т.д. Для этого было создано пара глобальных переменных, которые переносились неизменными между сценами и представляли собой всего лишь значения True/False, при которых музыка и звуки, соответственно, работали или не работали. Все звуки происходят в момент какого-либо события, а музыка же идёт на своём канале между сценами и не прерывается до тех пор, пока пользователь не отключит её в настройках либо не выйдет из игры совсем.

Когда с этой проблемой было покончено, настало время показа приложения друзьям. Самым удобным вариантом была демонстрация у каждого на телефоне — тут-то мне и пригодилась лицензия, которую я приобрёл. До этого, у меня уже был настроен аккаунт разработчика Google Play, был приобретён заранее пару месяцев до этого (как я говорил, желание было, но ещё не достаточное, поэтому дело остановилось), и я спокойно смог отправить на публикацию свой первый, скажем так, релиз из 20 уровней.

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

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

Что мы имеем в итоге? Игра из 40 уровней была создана (вместе с рисовкой и изучением движка) за десять дней на коленке. Не спорю, это были десять достаточно упорных дней — я погряз в это с головой и надолго не вылезал. Поэтому этот срок можно спокойно растягивать втрое. Но, так или иначе, могу смело утверждать, что данная вещь вполне посильная человеку, который совсем не знаком с программированием. Тут ведь, самое главное — это начать! Правда, серьёзно я до сих пор не занимаюсь разработкой игр — у меня разработка Web-систем и 3D web-приложений, но порой, опять начинает припекать создать что-нибудь.

Пишем игру для Andro > Этот урок начинает серию статей, посвященных написанию аркадных игр для Android. За основу был взят цикл, который написал и опубликовалв своем блогеTamas Jano. Материал ориентирован, прежде всего, на начинающих программистов, которые хотят попробовать свои силы в создании игр для Android. Я ставлю перед собой цель создать у нас на сайте максимально понятный и доступный учебник для молодой русскоязычной аудитории, поэтому очень надеюсь на вашу критику, вопросы и комментарии. Опубликованный в этом цикле материал будет постоянно перерабатываться с учетом ваших вопросов, пожеланий и замечаний. Надеюсь, что вместе мы сможем успешно осуществить этот небольшой эксперимент.

Идея и архитектура

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

Смоделируем игровую ситуацию. Наш персонаж находится в центре экрана. Роботы каждую 1/10 секунды приближаются к нему. каждую десятую секунду мы проверяем также не произошло ли касание экрана. Если произошло — двигаем наш персонаж в необходимом направлении или делаем выстрел. если выстрел сделан, каждый тик (1/10 секунды) мы проверяем столкновение пули с врагами. Если пуля попала в робота — то и робот и пуля взрываются, если нет — роботы и пуля перемещаются на новые позиции (робот перемещается на 5 пикселей за тик, а пуля — на 50 пикселей). Мы также проверяем не поймал ли робот нашего героя. Если поймал — игра заканчивается.

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

  1. Модуль управления. Здесь считываются координаты касания экрана.
  2. Игровой движок. Здесь мы должны обновить состояние игровых объектов, то есть вычислить их новые координаты, проверить здоровье, столкновения и тому подобное.
  3. Аудио модуль.
  4. Графический модуль. Здесь на основании текущего состояния формируется и выводится на экран новый кадр.

Давайте более детально рассмотрим наши модули.

Модуль управления

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

Игровой движок

Модуль игровой логики отвечает за изменение состояний всех игровых персонажей, под которыми я понимаю каждый объект, имеющий состояние (Наш герой, роботы, лазерные выстрелы).

Давайте рассмотрим взаимодействие модуля управления и игрового движка. На представленном выше рисунке показан круг-контроллер. Светлое зеленое пятно символизирует область касания. Модуль управления сообщает игровому движку координаты касания (dx и dy — расстояния в пикселях от центра круга). На основании этих координат игровой движок вычисляет направление и скорость движения нашего героя. Например, если dx>0, наш персонаж движется вправо, eсли dy>0 — в верх.

Аудио модуль

Этот модуль управляет проигрывание звука в зависимости от игровой ситуации. Звуки могут генерировать разные игровые объекты, но поскольку число звуковых каналов ограничено (число звуковых каналов соответствует числу звуковых файлов, которые могут быть проиграны одновременно), аудио модуль должен решать какие звуки проигрывать, а какие нет. Например, робот представляет огромную опасность для нашего героя, поэтому мы должны привлечь внимание игрока к его появлению, например включить звук сирены, и конечно, мы просто обязаны озвучивать все выстрелы нашего персонажа.

Графический модуль

Этот модуль отвечает за вывод игровой ситуации на экран телефона. В Android существует несколько способов формирования изображения на экране. Можно рисовать прямо на canvas, полученный от View или использовать отдельный графический буффер и вы, а затем передавать его View, а можно воспользоваться возможностями библиотеки OpenGL. Полезно при разработке игры постоянно измерять FPS — число кадров в секунду, которые выдает ваш графический движок. Величина в 30 FPS означает, что за одну секунду наша программа успевает 30 раз обновить экран. Забегая вперед скажу, что для мобильного устройства 30 FPS более чем достойный показатель.

Создаем проект-заготовку для будущей Andro >Я не буду здесь подробно расписывать процесс установки 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

Метод onCreate вызывается при создании activity во время запуска приложения. Этот метод можно рассматривать, как точу входа в программу. Класс R.java автоматически генерируется Eclipse и содержит в себе ссылки на ресурсы. Каждый раз, когда вы изменяете ресурсы в Eclipse класс R пересобирается.

Главный игровой цикл

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

Как вы помните, в Android все происходит внутри Activity. Activity создает View — объект, где происходит все самое интересное. Именно через него мы можем получить информацию о касаниях экрана, здесь же можно вывести картинку на экран.

Давайте откроем файл DroidzActivity.java. В конструкторе класса вы увидите строчку

эта строка выбирает текущий объект View для Activity. Давайте создадим новый объект для View. Наиболее простым способом получения View — создать собственный класс на основании SurfaceView. В нашем классе мы реализуем интерфейс SurfaceHolder.Callback, чтобы ускорить доступ к изменениям поверхности, например когда она уничтожается при изменении ориентации устройства.

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

Устанавливает текущий класс (MainGamePanel) как обработчик событий от поверхности.

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

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

Как видите, этот класс существенно проще предыдущего. Внутри мы переопределили метод run(). Поток выполняется до тех пор, пока выполняется этот метод, поэтому мы организовали внутри него бесконечный цикл. Мы добавили логическую переменную running, которая служит индикатором выхода из цикла. Теперь чтобы завершить поток, нужно просто где-то изменить значение этой переменной на false.

После того, как мы создали класс потока, его нужно запустить. Давайте запускать его при загрузке экрана. Изменим класс MainGamePanel

Мы объявили объект thread

и создали его в конструкторе

в методе surfaceCreated мы установили флаг running в значение true и запустили поток. К этому времени объект thread уже благополучно создан и можем без опасений запускать его.

Метод surfaceDestroyed вызывается перед закрытием поверхности. Здесь недостаточно просто снять флаг running. Мы должны убедиться, что поток действительно закрылся. Мы просто блокируем поток и ждем, пока он не умрет.

Добавляем взаимодействие с экраном

Чтобы показать, как в Android обработать касания, напишем небольшой пример. Будем выходить из программы, когда пользователь коснется нижней части экрана. Если касание произошло где-то выше — будем просто выводить в лог соответствующие координаты. Добавим в класс MainThread следующие строки:

тем самым мы определили переменные gamePanel и surfaceHolder, взяв соответствующие значения из параметров конструктора. Нам нужно запомнить эти значения, чтобы потом иметь возможность блокировать поверхность на время рисования, а это можно сделать только через surfaceHolder.

Измените строку в классе MainGamePanel, добабвив в конструктор вновь объявленные параметры

Мы передаем текущий обработчик и панель в новый конструктор. Это позволит нам иметь к ней доступ из потока. В gamePanel мы создадим метод update и будем переключать его из потока, но пока оставим все как есть.

Логирование

Ниже мы напишем вспомогательный код, осуществляющий логирование — запись специальных отладочных строк с текстом, отражающих состояние нашей программы, в специальный файл, который потом можно просмотреть и попытаться понять, что происходило в программе. добавим константу TAG в класс MainThread. Каждый класс будет у нас иметь собственную константу с именем TAG, которая будет содержать название соответствующего класса. Бы будем использовать Android logging framework, чтобы вести логирование, в рамках этой библиотеки каждый лог должен иметь два параметра. Первый параметр определяет место, откуда записан лог. Именно для этих целей мы и создали константу TAG. Второй параметр — собственно сообщение, которое мы хотим записать в лог. Использование имен классов в качестве первого параметра — довольно распространенная в среде java программистов практика.

Чтобы посмотреть записанные в процессе выполнения программы логи нужно выбрать меню
Windows -> Show View -> Other…
а затем в открывшемся диалоге
Android -> LogCat
В открывшемся окне можно не только просматривать логи, но и осуществлять фильтрацию и поиск.

Вернемся к нашему коду. Внесем изменения в MainThread.java

Как видите, мы определили TAG и вызвали внутри метода run команду Log, которая делает соответствующую запись в лог файле. Мы выводим в лог значение переменной tickCount, которая фактически является счетчиком игрового цикла и показывает сколько раз успел выполниться игровой цикл за время работы программы

Перейдем к файлу MainGamePanel.java и найдем метод onTouchEvent, который является обработчиком касаний экрана.

Сначала мы проверяем произошло ли событие касания экрана (MotionEvent.ACTION_DOWN). Если произошло, проверяем координату y и если она находится в нижней части экрана (50 пикселей снизу), мы посылаем потоку команду на завершение (установив переменную running в false), а затем вызываем метод finish() для главной Activity, который закрывает всю нашу программу.

Замечание. Начало системы координат у экрана находится в левом верхнем углу. Ось y направлена вниз, ось x — вправо. Ширину и высоту экрана можно получить с помощью методов getWidth() и getHeight() соответственно.

Изменим DroidzActivity.java, добавив команды записи в лог

Мы добавили строки, переводящие приложение в полноэкранный режим и добавили команды записи в лог в методах onDestroy() и onStop().

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

Просмотрев лог вы получите четкое представление о порядке запуска методов. Вы также можете увидеть сколько раз за время работы программы успел выполниться игровой цикл. Эта цифра ни о чем не говорит, в следующий раз мы выведем в лог более полезную информацию: FPS и UPS (обновлений в секунду).

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

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

Перевод и адаптация:Александр Ледков
Источник: Andro >

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих