Контакты

Как создавать игры на андроид без программ. Создание игры на Android

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

Уровень сложности создания Android-игр

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

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

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

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

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

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

  • Идея, образное представление, о чем будет игра, знание ее основного сюжета;
  • Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
  • Установленная на компьютере программа для создания продукта;
  • Свободное время, внимательность и желание трудиться.

Какую игру лучше всего создать

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

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

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

Самое сложное направление для создания, это, конечно, экшн-игры, где присутствует детальный проработанный мир, обычно сделанный в 3D-формате , несколько главных персонажей, длительный сюжет и множество уровней. На примере рассмотрим известное приложение Modern Combat. Конечно, для такой мощной игрушки требуются десятки специалистов, хорошие вложенные деньги и месяца работы . Но это не значит, что пользователь сам не сможет создать 3D-игру. Нужны только хорошие умения и навыки, поэтому этот жанр следует оставить на потом.

Как создать игру на Андроид с нуля без навыков программирования

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

Construct 2 — простая платформа для 2D приложений

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

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

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

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

К сожалению, существует и минус: в бесплатной версии можно экспортировать творения в браузеры, а оттуда открывать их на совершенно любой платформе, но бесплатно создать игру только для Андроид не получится. Для этого придется вкладывать деньги в платную версию, стоимость которой немного превышает 100 долларов. Зато потом возможности намного расширяются, игры без проблем можно делать чисто на Андроид или iOS, а с помощью установочных файлов открывать приложения на персональном компьютере.

Видео-инструкция как сделать игру на Андроид с помощью Construct 2 и Construct 3

Unity 3D — мощный движок для разработки 3D проектов

Если предыдущая программа позволяла создавать только 2D-игры, то Unity 3D уже выходит на новый уровень и предоставляет разработчикам все условия для создания отличного трехмерного проекта . Программа оснащена различными готовыми моделями, изображениями, скриптами и текстурами на любой вкус. Компиляция имеет высокую скорость, редактор, несмотря на свою многофункциональность, очень прост в использовании.

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

Единственное требование – это достаточно мощный компьютер, поддерживающий 3D-форматы и навык программирования среднего уровня , поскольку новичкам будет все же немного трудно разобраться.

Видео-инструкция по созданию игры с помощью Unity 3D за 45 минут

Game Maker — самый легкий вариант для новичка

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

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

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

Видео-мануал по программе Game Maker

Этапы создания игр

Делаем простую игру

Под простой игрой подразумевается самый незамысловатый сюжет . На примере рассмотрим такую идею: человечку необходимо преодолеть препятствия, чтобы благополучно добраться до финиша. К тому же, по дороге желательно собирать монетки. Согласитесь, воспроизвести такую картинку с помощью Construct 2 довольно просто и интересно. Рассмотрим приблизительные ориентировочные действия:

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

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

Делаем карточную игру

Для такого жанра лучше всего использовать программу Unity 3D. Здесь же рассмотрим направления и шаги:

  • Делаем основной фон для карт;
  • Проектируем сами карты, то есть, инвентарь;
  • Задаем взаимодействия;
  • Определяем количество игроков;
  • Переводим меню игры из 3D в 2D;
  • Определяем конец игры.

Создаем РПГ-игру

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

  • Придумываем основную идею будущей Андроид игры;
  • Пишем основной сценарий;
  • Рисуем базовую карту и добавляем объекты;
  • Создаем события.

Как создать онлайн-игру для Андроид

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

Обратите внимание! Создание игры без использования ПК стандартными методами невозможно. Большинство популярных программ ориентировано только на компьютеры.

Три 100% способа, чтобы заработать на своей игре


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

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

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

Этот урок начинает серию статей, посвященных написанию аркадных игр для 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 более чем достойный показатель.

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

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

Создайте новый проект. В поле Project Name введитеDroidz . В качестве целевой платформы выберите Android 2.2 или выше. В Package Name - "ru.mobilab.gamesample ". Не забудьте поставить галочку около Create Activity. В качестве имени главной activity введитеDroidzActivity .

Откройте файл src/ru.mobilab.gamesample/DroidzActivity.java

import android.app.Activity;
import android.os.Bundle;

public class DroidzActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

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

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

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

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

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

SetContentView(R.layout.main);

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

MainGamePanel.java

package ru.mobilab.gamesample;






SurfaceHolder.Callback {


super(context);
// Добавляем этот класс, как содержащий функцию обратного
// вызова для взаимодействия с событиями
// делаем GamePanel focusable, чтобы она могла обрабатывать сообщения
setFocusable(true);
}

@Override
}

@Override
}

@Override
}

