Как создать свою игру на телефоне бесплатно в домашних условиях
Как создать свою игру на телефоне бесплатно в домашних условиях
Программа для создания игр на Android: скачать
Автор: Юрий Белоусов · 21.01.2020
Программы для создания игр на Android — скачать движки для разработки игр
Создание игр для мобильных устройств может быть не только интересным, но и весьма прибыльным занятием, которое способно обеспечить весьма ощутимый заработок для разработчика. У человека, интересующегося темой создания игр на Android в голове возникает множество вопросов и еще больше — сомнений в своих силах, ведь, для разработки игр нужны определенные знания, навыки и умения: в первую очередь, нужно знать языки программирования.
Из-за своих опасений и сомнений, люди чаще всего отказываются от реализации своих идей, а зря, ведь создание игр на Android не обязательно должно быть сложным. В современном мире множество процессов автоматизируется, чтобы облегчить жизнь человеку. Для примера, этот сайт создан с помощью системы управления содержимым, а если проще – то с помощью программы-конструктора. И для его запуска в работу не потребовались знания HTML, CSS, JS и PHP.
Для разработки игр также есть специализированные движки, которые помогут упростить множество задач. И в этой статье мы рассмотрим лучшие программы для создания игр на Android.
Движки для создания игр на Android
Лучшие движки для создания игр на Android
Unity 3D – программа для создания игр и приложений
Unity 3D – межплатформенная среда разработки компьютерных игр. Программа позволяет создавать игры и приложения под множество платформ: компьютеры, игровые консоли, мобильные устройства, а также под более чем 20 популярных операционных систем: Android, Windows, Mac OS, IOS и др. Визуальная среда разработки, модульная система компонентов и межплатформенная поддержка делает создание игр простым и удобным.
В Unity 3D доступен большой набор инструментов, с помощью которых можно создавать свои собственные игры любых жанров: шутеры, экшены, RPG, гонки, стратегии, симуляторы и др.
На Unity 3D созданы тысячи игр и приложений. Она пользуется огромное популярностью среди разработчиков. В качестве примера того, какие игры можно создать для Android с помощью Unity 3D, можно привести Dead Trigger и Tyrant Unleashed.
Если планируете постигать азы игростроения, то стоит сделать свой выбор именно в пользу Unity 3D. Эта программа идеально подходит для создания игр на Android.
Некоторые разработчики выкладывают в открытый доступ библиотеки и наборы инструментов для Unity, так что пользователь может абсолютно бесплатно получить доступ к полезному контенту: моделям персонажей, ландшафтам, текстурам, звукам и прочему.
Скачать программу для создания игр на Android можно по ссылке:
Game Maker – программа для создания игр
Game Maker – движок для создания игр на Android и других OS, который будет крайне полезен новичкам, постигающим игростроение с нуля, так как поможет разобраться с основами, которые в дальнейшем пригодятся при работе в сфере разработки игр.
Game Maker представляет из себя визуальный конструктор игр, где разработчик конструирует события и реакции в редакторе, а не с помощью языков программирования. То есть можно создать полноценную игру для Android без знания языка программирования. Но и возможность добавления кода также присутствует, что делает данный движок гибким, а значит он подойдет и для более продвинутых пользователей.
Game Maker отлично подходит для создания пиксельных 2D игр на Android.
Скачать программу для создания игр на Android на русском языке можно по ссылке:
Unreal Engine 4 — программа для создания игр
Unreal Engine 4 – мощная бесплатная платформа для создания 3D и 2D игр. Отлично подходит как для разработки игр на ПК, так и для мобильных устройств: телефонов, планшетов под управлением Android и IOS. Имеет локализацию на русском языке.
На основе предыдущей версии движка — Unreal Engine 3 были созданы такие игры, как: Batman: Arkham City, Mass Effect, Mortal Kombat.
Видео-обзор основных возможностей:
Скачать программу для создания игр на Android на русском языке можно по ссылке:
Как самому создать игру на Android с нуля
Мы рассмотрели краткий обзор программ, в которых можно создать игры на Android, но где же взять знания для комфортного использования данного софта?
Конечно же на популярном видеохостинге Youtube!
Курсы по Unity 3D | Курсы по Game Maker | Курсы по Unreal Engine 4 |
---|---|---|
Уроки Unity3D №1 Уроки Unity3D №2 | Уроки Game Maker №1 Уроки Game Maker №2 | Уроки Unreal Engine 4 №1 Уроки Unreal Engine 4 №2 |
Приложения для создания игр на Android
В предыдущей части статьи мы рассмотрели мощные инструменты для разработки игр. А теперь разберем несколько интересных приложений для создания простых игр на Android.
Struckd 3D – трехмерный игровой конструктор с функцией drag-and-drop, с помощью которого можно создавать целые миры без знаний программирования.
Нарисуй Свою Игру – интересное Андроид приложение, которое позволяет сканировать нарисованные на бумаге чертеж и превращать его в игру.
Не нашли ответ? Тогда воспользуйтесь формой поиска:
Как сделать приложение или игру для андроид
«Как бы мне хотелось самому создать игру для Андроида!». Кому из нас это не приходило однажды в голову? Создать своё собственное приложение или игру на андроид без знаний программирования — Реально! Достаточно скачать программу или воспользоваться онлайн-сервисом (конструктором) приложений. Конструкторы бывают платные и бесплатные, а так же с возможностью заработка на рекламе, которая будет показываться в ваших приложениях.
Приложения для создания игр
Самый простой и доступный способ — это скачать приложение для создания игр в Гугл Плей, да, игра получится простенькая, но нужно же с чего-то начинать.
1. Draw Your Game (Нарисуй Свою Игру)
Удобная программа, которая предоставляет всем и каждому возможность в несколько простых шагов создать свою собственную видеоигру.
2. Apper (Создай свою программу)
С помощью Apper вы сможете создавать и публиковать свои собственные приложения 5 простых шагов. Программа очень простая в использовании и не требует знаний программирования.
Приложение является бесплатным, но для публикации своего проекта в App Store или Google Play, вам необходимо приобрести платную подписку. Для полноценной работы рекомендуется минимум 1 ГБ оперативной памяти и возможностью загрузки изображений через WiFi.
3. AIDE- IDE for Android Java C++
Является интегрированной средой разработки (IDE) для создания реальных приложений для Android прямо на вашем Android устройстве. Следуйте урокам, чтобы стать экспертом и применять эти навыки в своих собственных приложениях.
4. Epic Game Maker
Уникальный 2D платформер и песочница с редактором уровней. С помощью данной игры вы сможете создавать свои увлекательные игры за считанные минуты, делиться ими с друзьями и прославиться. Без навыков программирования, всё что нужно — это лишь ваше воображение. Создавайте уровни и делитесь своими творениями с другими игроками.
5. STRUCKD — 3D Конструктор Игр
Объединяет в себе игровое сообщество и продвинутую площадку, в которой можно создавать уникальный 3D мир и обмениваться своими творениями с другими людьми. На выбор доступны жанры, начиная от гоночных игр и заканчивая Tower Defense и Action Puzzlers.
6. Sketch Nation Create
Ещё одна неплохая платформа для создания онлайн игр. Теперь вы можете делать настоящие многопользовательские игры в режиме реального времени и играть в них со своими друзьями. Приложение позволяет создавать от самых простых, до более продвинутых игр, используя различные жанры, благодаря чему сервис подойдёт не только для детей, но и студентов, и даже педагогам.
Онлайн конструкторы игр и приложений
Если вы решили попробовать более серьёзную платформу для создания игр и приложений, с дальней публикацией в Google Play и AppStore, то рекомендуем попробовать любой, из представленных ниже, онлайн конструктор для пк.
Список лучших онлайн-сервисов, в которых можно создавать игры и приложения для мобильных устройств:
А каким способом удалось создать своё приложение вам? Поделитесь своим мнением, оставив комментарий внизу страницы, возможно ваше сообщение окажется полезным и поможет определиться с выбором другим пользователям.
Туториал: Создание простейшей 2D игры на андроид
Этот туториал предназначен в первую очередь для новичков в разработке под андроид, но может быть будет полезен и более опытным разработчикам. Тут рассказано как создать простейшую 2D игру на анроиде без использования каких-либо игровых движков. Для этого я использовал Android Studio, но можно использовать любую другую соответствующее настроенную среду разработки.
Шаг 1. Придумываем идею игры
Для примера возьмём довольно простую идею:
Внизу экрана — космический корабль. Он может двигаться влево и вправо по нажатию соответствующих кнопок. Сверху вертикально вниз движутся астероиды. Они появляются по всей ширине экрана и двигаются с разной скоростью. Корабль должен уворачиваться от метеоритов как можно дольше. Если метеорит попадает в него — игра окончена.
Шаг 2. Создаём проект
В Android Studio в верхнем меню выбираем File → New → New Project.
Тут вводим название приложения, домен и путь. Нажимаем Next.
Тут можно ввести версию андроид. Также можно выбрать андроид часы и телевизор. Но я не уверен что наше приложение на всём этом будет работать. Так что лучше введите всё как на скриншоте. Нажимаем Next.
Тут обязательно выбираем Empty Activity. И жмём Next.
Тут оставляем всё как есть и жмём Finish. Итак проект создан. Переходим ко третьему шагу.
Шаг 3. Добавляем картинки
Скачиваем архив с картинками и распаковываем его.
Находим папку drawable и копируем туда картинки.
Позже они нам понадобятся.
Шаг 4. Создаём layout
Находим activity_main.xml, открываем вкладку Text и вставляем туда это:
На вкладке Design видно как наш layout будет выглядеть.
Сверху поле в котором будет сама игра, а снизу кнопки управления Left и Right. Про layout можно написать отдельную статью, и не одну. Я не буду на этом подробно останавливаться. Про это можно почитать тут.
Шаг 5. Редактируем MainActivity класс
В первую очередь в определение класса добавляем implements View.OnTouchListener. Определение класса теперь будет таким:
Добавим в класс нужные нам статические переменные (переменные класса):
В процедуру protected void onCreate(Bundle savedInstanceState) <
добавляем строки:
Классы LinearLayout, Button и т.д. подсвечены красным потому что ещё не добавлены в Import.
Чтобы добавить в Import и убрать красную подсветку нужно для каждого нажать Alt+Enter.
GameView будет подсвечено красным потому-что этого класса ещё нет. Мы создадим его позже.
Теперь добавляем процедуру:
Если кто-то запутался ― вот так в результате должен выглядеть MainActivity класс:
Итак, класс MainActivity готов! В нём инициирован ещё не созданный класс GameView. И когда нажата левая кнопка — статическая переменная isLeftPressed = true, а когда правая — isRightPressed = true. Это в общем то и всё что он делает.
Для начала сделаем чтобы на экране отображался космический корабль, и чтобы он двигался по нажатию управляющих кнопок. Астероиды оставим на потом.
Шаг 6. Создаём класс GameView
Теперь наконец-то создадим тот самый недостающий класс GameView. Итак приступим. В определение класса добавим extends SurfaceView implements Runnable. Мобильные устройства имею разные разрешения экрана. Это может быть старенький маленький телефон с разрешением 480×800, или большой планшет 1800×2560. Для того чтобы игра выглядела на всех устройствах одинаково я поделил экран на 20 частей по горизонтали и 28 по вертикали. Полученную единицу измерения я назвал юнит. Можно выбрать и другие числа. Главное чтобы отношение между ними примерно сохранялось, иначе изображение будет вытянутым или сжатым.
unitW и unitW мы вычислим позже. Также нам понадобятся и другие переменные:
Конструктор будет таким:
Метод run() будет содержать бесконечный цикл. В начале цикла выполняется метод update()
который будет вычислять новые координаты корабля. Потом метод draw() рисует корабль на экране. И в конце метод control() сделает паузу на 17 миллисекунд. Через 17 миллисекунд run() запустится снова. И так до пока переменная gameRunning == true. Вот эти методы:
Обратите внимание на инициализацию при первом запуске. Там мы вычисляем количество пикселей в юните и добавляем корабль. Корабль мы ещё не создали. Но прежде мы создадим его родительский класс.
Шаг 7. Создаём класс SpaceBody
Он будет родительским для класса Ship (космический корабль) и Asteroid (астероид). В нём будут содержаться все переменные и методы общие для этих двух классов. Добавляем переменные:
Шаг 8. Создаём класс Ship
Теперь создадим класс Ship (космический корабль). Он наследует класс SpaceBody поэтому в определение класа добавим extends SpaceBody.
и переопределим метод update()
На этом космический корабль готов! Всё компилируем и запускаем. На экране должен появиться космический корабль. При нажатии на кнопки он должен двигаться вправо и влево. Теперь добавляем сыплющиеся сверху астероиды. При столкновении с кораблём игра заканчивается.
Шаг 9. Создаём класс Asteroid
Добавим класс Asteroid (астероид). Он тоже наследует класс SpaceBody поэтому в определение класса добавим extends SpaceBody.
Добавим нужные нам переменные:
Астероид должен появляться в случайной точке вверху экрана и лететь вниз с случайной скоростью. Для этого x и speed задаются при помощи генератора случайных чисел в его конструкторе.
Астероид должен двигаться с определённой скорость вертикально вниз. Поэтому в методе update() прибавляем к координате x скорость.
Так же нам нужен будет метод определяющий столкнулся ли астероид с кораблём.
Рассмотрим его поподробнее. Для простоты считаем корабль и астероид квадратами. Тут я пошёл от противного. То есть определяю когда квадраты НЕ пересекаются.
((x+size) (shipX+shipSize)) — корабль справа от астероида.
((y+size) (shipY+shipSize)) — корабль снизу астероида.
Между этими четырьмя выражениями стоит || (или). То есть если хоть одно выражение правдиво (а это значит что квадраты НЕ пересекаются) — результирующие тоже правдиво.
Всё это выражение я инвертирую знаком!. В результате метод возвращает true когда квадраты пересекаются. Что нам и надо.
Про определение пересечения более сложных фигур можно почитать тут.
Шаг 10. Добавляем астероиды в GameView
В GameView добавляем переменные:
также добавляем 2 метода:
И в методе run() добавляем вызовы этих методов перед вызовоом control().
Далее в методе update() добавляем цикл который перебирает все астероиды и вызывает у них метод update().
Такой же цикл добавляем и в метод draw().
Вот и всё! Простейшая 2D игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.
На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.
Опыт создания игры для Android в одиночку с нуля и как ее зафичерили на Google Play
Сужать круг поиска, чем именно заниматься, было тяжело. Знакомых в этой области не было, поэтому решил отталкиваться от каких-то общих соображений. Так как в приоритете было в первую очередь найти что-то интересное, выбор пал на геймдев. Понравилась идея для начала сделать простенькую 2D-игру под Android и выложить на Google Play.
Немного уделив времени теории (алгоритмам, структурам данных и проектированию), для дальнейшего изучения я выбрал язык Java, который по сути является официальным языком Android, да и в целом очень популярен. В качестве фреймворка приглянулся LibGDX, бесплатный, разработка на нем ведется как раз на Java, и вдобавок он кроссплатформенный. Хотя для следующей игры планирую осваивать всем известный Unity.
Стоит заметить, что из теории самым полезным для меня было изучение шаблонов проектирования в ООП. Применение этих шаблонов мне очень часто помогало на практике, и к книжкам по проектированию я возвращался много раз. Когда ты изначально выстраиваешь правильную структуру кода, грамотно организуешь взаимодействие объектов, это очень упрощает процесс добавления нового функционала в код или его исправление, работать становится намного удобнее.
После создания нескольких пробных игр я взялся за игру, которую в конечном итоге и опубликовал на Google Play. Это казуальная геометрическая аркада, где главная цель — уворачивание от препятствий.
Я не буду здесь описывать здесь процесс создания игры. Если у кого-то есть вопросы, могу ответить в комментариях, или возможно напишу об этом отдельную статью.
Скажу лишь, что сильно затянул процесс разработки, уделял много внимания вещам, которые того не стоили. Пожалуй, наступил на все возможные грабли, на которые обычно наступают новички. Создание игры заняло около года, если не учитывать перерывы и обучение программированию. Все кроме музыки делал сам. С музыкой мне очень помог хороший знакомый.
Говорят, что продвижение игры надо начинать заниматься задолго до релиза. Этого я, конечно, не делал. Продвигать начал сразу после релиза игры. Сделал простенький сайт, трейлер игры, разослал запросы на обзор в кучу разных ресурсов, в том числе англоязычных (ответов получил очень мало, и в основном просили оплату), обновлял соцсети. Из платных методов: купил обзор на 4pda по программе поддержки разработчиков и попробовал рекламные кампании на Facebook и Adwords.
В итоге ни платные, ни бесплатные методы продвижения не принесли мне желаемого эффекта и я практически прекратил попытки. Количество скачиваний игры в день после этого опустилось до 10-40 и игра почти не подавала признаков жизни. Однако мне повезло, и неожиданно для меня Google Play зафичерил меня в разделе Indie Corner. Это не очень популярный раздел по меркам Google Play, но тем не менее количество скачиваний только благодаря ему сильно выросло и в отдельные дни достигало более 2000.
Думаю вместо слов, вам будет больше интересно увидеть статистику. Это данные спустя 2 месяца после релиза и 2 недели после начала фичеринга:
Активные установки / Всего установок: 8400 / 37000
Рейтинг на Google Play: 4.2 (148)
DAU/MAU: 3400 / 33000 (количество уникальных юзеров в день / в месяц)
Среднее время игры в день на юзера: 8m 31s
Среднее количество сессий в день на юзера: 1.6
Юзеров без критических ошибок: 99.6%
Таким образом, я получил возможность сравнить аудиторию, привлеченную через Adwords, и органику. Интересно, что между ними есть существенная разница. “Органический” юзер намного чаще оставляет отзыв, чаще делает покупки (все равно очень редко, но ни один юзер из Adwords до этого не делал покупок), и у него дольше игровые сессии. Хотя, к сожалению, удержание у него значительно хуже (удержание на первый день 25% у органики против 38% у юзеров с Adwords).
Подводя итоги, скажу, что игра до сих пор в небольшом минусе. Но ожиданий от первой игры особых и не было, а опыт получил ценный и интересный.
Если мой рассказ получился сумбурным, задавайте вопросы, уточню, что смогу.
Способы создания игры на Android
Для операционной системы Android выпускается большое количество игр практически каждый день. Их производством занимаются не только крупные компании. Сложности проектов бывают разные, поэтому для их создания требуются специальные навыки и наличие дополнительного программного обеспечения. Самостоятельно работать над приложением можно, однако следует приложить большие усилия и изучить определенные материалы.
Создаем игру на Android
Всего мы выделили три доступных метода, которые подойдут обычному пользователю для создания игры. Они имеют разный уровень сложности, поэтому сначала мы расскажем о самом простом, а в конце затронем трудный, однако наиболее обширный способ, позволяющий разрабатывать приложения любого жанра и масштабности.
Способ 1: Онлайн-сервисы
На просторах интернета находится множество вспомогательных сервисов, где присутствуют заранее созданные шаблоны игр по жанрам. Пользователю же нужно только добавить изображения, настроить персонажей, мир и дополнительные опции. Осуществляется такой метод без каких-либо знаний в области разработки и программирования. Давайте разберем процесс на примере сайта AppsGeyser:
На этом процесс создания завершен. Игра доступна к скачиванию и работает корректно, если все изображения и дополнительные опции были заданы верно. Делитесь ею с друзьями через Плей Маркет или отправляйте в виде файла.
Способ 2: Программы для создания игр
Существует ряд программ, позволяющий создавать игры с помощью встроенных инструментов и применения скриптов, написанных на поддерживаемых языках программирования. Конечно, качественное приложение получится только в том случае, если все элементы были тщательно проработаны, а для этого потребуется навык написания кодов. Однако в интернете находится большое количество полезных шаблонов — примените их и вам останется только отредактировать некоторые параметры. Со списком такого софта знакомьтесь в другой нашей статье.
Мы же рассмотрим принцип создания проекта в Unity:
Разработчики Юнити позаботились о том, чтобы новым пользователям было легче перейти к использованию их продукта, поэтому создали специальное руководство. В нем подробно расписано все о создании скриптов, подготовке компонентов, работе с физикой, графикой. Читайте данный мануал по ссылке ниже, а потом, используя полученные знания и навыки, переходите к созданию своей игры. Начинать лучше с простого проекта, постепенно осваивая новые функции.
Способ 3: Среда разработки
Теперь давайте рассмотрим последний, самый сложный метод – использование языка программирования и среды разработки. Если предыдущие два способа позволяли обойтись без знаний в области кодинга, то здесь вам обязательно потребуется владеть Java, C# или, например, Python. Присутствует еще целый список языков программирования, которые нормально работают с операционной системой Android, однако официальным и наиболее популярным считается Java. Чтобы написать игру с нуля вам сначала нужно выучить синтаксис и ознакомиться с основными принципами создания кода на выбранном языке. В этом помогут специальные сервисы, например, GeekBrains.
На сайте присутствует большое количество бесплатных материалов, ориентированных на разных пользователей. Знакомьтесь с данным ресурсом по ссылке ниже.
Кроме всего, если ваш выбор на Java, а вы никогда раньше не работали с языками программирования, рекомендуем ознакомиться с JavaRush. Уроки там проходят в более развлекательном стиле и больше подходят для детей, однако при нулевом багаже знаний сайт будет полезен и взрослым.
Само программирование происходит в среде разработки. Наиболее популярной Integrated Development Environment для рассматриваемой операционной системы считается Android Studio. Ее можно загрузить с официального сайта и сразу же приступить к использованию.
Существует еще несколько распространенных сред разработки, которые поддерживают разные языки. Знакомьтесь с ними по ссылке ниже.
В этой статье была затронута тема самостоятельной разработки игр под операционную систему Android. Как видите, дело это достаточно сложное, однако существуют методы, значительно упрощающие работу с проектом, поскольку там задействуются готовые шаблоны и заготовки. Ознакомьтесь со способами, приведенными выше, выберите тот, который будет наиболее подходящим, и пробуйте свои силы в создании приложений.
Как создать игру на Андроид с нуля
Наверняка любой пользователь смартфонов под управлением Андроид задумывался о создании собственной игры с уникальным и увлекательным сюжетом. Однако останавливался на уровне идеи из-за отсутствия опыта в программировании и разработке сюжетов, а также значительной конкуренции со стороны крупных корпораций, на которые работают целые команды гейм-девелоперов. Существует огромное количество способов написания игр на различных движках и с использованием сред разработки. Как грамотно подойти к решению данного вопроса и начать создание игры с нуля?
Выбираем способ разработки
Создать свою игру могут не только опытные программисты, но и обычные пользователи ПК. Все зависит от знаний и навыков, а также упорства в достижении цели. В соответствии с этими критериями и нужно выбирать один из следующих способов для разработки игр на мобильном телефоне:
То есть проблем с тем, как сделать игру на Андроид никаких возникнуть не должно, поскольку есть инструменты для всех желающих с разным уровнем знаний и опыта.
Что потребуется для создания игры?
Перед тем как создать игру на Андроид необходимо продумать следующий ряд вопросов:
Создавать с нуля игру не просто, но достигнутый результат сможет вас порадовать.
Выбираем жанр
Перед тем как сделать игру, нужно подобрать для нее жанр из следующего списка наиболее популярных вариантов:
Также доступно создание игр и других жанров, но не стоит забывать, что устройства под управлением Андроид имеют не большие экраны и, например, в классические стратегии играть будет не слишком комфортно.
Выбираем движок
Прежде чем создать игру на Андроид необходимо подобрать движок, на котором она будет разрабатываться:
Нужно оценить свои силы и возможности в решении поставленной задачи и сразу же выбрать подходящий под конкретные требования движок. Возможно, что в одном из них уже есть наработки, которые можно эффективно применить в новом проекте. Этот момент не стоит упускать из виду, то есть выгоднее заблаговременно потратить время на изучение возможностей движков, чем потом все переделывать заново.
Этапы разработки
Создание игр выполняется в несколько этапов:
Стоит отметить тот факт, что для заработка на проекте требуется его постоянно развивать и совершенствовать.
Заключение
Сфера гейм девелопмента для Андроид является одним из самых популярных направлений в программировании. Поэтому стоит попробовать свои силы в создании уникального игрового проекта.
Разработка HTML5 игры под Android с нуля и до релиза
Вместо вступления
Потратив несколько суток подряд (без перерыва на сон) на изучение поддержки HTML5 всеми любимыми Android-гаджетами, решил, что данной теме стоит уделить внимание. В статье постараюсь раскрыть по шагам все этапы (конечно же базовые/ключевые/основные) создания HTML5 Игрового приложения для Android от идеи до релиза самого APK файла. Возможно, ничего нового я и не открою маститым разработчикам, но для новичков постараюсь описать все как можно проще, со скриншотами и пояснениями.
Желающих узнать подробнее приглашаю под кат.
Вообще много можно говорить о потенциале Android, о развитии HTML5 и об их взаимодействии. Я этого делать не буду. Так что, сразу к делу.
Идея создания игры под Android наверняка заседает в разумах десятков сотен разработчиков, и тех, кто себя таковыми считает. Я не исключение.
Весь процесс будет разбит на несколько шагов а итоговое приложение будет состоять из двух частей:
— Обертка (в данном случае для Android)
— Игра
Шаг 1. Написание самой игры
Еще одним плюсом написания игры на HTML5 является тот факт, что для тестирования не требуется куча запущенных программ, IDE, эмуляторов и так далее. Нужен лишь браузер (в моем случае это Chromium) и текстовый редактор (BlueFish)
Игра будет несложной: есть синий прямоугольник и есть зеленый прямоугольник. Задача игрока — перетащить синий прямоугольник на зеленый в обход красного, который перемещается по игровому полю в произвольном направлении.
Для разработки игры буду использовать J2ds (игровой движок).
На качество кода игры внимания можно не обращать, ибо не это цель статьи. Хотя конечно, можно оптимизировать сколько угодно, этот процесс вообще наверное бесконечен.
Шаг 2. Android Studio. Создание обертки для игры
Я не собираюсь ни с кем мериться крутостью той или иной IDE для разработки под Android, а покажу на примере Android Studio. Для работы нам потребуется:
— Java машина (под мою Linux подходит OpenJDK);
— Дистрибутив Android Studio.
Как только все установите (Этих двух программ достаточно), запускайте Android Studio.
Откроется стартовое окно (если первый запуск), если не первый — то откроется сама IDE, но сути не меняет, пройдем в SDK Manager:
Тут нужно галочками отметить необходимые вам версии Android, с которыми вы будете работать, в моем случае это Android 4.4.2, вы можете выбрать хоть все сразу.
Главное — выберете обязательно «Tools» и «Extras» и нажимайте «install packages».
Как только у вас все скачалось, запустится IDE с унылым серым фоном и несколькими кнопками, жмем первую и создаем новый проект. Если IDE запустилась сразу в рабочем состоянии, то: «File->New->New Project»
Заполняем необходимые поля, и жмем Next
Выбираем нужную версию андроида и Next
Тут выбираем Blank Activity (пустой шаблон с Hello, World!)
В следующем окне заполняем данные для создания классов, я менять не буду для наглядности:
Торжественно жмем Finich и ждем, пока IDE все сконфигурирует и подготовит для работы.
Откроется окно с дизайнером форм. Оно не такое, как в Lazarus, Delphi, но что-то схожее все равно имеется:
Не спешите ничего менять или что-то щелкать, настройка еще не окончена. Открываем «Tolls->Android->AVD Manager» для настройки эмулятора.
Тут, если ничего нет, жмем «Create Virtual Device», если есть, можете не создавать новый, у меня уже был, т.к. я «натыкал» его, пока разбирался. Если же вам нужно создать новый эмулятор, то там все просто:
1. Выбираем размер экрана и модель телефона
2. Выбираем версию андроида (у меня 4.4.2)
3. Настраиваем устройство.
На третьем шаге подробнее:
Т.К. игра у нас вытянута по горизонтали, выбрать нужно ландшафтный режим.
Когда все настройки введены, жмем на зеленый треугольник и запускаем эмулятор. После запуска ждем, когда устройство полностью загрузится и запустится ОС:
Это окно не закрывайте, в нем будет происходить эмуляция. Теперь можно вернуться в редактор, и изменить ориентацию в дизайнере форм:
Можно запускать! Вот теперь точно можно.
Если появится запрос на выбор эмулятора — то можно поставить галочку внизу:
Мои поздравления! Все работает, проверено!
Сворачиваем наш эмулятор (Но не закрываем!) и переходим в редактор, Там все немного сложнее (чуть-чуть).
Переключиться нужно в режим «Text». У вас в activity_main описаны все элементы, которые есть на форме. Включая саму форму. Да и не форма это вовсе.
Т.к. мы делаем игру в HTML5, а тут у нас только обертка для игры, удаляем весь текст и вставляем следующее:
Теперь, если опять переключиться на дизайн, то выглядеть будет иначе:
Как видно, теперь вместо «Hello, World» во всю красуется растянутый на весь экран — WebView. Этот объект и является нашим «окном» в игровой мир.
Можете запустить даже, посмотреть, будет белый экран. Идем дальше.
А дальше нам нужно перейти в наш проект, для этого слева открываем поле «Project» и выбираем вкладку «Android», если не выбрана:
В этой вкладке представлена структура проекта и все его внутренние файлы и ресурсы.
Пришло время поработать над функционалом нашего «браузера», ведь это именно он! Открываем класс «MainActivity.java» и удаляем все лишнее, оставив только основное:
Если не забыли, мы в файле activity_main добавили WebView, обратите внимание на выделенную жирным строчку:
Нам нужно объявить объект класса WebView.
Для этого к списку импортов дописываем:
А затем объявляем наш объект myWeb внутри класса MainActivity:
Теперь, после строчки setContentView(R.layout.activity_main); вставляем следующий код:
Вот что получилось у меня в редакторе:
А вот, что в эмуляторе:
Если у вас так же — мы на верном пути!
Осталось дело за небольшим:
Там, где мы подгружаем страницу нашему браузеру, путь к файлу выглядит так: «file:///android_asset/index.html»
Следует учесть, что любые файлы мы можем хранить внутри нашей игры, имея к ним доступ.
Дальше все совсем просто — копируем нашу игру в папку assets:
Файл index.html — это тот самый index из начала этой статьи. Ну что, пробуем запустить!
Небольшой совет: тестировать лучше всего на реальном устройстве посредством USB, так результаты теста будут нагляднее, да и управлять мышью не самый удобный вариант, не говоря уже о множественном нажатии.
Шаг 3. Android Studio. Сборка приложения и его подписывание
Когда игра вами полностью отлажена (в браузере или на эмуляторе), обертка полностью готова и все этапы разработки позади, можно собирать приложение. Android Studio позволяет собирать приложения и подписывать их вашими ключами.
Для создания ключей в этой IDE есть специальная утилита «KeyTool».
Если ранее ключей и алиасов вы не создавали, нажимайте «Create New». Заполнить поля можете на свое усмотрение, достоверность данных целиком лежит на вас.
Первое поле — это путь к папке, в которую будет сохранен ключ. Форма после нажатия Ok заполнится автоматически:
Для последующих приложений создавать новые ключи не обязательно, вы можете подписывать вашим ключем и другие приложения, именно для этого и есть кнопка «Choose Existing».
На следующем шаге IDE попросит у вас еще раз ввести пароль, а затем указать папку для сохранения APK файла.
Теперь можете расслабиться и попить, к примеру, кофе.Система начала компиляцию, результат в статусбаре:
После того, как компиляция завершится, система вам об этом сообщит.
Теперь достаточно переместить файл на телефон / планшет и установить, как обычное приложение.
Как сделать мобильную RPG игру в одиночку, без программирования и бюджета
Хочу поведать вам свою историю, как мне удалось сделать мобильную RPG игру в одиночку, без программирования и бюджета. Это был непростой путь, длинной в целых 2 года. Но чтобы вы лучше понимали всю историю расскажу для начала с чего всё начиналось.
Я фанат мобильных игр. Возможно кто помнит, лет десять-пятнадцать назад у всех были кнопочные мобильные телефоны, в которых можно было загружать java приложения. Это могли быть как простенькие аркады, так и вполне серьёзные RPG и стратегические игры. Каждая такая серьёзная игра не переставляла удивлять глубиной и разнообразием. И как только разработчикам удавалось вопреки всем аппаратным и программным ограничениям делать настолько глубокие шедевры?!
Это были игры, в которых ещё не было никакого free-to-play. Каждая новая игра была открытием. Чувствовалось, что разработчики вкладывали душу в свои проекты. И делали свою работу максимально качественной, чтобы игроки покупали их игры снова и снова. С большими надеждами я ждал то время, когда производительность мобильных устройств возрастёт, а вместе с ней увеличится и масштаб игр.
И первое время так и было. Помните первые крупные мобильные игры, которые появлялись на новых смартфонах? Galaxy on Fire 2, серия Asphalt, Modern Combat. Удивительно, но все эти игры являются портами одноименных java-хитов. Время шло вперёд, стали появляться всё более и более мощные устройства. Увеличивались размеры экранов. И вроде бы вот она, золотая эпоха мобильных игр, когда полёт творческой мысли создателей уже больше ничем не ограничен.
Но, к сожалению, с каждым годом игры всё больше и больше переставали быть местом для творчества. Теперь это крупный бизнес, в котором крутятся большие деньги. Больше никаких новых идей, только копирование друг друга. Мне, как ценителю стратегий и RPG стало больно смотреть во что превратились современные игры. Теперь, стратегиями называют всякого рода фермы, которые клонируют геймплей либо Clash of Clans, либо Game of War. На игроков многие разработчики смотрят лишь как на кошелёк с деньгами, который нужно регулярно трясти, чтобы получить больше денег.
Меня, как истинного фаната тех самых java-игр (с их сложным и глубоким геймплеем), такая ситуация не устраивала в корне. И я уверен, не только меня одного. Прошу прощение за такое длинное предисловие, но это просто необходимо для того, чтобы вы лучше понимали, с какими мыслями и какими идеями я руководствовался при создании своей мобильной игры.
Итак, что у меня было: отсутствие знаний программирования, бюджета на разработку и наличие подлинного желание сделать хорошую игру. Потому, всё (кроме бесплатных звуков и иконок) пришлось делать самостоятельно, что называется ручками. А всё что делал не сам было взято из бесплатных ассетов. Ну, как гласит известная мудрость «мы там, где мы есть, с тем что у нас есть и делаем с этим то, что можем делать». И мы либо делаем что-то с тем, что имеем либо не делаем вообще ничего.
Идея замечательная, но как и в любой другой современной мобильной стратегии, здесь был очень сильный донат. За деньги другие игроки могли покупать более крутые корабли и лучше прокачивать любые характеристики. Тактика и стратегия уступала месту тугому кошельку. Играя без доната (или с относительно небольшим донатом) прокачка вашего аккаунта напрямую зависела от влияния рандома. Вам может повезёт и вы получите из ящика заветный корабль. А может и не получите. За N-сумму денег вы получаете корабль гарантированно. И так практически с каждым аспектом игры.
Потому я решил взять за основу боевую механику из Galaxy Legend, где-то её упростить, а где-то сделать более сложной и продуманной. Упор я решил сделать в разнообразии способов прокачки. Вы сражаетесь, зарабатываете ресурсы, вкладываете их в прокачку нужного вам билда и сражаетесь дальше, имея более лучший корабль и более сложных и интересных соперников.
Бои автоматические, и проходят пошагово, по специальным правилам. Сначала ходит (атакует) один корабль, затем другой. По ходу боя у кораблей заряжаются аккумуляторы. Когда аккумулятор будет полностью заряжен, корабль атакует супер-атакой и активирует умение. При этом, в каждой атаке рассчитывается вероятность попадания, шанса крита, блока (и т.д.).
Основная фишка моей игры заключается в нелинейной прокачке вашего космического корабля. Так, например, прокачка супероружия увеличивает урон супер-атак, шанс крита, но ухудшает меткость. И как бы вы не прокачивали свой корабль, его набор характеристик (а вместе с ними и поведение в бою) будет уникальным. Помимо характеристик, каждый корабль обладает умением, которое активируется при супер-атаке и может повернуть ход боя в вашу пользу.
Таким образом, любой ваш корабль обладает своим собственным набором преимуществ и недостатков. Точно также, как и корабли противника. Это своего рода головоломка, которую игроку необходимо решить. И против каждого серьёзного врага необходимо корректировать свою тактику: выбрать другое умение, переназначить должности членам экипажа, установить другой набор энергитических кристаллов и т.д.
Конечно, такой геймплей нравится не всем. Скорость реакции и рефлексы здесь абсолютно ничего не стоят. Мало кто любит напрягать своё серое вещество в голове и уж тем более делать это в играх. Для успешной игры нужно держать в уме параметры вашего корабля и вражеского, прогнозировать ход боя, оценивать возможности. Со временем, одного взгляда на характеристики вам уже будет достаточно, чтобы мысленно визуализировать бой, строить в голове сложные интеллектуальные модели и принимать соответствующие решения по прокачке.
Также, я решил в качестве эксперимента добавить режим кликера, в котором можно добыть основные ресурсы, использующиеся для прокачки корабля (некоторые ресурсы добываются только в бою). Сперва нужно добыть энергию, а уже за энергию добываем кредиты и техн. очки. Максимальный запас ресурсов ограничен, но его можно увеличивать (за те же ресурсы), как можно и увеличивать скорость добычи. Это было сделано в первую очередь для того, чтобы сражения не превращались в гринд ресурсов.
Бои происходят не так часто, но при этом, они имеют для игрока куда бОльшую ценность. Как правило, в мобильных играх эту задачу решают таймерами, ограничивающими доступ к более позднему контенту игры. При этом, эти же таймеры являются средство монетизации. Поскольку я решил делать игру без доната (любых внутриигровых покупок), то решил избавиться и от таймеров. Игрок должен проводить в игре ровно столько времени, сколько он сам посчитает нужным.
После недолгих поисков движков, позволяющих делать игры без программирования, выбор пал на Construct 2. Принцип его работы в том, что у нас есть сцена (где мы расставляем объекты), есть сами объекты и есть лист событий, в котором мы вручную прописываем события (состоящие из условий и действий), т.е. взаимодействие объектов друг с другом. События можно объединять в группы, можно делать подсобытия с дополнительными условиями. Объектам можно задавать свойства, поведение, переменные и т.д. По-сути, можно реализовать абсолютно любую игровую механику (в рамках 2D игры). Всё упирается в вашу фантазию и умение решать логические задачи.
Было решено делать игру в духе минимализма. Это одновременно значительно сокращает время разработки и позволяет выполнять работу самому, без привлечения стороннего художника. Потому, если у вас нет навыков рисования и вы хотите, чтобы ваша игра выглядела более-менее достойно, то лучше использовать простую графику, без сложных художественных элементов.
До того, как я взялся за разработку своей игры, у меня был опыт в написании обучающих статей и гайдов на игровую тематику. Этот опыт формирует навык смотреть на игры с точки зрения новичка. В свою очередь, этот навык помог мне сделать интерфейс достаточно гибким и интуитивно понятным (учитывая всю сложность и глубину игры).
От чего пришлось отказаться (основное):
1. Мультиплеер. Да-да. Свою первую игру я хотел сразу же сделать с мультиплеером. Самой трудно задачей в этом деле было придумать, как сделать защиту от нечестных игроков. Даже топовые онлайн игры вкладывают огромное количество ресурсов в защиту своей игры от взлома. Куда уж там мне, в одиночку бороться против читеров..
Чтобы создать хотя бы минимальную защиту нужно делать для игры серверную часть. А для этого нужно знать на продвинутом уровне серверные технологии, базы данных, php, MySQL и AJAX. Как оказалось, это слишком сложная задача для одного человека, который трудится над своей первой игрой.
Когда вы будете вводить в игру что-то новое и непонятное, то всегда думайте, насколько ваша новая фича впишется в уже существующую игру. Иначе есть риск потратить десятки или даже сотни часов своего времени на те вещи, которые вы потом решите из игры убрать.
Читая многочисленные статьи по продвижению, я понял что качество промо-материалов напрямую влияет на количество загрузок, ведь именно по ним пришедший на стриницу приложения потенциальный игрок решает, будет он качать игру или нет.
За основу иконки взял спрайт космического корабля из своей же игры. Просто и минималистично. Возможно, в будущем воспользуюсь услугами художника для создания профессиональной иконки для приложения.
К счастью, у меня уже был опыт работы в видеоредакторах. Потому, создание несложного трейлера не заняло много времени. Получилось, на мой взгляд, вполне достойно.
Ну, и в качестве бонуса поделюсь своими рекомендациями, которые помогали мне в процессе создания игры.
3. Регулярно играйте в другие игры. Так вы сможете почерпнуть для себя новые идеи, а также набраться вдохновением для создание своей собственной игры. Если вы при этом будете разбирать механики других игр на составляющие, попытаетесь разобраться что как и почему работает, то с этого вы получите дополнительную пользу.
Искренне надеюсь, что статья была вам полезна и вдохновила на создание своей собственной игры. На этом, пожалуй, всё, всем удачи!
Все таки не надо путать «без программирования» и «без написания кода».
У меня есть несколько знакомых, которые хотели с наскоку сделать игру в Construct или Game Maker’e, но очень быстро обломились, потому что думали, что там «не надо программировать». Оказалось программировать все таки надо, а вот код писать нет.
Более того, писать код проще и быстрее, чем соединять лоигческие бооки в интерфейсе движка )
Орущую во весь рот даму с бюстом от 3го размера*
Отличный пост. Спасибо, что поделились опытом. Прада вот это, имхо, неверно, никогда не встречался с таким «стереотипом»
Почему-то есть стереотип, что игры без программирования обязательно используют какие-то шаблоны
Достаточно зайти на форум gamedev.ru для ознакомления. Сейчас оно, конечно, по счастью отмирает, но раньше было довольно много ада с хейтом, когда кто-то показывал свою поделку с чем-нибудь «изкоробочным». По типу: «Да у тебя даже шейдеры дефолтные, значит это не игра и ты её не делал».
Респект и окупаемости инди-разработчикам!
4.5 звезды игру это отличнейший результат.
Вы, кстати, посчитали, при каком количестве скачиваний и среднем времени в игре на скачивание наступит та самая условная окупаемость?
Когда будет что рассказать буду рад поделиться опытом и напишу отдельную статью на эту тему.
По деньгам пока очень рано говорить. Игра бесплатная, с вознаграждаемой рекламой. Продвигаюсь сам, без издателя.
Сотня инсталлов, 18 оценок, все с 8 февраля. Каких то доходов серьезных не будет и на сотне тысяч инсталлов.
Ситуация которая сейчас сложилась в мобильных играх это следствие большой большой конкуренции(проблема видимости продукта), темпа реальной жизни (сессионность, ускорение таймеров), необходимости жесткой монетизации (отсюда f2p) и людской психологии( стремление быть лучше чем другие за счёт доната).
Желаю удачи автору, боюсь правда его ждёт разочарование. Уж очень мал шанс того что игра сможет получить достаточно траффика в конкуренции с 200ым клоном того же Game of War.
На скрине java игры: Revival, Первобытные войны и HTBG. Современных аналогов, к сожалению, на Андроид нет..
Попробуй серии Advance Wars и Fire Emblem, они выходили на GBA. Чтобы сейчас в них поиграть, достаточно установить на телефон эмулятор (в плеймаркете их есть) и скачать rom-файлы этих игр с любого сайта в выдаче гугла =)
На iOS игра не планируется?
На ближайшее будущее не планируется..
Автор молоток!
Где этот финансовый чувак, который хочет в геймдев?
Люблю такие истории. Рад, что тебе довелось довести дело до конца)
Всё-таки рано или поздно появляются сложные вещи, где приходиться лезть в код. Тем не менее, твой пример показыает, что можно обойтись без них и это норм
Интересно было прочитать пост, спасибо. Автоматический апвоут за игру на C2 🙂 Сам на нём же сижу (пилю второй проект). А так, я бы сказал, что услуги художника вам, возможно, всё же не помешают (ну или в библиотеках платных/бесплатных ассетов покопаться). Сейчас графика выглядит неплохо, но немного скучновато чтоли (на мой вкус). Самый удобный вариант был бы нанять художника и попросить его перерисовать спрайты покрасивше, так сказать. Можно даже ему дать исходники, чтобы переделанные варианты были таких же габаритов. А потом просто все спрайты заменить в движке и дело с концом. И еще, некоторая информация написана довольно мелким шрифтом. Думаю, неплохо было бы с этим что-то сделать, чтобы людЯм зрение не сажать) P.S. Как сказал один из комментаторов, это всё же программирование. Просто оно называется визуальным. Пусть в подобном движке и условно «легче» делать игры, но при этом нужно это всё заставить работать самым эффективным образом, особенно если релизиться на мобильных устройствах. P.S.S. Если нужно, могу кинуть инвайт в чат в Дискорде, где сидят довольно много разработчиков и там всегда можно получить фидбэк или совет (при условии, что вы не будете злоупотреблять этой возможностью, конечно). Там, правда, только английский в ходу, но если с этим нет проблем, то велкам)
Честно говоря, мне не очень нравится кликерная механика добычи энергии. Лично мне был бы более интересен вариант с постройкой на захваченных планетах каких-нибудь условных фабрик, которые бы производили энергию в офлайн-режиме. Т. е. более привычный вариант для мобильных игр. Поскольку тратить время вот на это кликанье совершенно не хочется.
Энергия добывается и в оффлайн режиме, такое тоже есть. Полное восстановление происходит за 8 часов. И не только энергия, но и все ресурсы, которые добываются в кликере. Можно утром зайти, поставить улучшение, сыграть пару боёв, за полученные в ходе сражений ресурсы ещё прокачаться и выйти, не играть до вечера. Можно пройти всю игру вообще без кликера.
Комментарий удален модератором
Спасибо за советы, учту!
Помню игру одну на PalmOS называлась Aldon’s Crossing. До сих пор забыть не могу. Шикарная весч. Если у кого пальма есть попробуйте. Если не сможете найти могу выслать.
Автору спасибо за статью. Скорее всего, опыта в написании гайдов у вас было маловато, либо они были собраны так же, и эта игра, по блочной схеме, ибо я вижу, что вы искренне пытаетесь выразить мысли в сложном предложении, но вам не хватает опыта редактуры.
Советую последующие статьи, если таковые будут, писать не одним разом, а частями. Причём с вычиткой каждой части и последующей редактурой с перерывами! Тогда получится ну очень хорошо)
P.S. Могу на досуге отредактировать вашу статью и прислать вам с пояснениями текст. Не, ну а вдруг вы что-то почерпнёте. Я не утверждаю, что данная версия статьи читается с трудом, но есть места, где явно хочется перечеркнуть 😉
В любом случае плюс!
В мобильных играх RPG означает какую-то другую расшифровку? Или вы планируете добавить элементы ролплея в будущем? (адмиралов, например)
В данном случае, приставка RPG означает скорее элементы рпг. В игре нет сюжета, упор только на механику. Тем не менее, прокачивая корабль нужно выбрать для себя роль, например тяжелобронированный корабль с большим уроном и низкой точностью, маневренный истребитель с хорошим уроном и т.д.
Констракт разве не платный?
Ну, лицензия Construct 2 и взнос 25$ за аккаунт Google разработчика, это обязательные траты, без которых никак.
Делать игру без программирования?
Зря от доната отказались, загубили перспективный проект этим решением
Как создать игру на Андроид с нуля, без программирования
Как создать игру на Андроид с нуля, без программирования. В наше время очень сложно найти человека, который не играл в мобильные игры, вспомните хотя бы классическую «Змейку». Но приходила ли вам в голову мысль создать свою игру, в которой будут ваши собственные герои, придуманные только вами?
Для того, чтобы начать создание даже самой простейшей мобильной игры, нужно обладать определенными навыками. Что же именно требуется?
Что такое конструктор и как его правильно выбрать?
Это программа, которая создана для облегчения жизни пользователям. Но есть у нее и еще одно предназначение — конструктор должен предоставить возможность создания приложений не только людям, обладающими определенными навыками в программировании, но и тем, кто понятия не имеет что это такое. То есть с помощью конструктора, любой желающий сможет создать свою собственную игру.
Как правильно выбрать конструктор? Как ни странно, но начинать его выбор нужно ориентируясь в первую очередь на свои знания – от навыков программирования до уровня владения английским языком. Если первый пункт у вас нулевой, то рекомендую выбрать программы для новичков, они проще в использовании. Второй критерий выбора – требуемый функционал. Здесь-то нам и потребуется наш точно составленный сценарий, его нужно еще раз прочитать «от корки до корки» и понять насколько сложной будет будущая игра. Чем сложнее проект, тем больше всяких «примочек» нужно будет использовать, а значит и конструктор должен быть мощнее и профессиональнее.
Ниже я приведу несколько примеров самых распространённых конструкторов, которые советуют профессионалы новичкам.
Construct 2
Данное приложение уже много лет подряд заслуженно входит в ТОП списока программ-конструкторов, ведь оно дает возможность создания игр практический на все возможные платформы и во всех жанрах. Интерфейс Construct максимально прост, но русификации пока нет. Набор инструментов достаточный для создания любой двухмерной игры. Еще одним плюсом является то, что необязательно покупать лицензию программы, вы вполне можете обойтись функционалом, который предложен в бесплатной версии.
Скачать: Construct 2
Видео уроки по Construct 2
Stencyl
Этот конструктор также разработан для новичков, которые не разбираются в программировании. Он отлично подойдёт для создания несложных двумерных игр и предоставит возможность запустить проект с достойным графическим интерфейсом.
К тому же, если вы все-таки владеете хоть какими-то знаниями в области программирования, то Stencyl предоставит вам возможность вписать в блоки свой собственный код. Набор инструментов позволит создавать игры практически любого жанра, однако функционал больше настроен на создание «шутеров».
Программа бесплатно, но если вы захотите конвертировать свое творение в форматы, которые «понимает» персональный компьютер, то придется покупать лицензионную подписку, и это, несомненно, минус, ведь подписка эта не из дешевых, она стоит почти 100 долларов в год. Ну, а если вы видите себя в будущем профессиональным создателем мобильных игр, то готовьтесь отдавать по 200 долларов в год, именно столько обойдется программа с возможностью сохранения проекта в формате мобильных операционных систем.
Скачать: Stencyl
Видео уроки по Stencyl
Unity 3D
Я думаю, что очень многие слышали это название и видели эту эмблему на экранах своих мобильных устройств. Все дело в том, что компания, которая выпускает программное обеспечение для создания игр, также занимается и выпуском приложений собственной разработки.
Unity 3D является самым мощным конструктором для создания 3D приложений. Уровень, на который вы сможете вывести свой проект достойный (взгляните только на скриншот выше). Это не обработанное изображение, а реальный снимок экрана еще не законченной игры! Согласитесь, как для мобильной игры это очень высокий уровень.
Но такой результат потребует уже и определенных навыков. Хоть программа и позиционируется как приложение для новичков, но она скорее больше рассчитана на любителей и профессионалов, ведь для работы с ней потребуются базовые знания программирования и 3D-моделирования. Ну и конечно же, в Unity вы сможете создать проект любой сложности и любого жанра, набор инструментов просто огромен.
Скачать: Unity 3D
Видео уроки по Unity 3D
Как же пользоваться конструкторами?
Определенной инструкции для создания игры нет. Все зависит от выбранного вами жанра, ваших навыков и, конечно же, от программы, с помощью которой, вы собираетесь все это делать. В связи с этим, я рекомендую вам в качестве стартового проекта попробовать сделать что-то, что уже делалось более опытными людьми, YouTube в помощь. Это поможет вам освоиться в среде разработки игр, понять принцип работы основных инструментов и возможно изменить сценарий вашей разработки.
Когда вы сделаете «пробный» проект и точно определитесь со своим, выберете программу, то ищите в интернете видеоролики именно о конструкторе, который вы будете использовать.
Не бойтесь экспериментировать, ищите информацию в Интернете и пробуйте. Только так вы будете учиться и развиваться. Удачи в создании своего шедевра.
Создание простой 2D игры на Android
Когда я писал эту «игру» у меня возникала масса вопросов по поводу зацикливания спрайтов так что бы они появлялись через определенное время, так же были проблемы с обнаружением столкновений двух спрайтов и более, все эти вопросы я сегодня хочу осветить в этом посте так как в интернете я не нашел нормального ответа на мои вопросы и пришлось делать самому. Пост ни на что не претендует, я новичок в разработке игр под android и пишу я для новичков в данной отрасли. Кому стало интересно прошу под кат.
Постановка задачи:
Игра должна представлять из себя поле (сцену) на котором располагается ниндзя и призраки. Нинзя должен защищать свою базу от этих призраков стреляя по ним.
Пример такой игры можно посмотреть в android market’e. Хотя я сильно замахнулся, у нас будет только похожая идея.
Вот как будет выглядеть игра:
Начало разработки
Создаем проект. Запускаем Eclipse — File — Android Project — Defens — Main.java.
Открываем наш файл Main.java и изменяем весь код на код который ниже:
Код ниже говорит нашей главной функции что запускать нужно не *.xml файл темы, а класс который у нас является самой сценой.
Дальше Вам нужно создать класс GameView.java который будет служить для нас главным классом на котором будет производится прорисовка всех объектов. Так же в этом классе будет находится и наш поток в котором будет обрабатываться прорисовка объектов в потоке для уменьшения нагрузки игры на процессор. Вот как будет выглядеть класс когда на сцене у нас ничего не происходит:
Из комментариев надеюсь понятно какая функция что делает. Этот класс является базовым по этому в нем мы будем производиться все действия (функции) которые будут происходить в игре, но для начало нам нужно сделать еще несколько классов Переходи к следующему пункту — создание спрайтов.
Создание спрайтов
Сейчас мы будем использовать не анимированные спрайты но в будущем я вставлю спрайты в проэкт, если тянет научиться делать спрайты прошу во второй урок по созданию игры под android.
Теперь загрузите эти картинки в папку res/drawable для того, чтобы Eclipse мог увидеть эти картинки и вставить в Ваш проект.
Следующий рисунок должен визуально помочь понять как будет располагаться игрок на экране.
Скучная картинка… Давайте лучше создадим этого самого игрока.
Нам нужно разместить спрайт на экране, как это сделать? Создаем класс Player.java и записываем в него следующее:
Создаем еще один файл классов и назовем его Bullet.java, этот класс будет определять координаты полета, скорость полета и другие параметры пули. И так, создали файл, и пишем в него следующее:
Из комментариев должно быть понятно что пуля выполняет только одно действие — она должна лететь по направлению указанному игроком.
Рисуем спрайты на сцене
Для того что бы нарисовать эти два класса которые мы создали, нам нужно отредактировать код в классе GameView.java, добавить несколько методов которые будут возвращать нам наши рисунки. Полностью весь код я писать не буду, буду приводить только код нужных мне методов.
Для начала нам нужно создать объекты классов Bullet и Player для того что бы отобразить их на экране, для этого создадим список пуль, что бы они у нас никогда не заканчивались, и обычный объект класса игрока.
Дальше нам нужно присвоить картинки нашим классам, находим конструктор GameView и вставляем в самый конец две строчки:
GameView.java — Конструктор GameView
И в методе onDraw(Canvas c); делаем видимыми эти спрайты. Проходим по всей коллекции наших элементов сгенерировавшихся в списке.
А для того что бы пули начали вылетать при нажатии на экран, нужно создать метод createSprites(); который будет возвращать наш спрайт.
Ну и в конце концов создаем еще один метод — onTouch(); который собственно будет отлавливать все касания по экрану и устремлять пулю в ту точку где было нажатия на экран.
Враги
Для того что бы нам не было скучно играться, нужно создать врагов. Для этого нам придется создать еще один класс который будет называться Enemy.java и который будет уметь отображать и направлять нашего врага на нашу базу. Класс довольно простой по этому смотрим код ниже:
И так что происходит в этом классе? Рассказываю: мы объявили жизненно важные переменные для нашего врага, высота ширина и координаты. Для размещения их на сцене я использовал класс Random() для того что бы когда они будут появляться на сцене, появлялись на все в одной точке, а в разных точках и на разных координатах. Скорость так же является у нас рандомной что бы каждый враг шел с разной скоростью, скорость у нас начинается с 0 и заканчивается 10, 10 — максимальная скорость которой может достигнуть враг. Двигаться они будут с права налево, для того что бы они не были сразу видны на сцене я закинул их на 900 пикселей за видимость экрана. Так что пока они дойдут можно уже будет подготовиться по полной к атаке.
Дальше нам нужно отобразить врага на сцене, для этого в классе GameView.java делаем следующее:
Создаем список врагов для того что бы они никогда не заканчивались и создаем битмап который будет содержать спрайт:
Далее создаем новый поток для задания скорости появления врагов на экране:
И имплементируем класс Runuble, вот как должна выглядеть инициализация класса GameView:
Теперь у Вас еклипс требует создать метод run(), создайте его, он будет иметь следующий вид:
В самом низу класса GameView
Здесь мы создаем поток который будет создавать спрайт от 0 до 2000 милисекунд или каждые 0, 1 или 2 секунды.
Теперь в конструкторе в самом конце пишем инициализируем наш спрайт с классом для отображения на сцене:
Ну и конечно же нам нужно объявить эти методы в onDraw(); Вот значит и пишем в нем следующее:
Метод onDraw() в GameView
Снова проходим по коллекции врагов с помощью итератора и проверяем — если враг зашел за предел в 1000 пикселей — удаляем его, так как если мы не будем удалять у нас пямять закакается и телефон зависнет, а нам такие проблемы не нужны. Все игра готова для запуска.
Запускаем нашу игру и что мы увидим? А вот что:
Но что я вижу? О нет. Пули никак не убивают наших призраков что же делать? А я Вам скажу что делать, нам нужно создать метод который будет образовывать вокруг каждого спрайта — прямоугольник и будет сравнивать их на коллизии. Следующая тема будет об этом.
Обнаружение столкновений
И так, у нас есть спрайт, у нас есть сцена, у нас все это даже движется красиво, но какая польза от всего этого когда у нас на сцене ничего не происходит кроме хождения туда сюда этих спрайтов?
С этой функцией я навозился по полной, даже как-то так выходило что психовал и уходил гулять по улице)) Самый трудный метод, хотя выглядеть совершенно безобидно…
Ладно, давайте уже создадим этот метод и не будем много разглагольствовать… Где то в конце класса GameView создаем метод testCollision() и пишем следующий код:
В самом низу класса GameView.java
И так, что у нас происходит в этом методе? Мы создаем один итератор и запускаем цикл для просмотра всей коллекции спрайтов, и говорим что каждый следующий спрайт пули будет первым.
Дальше создаем еще один итератор с другим списком спрайтов и снова переопределяем и говорим что каждый следующий спрайт врага будет первым. И создаем оператор ветвления — if() который собственно и проверяет на столкновения наши спрайты. В нем я использовал математическую функцию модуль (abs) которая возвращает мне абсолютное целое от двух прямоугольников.
Внутри ифа происходит сравнения двух прямоугольников Модуль от (Пуля по координате Х минус координата врага по координате Х меньше либо равен ширина пули плюс ширина врага / 2 (делим на два для нахождения центра прямоугольника)) и (Модуль от (Пуля по координате У минус координата врага по координате У меньше либо равен ширина пули плюс ширина врага / 2 (делим на два для нахождения центра прямоугольника)));
И в конце всего, если пуля таки достала до врага — мы удаляем его со сцены с концами.
Ну и для того что бы эта функция стала работать записываем её в метод run() который находится в классе GameThread, ниже нашего метода рисования onDraw().
Вот что у нас получается после запуска приложения:
Источники информации:
- http://101android.ru/sdelat-svoyo-prilozhenie-ili-igru-dlya-android/
- http://habr.com/ru/post/330686/
- http://habr.com/ru/post/439266/
- http://lumpics.ru/how-to-create-game-for-android/
- http://blog-android.ru/how-to/games/kak-sozdat-igru-na-android-s-nulya/
- http://habr.com/ru/post/265247/
- http://dtf.ru/gamedev/40357-kak-sdelat-mobilnuyu-rpg-igru-v-odinochku-bez-programmirovaniya-i-byudzheta
- http://upgrade-android.ru/stati/stati/3237-kak-sozdat-igru-na-android-s-nulya-bez-programmirovaniya.html
- http://habr.com/ru/post/136802/