@Override

}

@Override
}
}

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

GetHolder().addCallback(this);

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

SetFocusable(true);

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

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

Package ru.mobilab.gamesample;

public class MainThread extends Thread {

//флаг, указывающий на то, что игра запущена.

Private boolean running;
public void setRunning(boolean running) {
this.running = running;
}

@Override
public void run() {
while (running) {
// обновить состояние игровых объектов
// вывести графику на экран
}
}
}

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

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

Package ru.mobilab.gamesample;

import android.content.Context;
import android.graphics.Canvas;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MainGamePanel extends SurfaceView implements
SurfaceHolder.Callback {

Private MainThread thread;

Public MainGamePanel(Context context) {
super(context);
getHolder().addCallback(this);

// создаем поток для игрового цикла
thread = new MainThread();

SetFocusable(true);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
thread.setRunning(true);
thread.start();
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
//посылаем потоку команду на закрытие и дожидаемся,
//пока поток не будет закрыт.
boolean retry = true;
while (retry) {
try {
thread.join();
retry = false;
} catch (InterruptedException e) {
// пытаемся снова остановить поток thread
}
}
}

@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}

@Override
protected void onDraw(Canvas canvas) {
}
}

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

Private MainThread thread;

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

Thread = new MainThread();

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

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

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

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

Private SurfaceHolder surfaceHolder;
private MainGamePanel gamePanel;

public MainThread(SurfaceHolder surfaceHolder, MainGamePanel gamePanel) {
super();
this.surfaceHolder = surfaceHolder;
this.gamePanel = gamePanel;
}

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

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

Thread = new MainThread(getHolder(), this);

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

Логирование

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

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

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

Package ru. mobilab. gamesample; import android. util. Log ; import android. view. SurfaceHolder; public class MainThreadextends Thread{ private static final String TAG= MainThread. class . getSimpleName() ; private SurfaceHolder surfaceHolder; private MainGamePanel gamePanel; private boolean running; public void setRunning(boolean running) { this. running= running; } public MainThread(SurfaceHolder surfaceHolder, MainGamePanel gamePanel) { super() ; this. surfaceHolder= surfaceHolder; this. gamePanel= gamePanel; } @ Override public void run() { long tickCount= 0L; Log . d(TAG, "Starting game loop" ) ; while (running) { tickCount++; // здесь будет обновляться состояние игры // и формироваться кадр для вывода на экран } Log . d(TAG, "Game loop executed " + tickCount+ " times" ) ; } }

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

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

public boolean onTouchEvent(MotionEvent event) { if (event. getAction() == MotionEvent. ACTION_DOWN) { if (event. getY() > getHeight() - 50 ) { thread. setRunning(false ) ; ((Activity) getContext() ) . finish() ; } else { Log . d(TAG, "Coords: x=" + event. getX() + ",y=" + event. getY() ) ; } } return super. onTouchEvent(event) ; }

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

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

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

Package ru. mobilab. gamesample; import android. app. Activity; import android. os. Bundle; import android. util. Log ; import android. view. Window; import android. view. WindowManager; public class DroidzActivityextends Activity{ /** Вызывается при создании activity. */ private static final String TAG= DroidzActivity. class . getSimpleName() ; @ Override public void onCreate(Bundle savedInstanceState) { super. onCreate(savedInstanceState) ; // запрос на отключение строки заголовка requestWindowFeature(Window. FEATURE_NO_TITLE) ; // перевод приложения в полноэкранный режим getWindow() . setFlags(WindowManager. LayoutParams. FLAG_FULLSCREEN, WindowManager. LayoutParams. FLAG_FULLSCREEN) ; // устанавливаем MainGamePanel как View setContentView(new MainGamePanel(this) ) ; Log . d(TAG, "View added" ) ; } @ Override protected void onDestroy() { Log . d(TAG, "Destroying..." ) ; super. onDestroy() ; } @ Override protected void onStop() { Log . d(TAG, "Stopping..." ) ; super. onStop() ; } }

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

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

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

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

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

На чтение 3 мин.

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

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

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

Unity 3D

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

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

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

Construct 2

Легендарный представитель жанра, отличающийся от конкурентов низким порогом вхождения (без изучения вложенных инструкций не обойтись, но времени на теоретическую подготовку много не понадобится, а вот практика отнимет десятки и сотни часов), предсказуемым, но информативным интерфейсом. Распространяется сервис свободно, причем в режиме Freemium, получится бегло оценить функционал и разработать собственный проект, а затем – выпустить в релиз в Google Play или даже в браузере.

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

Из недостатков – странные лицензии, способные ограничить разработку и заставить платить за релиз под определенные платформы (например, Андроид) от 100 до 500 долларов. Причем в указанный ценник разработчики Construct 2 закладывают еще и «популярность» автора – чем больше загрузок, тем цена выше.

Clickteam Fusion

Игровой Андроид конструктор с полным бесплатным доступом (ни за стартовый функционал, ни за релиз, ни за графические элементы, звуки и уровни платить не придется), классическим интерфейсом и усредненными требованиями к потенциальному разработчику. Методом научного тыка изобрести нечто неизвестное миру, увы, не получится, но, если же заручиться подсказками с YouTube и инструкциями, предлагаемыми разработчиком, то прогресс станет видимым сразу же.

Из преимуществ – готовая база предметов и инструментов для разработки и наполнения виртуального мира. Причем для генерации какого-то простенького алгоритма потребуется каких-то 15 минут, не более.

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

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

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

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

  1. Перейдите на главную страницу сервиса по ссылке выше или через поиск в любом удобном браузере.
  2. Нажмите на кнопку «Создать» .
  3. Выберите жанр проекта, который хотите сделать. Мы рассмотрим обычный раннер.
  4. Ознакомьтесь с описанием жанра приложения и переходите к следующему шагу.
  5. Добавьте изображения для анимации. Вы можете нарисовать их самостоятельно в графическом редакторе или загрузить из интернета.
  6. Выберите врагов, если это необходимо. Вам нужно только указать их количество, параметр здоровья и загрузить картинку.
  7. Каждая игра имеет главную тему, которая отображается, например, при входе или в главном меню. Кроме этого присутствуют различные текстуры. Добавьте эти изображения в категории «Background and game images» .
  8. Кроме самого процесса каждое приложение отличается использованием подходящей под жанр музыки и оформления. Добавьте шрифты и файлы аудио. На странице AppsGeyser вам предоставят ссылки, где можно загрузить бесплатную музыку и шрифты, не защищенные авторским правом.
  9. Назовите свою игру и переходите далее.
  10. Добавьте описание, чтобы заинтересовать пользователей. Хорошее описание способствует увеличению количества загрузок приложения.
  11. Последним шагом является установка иконки. Она будет отображаться на рабочем столе после инсталляции игры.
  12. Сохранить и загрузить проект можно только после регистрации или входа в AppsGeyser. Выполните это и следуйте далее.
  13. Сохраните приложение, нажав на соответствующую кнопку.
  14. Теперь вы можете опубликовать проект в Google Play Market за небольшую плату в двадцать пять долларов.

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

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

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

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


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

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

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

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

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

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

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

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

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

Разработка идеи

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

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

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

Создание объектной модели и спецификации

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

  • Объектная модель.
  • Функциональные спецификации.
  • Интерфейс и контент.

Объектная модель представляет собой подробное описание каждого объекта в игре. Это может быть непосредственно сам игрок, какие-либо предметы (оружие, броня и так далее), уникальные свойства, объекты окружающего мира.

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

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

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

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

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

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

Программирование происходит на языке Java. Это один из самых популярных языков. Без начального уровня вы не сможете работать в Андроид Студии. Он строго типизирован, при этом в освоении намного легче C или C++. Следует найти насколько книг по Java, а затем постепенно изучать все особенности этого языка программирования. Параллельно обязательно выполняйте различные практические задания, чтобы закрепить теорию. Это трудный путь, но он предлагает максимальные возможности в реализации своего проекта. С Андроид-студией также можно создать онлайн-игры.

Если вы не сильны в программировании, попробуйте воспользоваться конструктором приложений. Разработка игр при помощи конструктора сводится к созданию уровней, персонажей и других элементов при помощи специального редактора. Многие конструкторы основаны на принципе WYSIWYG – «что видишь, то и получаешь». Пользователь может разработать уровни, персонажей и другие элементы, выставляя их в специальном редакторе и изменяя настройки/свойства. Это намного проще, чем с нуля программировать игру.

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

Первые строчки по популярности занимает Construct 2. Имеется бесплатная начальная версия, в которой имеется широкий функционал для создания игры любого жанра. Программа позволяет разработать игру не только под операционную систему Android, но и для iOS, и даже для браузера (используется HTML5). Программу без труда освоят даже новички. Если функционала вам недостаточно, можете приобрести полную версию за 129 долларов.

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

Программа имеет визуально устаревший интерфейс, который насчитывает всего 8 окон. Но за счет этого повышается удобство использования. В данной программе можно создать практически любую 2d игру: головоломки, карточные игры, квесты и другое. Купить полную версию вы можете всего за 100 долларов.

Понравилась статья? Поделитесь ей