Как делать на телефоне игры

Мобильные игры для Android – огромный рынок с потенциальной аудиторией более 2 миллиардов пользователей. Разработчики создали бесчисленное множество хитов, вроде Angry Birds, Nyan Cat и Pokemon Go, которые вдохновили миллионы людей начать собственные проекты.

Перспективы и направления

📱 Как начать разрабатывать мобильные игры для Android?

По данным Admob, 62% пользователей смартфонов устанавливают игру в течение первой недели после покупки устройства, однако лишь немногие мобильные игры могут окупить затраты на разработку. Создание приложений для Android имеет определенные особенности:

  • только 3% игроков тратят деньги в мобильных приложениях;
  • 80% продаж магазинов приложений составляют именно игры;
  • в 2010 году объем рынка мобильных игр оценивался в 33 миллиарда долларов;
  • в 2017 году выручка от мобильных игр превысила 50 миллиардов долларов, что составляет 43% всего мирового игрового рынка;
  • женщины в возрасте от 35 до 44 лет являются основными потребителями мобильных игр;
  • в 2015 году в США насчитывалось почти 165 миллионов игроков, использующих только мобильные устройства. Ожидается, что в 2021 году их количество увеличится до 213 миллионов

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

Популярные жанры

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

📱 Как начать разрабатывать мобильные игры для Android?

MOBA

Multiplayer Battle Arenas представляет собой смесь стратегии в реальном времени и экшена. Игроку предоставляется контроль над одним персонажем, известным как «чемпион» или «герой», которого можно выбрать из большого списка. Нужно собрать команду и разрушить базу противников, защищая собственную.

Arena of Valor, Vainglory и Mobile Legends входят в тройку лучших MOBA для телефонов и планшетов. В 2017 году в Arena of Valor было 200 миллионов уникальных игроков, а ежедневное среднее их количество игроков достигло 80 миллионов, что сделало игру самой популярной в мире.

Battle Royale

Battle Royale сочетает выживание с разведкой, собирая большое количество игроков с минимальным снаряжением для поиска оружия и устранения противников. Цель игры – стать последним выжившим. Идея частично вдохновлена ​​японским фильмом ужасов «Королевская битва» 2000 года. Игрок соперничает с конкурентами, пытаясь оставаться в безопасной зоне, которая со временем сужается. Победителем становится последний выживший.

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

MMORPG

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

Мобильные MMORPG – упрощенные версии ПК-аналогов, здесь игроки не хотят тратить часы и месяцы на изучение механики. Некоторые мобильные MMORPG чрезвычайно популярны: например, Arcane Legends и Dungeon Hunter 5.

Головоломки

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

Казуальные игры

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

📱 Как начать разрабатывать мобильные игры для Android?

Выбор движка

Как только у вас появится идея игры, стоит определиться с инструментами разработки. Можно написать приложение с нуля на Java или Kotlin в Android Studio или использовать веб-интерфейс из стандартного стека HTML5, JavaScript и CSS. В качестве примера такого подхода приведем пошаговое создание легендарной игры Bejeweled на jQuery. Для более масштабных проектов стоит присмотреться к специальным движкам.

Unity

Unity – интуитивно понятный движок с широким набором функций для разработки кроссплатформенных мобильных игр. Он поддерживает импорт из 3dsMax, Maya, Softimage, CINEMA 4D, Blender.

Хотя Unity интегрируется со всеми основными 3D-приложениями, внутренние его возможности для редактирования имеют множество ограничений. За исключением некоторых примитивных форм, все должно быть создано с помощью сторонней программы. С новой 64-битной архитектурой и поддержкой WebGL, Unity 5 считается сильным решением. Это одна из наиболее часто используемых платформ, так что вы легко найдете в сети множество учебных пособий и руководств.

Unreal

Unreal Engine 4 – последняя на данный момент версия движка UDK, выпущенного Epic Games. В нем есть возможности разработки игр для мобильных устройств, ПК и консолей. UE4 обеспечивает потрясающие графические возможности, вроде расширенного динамического освещения или одновременной обработки до миллиона частиц в сцене.

В новом движке Unreal Engine 4 много изменений по сравнению с предыдущими версиями. В качестве языка сценариев используется C++, который полностью заменил популярный некогда UnrealScript, а Kismet заменен более удобной системой Blueprint. Из-за этих перемен даже опытным дизайнерам игр придется пройти обучение, чтобы освоить обновленную версию.

Unreal поставляется с инструментами для использования технологий виртуальной и дополненной реальности для разработки мобильных игр. В «Библиотеке программиста» вы найдете подробный туториал по созданию первого объекта и освоению Unreal Engine 4.

Solar2D

Solar2D ранее был известен как Corona SDK – это кроссплатформенный инструмент разработки, использующий язык сценариев Lua. Corona Market Place содержит множество плагинов для игр 2D. Движок славится четкой документацией и активным сообществом, а одним из недостатков Solar2D является отсутствие инструментов 3D-моделирования.

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

📱 Как начать разрабатывать мобильные игры для Android?

Основные этапы разработки

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

Идея и план

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

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

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

Выбор языка и инструментов

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

Графика

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

Для создания деталей стоит овладеть основами Photoshop и/или GIMP для 2D, а также 3dsMax и/или Blender для 3D-моделей.

Работа в команде

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

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

Тестирование, запуск и монетизация

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

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

  • Покупки в приложении. Модель Freemium – самый распространенный метод монетизации мобильных игр.
  • Реклама. Во многих играх реклама сочетается с покупками в приложении. Эта стратегия может принести значительный доход.
  • Премиум-версии. Можно предложить игрокам бесплатную демо-версию и попросить заплатить за дальнейшее использование.

Развитие проекта

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

***

Стремительное развитие смартфонов за 10 лет изменило игровую индустрию кардинально. От простых карманных консолей Game Boy мобильные игры эволюционировали до многопользовательских платформ со сложной механикой и интересной визуальной составляющей. Это не должно вас пугать: даже простые проекты в стиле платформеров и казуальных игр могут найти свою аудиторию благодаря доступности и простому управлению.

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

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.spaceavoider.spaceavoider.MainActivity">
    <LinearLayout
        android:id="@+id/gameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_weight="100"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/leftButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="Left" />
        <Button
            android:id="@+id/rightButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="Right" />
    </LinearLayout>
</LinearLayout>

На вкладке Design видно как наш layout будет выглядеть.

Сверху поле в котором будет сама игра, а снизу кнопки управления Left и Right. Про layout можно написать отдельную статью, и не одну. Я не буду на этом подробно останавливаться. Про это можно почитать тут.

Шаг 5. Редактируем MainActivity класс

В первую очередь в определение класса добавляем implements View.OnTouchListener. Определение класса теперь будет таким:

public class MainActivity extends AppCompatActivity implements View.OnTouchListener {

Добавим в класс нужные нам статические переменные (переменные класса):

public static boolean isLeftPressed = false; // нажата левая кнопка
public static boolean isRightPressed = false; // нажата правая кнопка

В процедуру protected void onCreate(Bundle savedInstanceState) {
добавляем строки:

GameView gameView = new GameView(this); // создаём gameView

LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // находим gameLayout
gameLayout.addView(gameView); // и добавляем в него gameView

Button leftButton = (Button) findViewById(R.id.leftButton); // находим кнопки
Button rightButton = (Button) findViewById(R.id.rightButton);

leftButton.setOnTouchListener(this); // и добавляем этот класс как слушателя (при нажатии сработает onTouch)
rightButton.setOnTouchListener(this);

Классы LinearLayout, Button и т.д. подсвечены красным потому что ещё не добавлены в Import.
Чтобы добавить в Import и убрать красную подсветку нужно для каждого нажать Alt+Enter.
GameView будет подсвечено красным потому-что этого класса ещё нет. Мы создадим его позже.

Теперь добавляем процедуру:

public boolean onTouch(View button, MotionEvent motion) {
    switch(button.getId()) { // определяем какая кнопка
        case R.id.leftButton:
            switch (motion.getAction()) { // определяем нажата или отпущена
                case MotionEvent.ACTION_DOWN:
                    isLeftPressed = true;
                    break;
                case MotionEvent.ACTION_UP:
                    isLeftPressed = false;
                    break;
            }
            break;
        case R.id.rightButton:
            switch (motion.getAction()) { // определяем нажата или отпущена
                case MotionEvent.ACTION_DOWN:
                    isRightPressed = true;
                    break;
                case MotionEvent.ACTION_UP:
                    isRightPressed = false;
                    break;
            }
            break;
    }
    return true;
}

Если кто-то запутался ― вот так в результате должен выглядеть MainActivity класс:

package com.spaceavoider.spaceavoider;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
    public static boolean isLeftPressed = false; // нажата левая кнопка
    public static boolean isRightPressed = false; // нажата правая кнопка
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        GameView gameView = new GameView(this); // создаём gameView
        LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // находим gameLayout
        gameLayout.addView(gameView); // и добавляем в него gameView
        Button leftButton = (Button) findViewById(R.id.leftButton); // находим кнопки
        Button rightButton = (Button) findViewById(R.id.rightButton);
        leftButton.setOnTouchListener(this); // и добавляем этот класс как слушателя (при нажатии сработает onTouch)
        rightButton.setOnTouchListener(this);
    }
    public boolean onTouch(View button, MotionEvent motion) {
        switch(button.getId()) { // определяем какая кнопка
            case R.id.leftButton:
                switch (motion.getAction()) { // определяем нажата или отпущена
                    case MotionEvent.ACTION_DOWN:
                        isLeftPressed = true;
                        break;
                    case MotionEvent.ACTION_UP:
                        isLeftPressed = false;
                        break;
                }
                break;
            case R.id.rightButton:
                switch (motion.getAction()) { // определяем нажата или отпущена
                    case MotionEvent.ACTION_DOWN:
                        isRightPressed = true;
                        break;
                    case MotionEvent.ACTION_UP:
                        isRightPressed = false;
                        break;
                }
                break;
        }
        return true;
    }
}

Итак, класс MainActivity готов! В нём инициирован ещё не созданный класс GameView. И когда нажата левая кнопка — статическая переменная isLeftPressed = true, а когда правая — isRightPressed = true. Это в общем то и всё что он делает.

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

Шаг 6. Создаём класс GameView

Теперь наконец-то создадим тот самый недостающий класс GameView. Итак приступим. В определение класса добавим extends SurfaceView implements Runnable. Мобильные устройства имею разные разрешения экрана. Это может быть старенький маленький телефон с разрешением 480×800, или большой планшет 1800×2560. Для того чтобы игра выглядела на всех устройствах одинаково я поделил экран на 20 частей по горизонтали и 28 по вертикали. Полученную единицу измерения я назвал юнит. Можно выбрать и другие числа. Главное чтобы отношение между ними примерно сохранялось, иначе изображение будет вытянутым или сжатым.

public static int maxX = 20; // размер по горизонтали
public static int maxY = 28; // размер по вертикали
public static float unitW = 0; // пикселей в юните по горизонтали
public static float unitH = 0; // пикселей в юните по вертикали

unitW и unitW мы вычислим позже. Также нам понадобятся и другие переменные:

private boolean firstTime = true;
private boolean gameRunning = true;
private Ship ship;
private Thread gameThread = null;
private Paint paint;
private Canvas canvas;
private SurfaceHolder surfaceHolder;

Конструктор будет таким:

public GameView(Context context) {
    super(context);
    //инициализируем обьекты для рисования
    surfaceHolder = getHolder();
    paint = new Paint();

    // инициализируем поток
    gameThread = new Thread(this);
    gameThread.start();
}

Метод run() будет содержать бесконечный цикл. В начале цикла выполняется метод update()
который будет вычислять новые координаты корабля. Потом метод draw() рисует корабль на экране. И в конце метод control() сделает паузу на 17 миллисекунд. Через 17 миллисекунд run() запустится снова. И так до пока переменная gameRunning == true. Вот эти методы:

@Override
public void run() {
    while (gameRunning) {
        update();
        draw();
        control();
    }
}

private void update() {
    if(!firstTime) {
        ship.update();
    }
}

private void draw() {
    if (surfaceHolder.getSurface().isValid()) {  //проверяем валидный ли surface

        if(firstTime){ // инициализация при первом запуске
            firstTime = false;
            unitW = surfaceHolder.getSurfaceFrame().width()/maxX; // вычисляем число пикселей в юните
            unitH = surfaceHolder.getSurfaceFrame().height()/maxY;

            ship = new Ship(getContext()); // добавляем корабль
        }

        canvas = surfaceHolder.lockCanvas(); // закрываем canvas
        canvas.drawColor(Color.BLACK); // заполняем фон чёрным

        ship.drow(paint, canvas); // рисуем корабль

        surfaceHolder.unlockCanvasAndPost(canvas); // открываем canvas
    }
}

private void control() { // пауза на 17 миллисекунд
    try {
        gameThread.sleep(17);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

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

Шаг 7. Создаём класс SpaceBody

Он будет родительским для класса Ship (космический корабль) и Asteroid (астероид). В нём будут содержаться все переменные и методы общие для этих двух классов. Добавляем переменные:

protected float x; // координаты
protected float y;
protected float size; // размер
protected float speed; // скорость
protected int bitmapId; // id картинки
protected Bitmap bitmap; // картинка

и методы

void init(Context context) { // сжимаем картинку до нужных размеров
    Bitmap cBitmap = BitmapFactory.decodeResource(context.getResources(), bitmapId);
    bitmap = Bitmap.createScaledBitmap(
            cBitmap, (int)(size * GameView.unitW), (int)(size * GameView.unitH), false);
    cBitmap.recycle();
}

void update(){ // тут будут вычисляться новые координаты
}

void drow(Paint paint, Canvas canvas){ // рисуем картинку
    canvas.drawBitmap(bitmap, x*GameView.unitW, y*GameView.unitH, paint);
}

Шаг 8. Создаём класс Ship

Теперь создадим класс Ship (космический корабль). Он наследует класс SpaceBody поэтому в определение класа добавим extends SpaceBody.

Напишем конструктор:

public Ship(Context context) {
    bitmapId = R.drawable.ship; // определяем начальные параметры
    size = 5;
    x=7;
    y=GameView.maxY - size - 1;
    speed = (float) 0.2;

    init(context); // инициализируем корабль
}

и переопределим метод update()

@Override
public void update() { // перемещаем корабль в зависимости от нажатой кнопки
    if(MainActivity.isLeftPressed && x >= 0){
        x -= speed;
    }
    if(MainActivity.isRightPressed && x <= GameView.maxX - 5){
        x += speed;
    }
}

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

Шаг 9. Создаём класс Asteroid

Добавим класс Asteroid (астероид). Он тоже наследует класс SpaceBody поэтому в определение класса добавим extends SpaceBody.

Добавим нужные нам переменные:

private int radius = 2; // радиус
private float minSpeed = (float) 0.1; // минимальная скорость
private float maxSpeed = (float) 0.5; // максимальная скорость

Астероид должен появляться в случайной точке вверху экрана и лететь вниз с случайной скоростью. Для этого x и speed задаются при помощи генератора случайных чисел в его конструкторе.

public Asteroid(Context context) {
    Random random = new Random();

    bitmapId = R.drawable.asteroid;
    y=0;
    x = random.nextInt(GameView.maxX) - radius;
    size = radius*2;
    speed = minSpeed + (maxSpeed - minSpeed) * random.nextFloat();

    init(context);
}

Астероид должен двигаться с определённой скорость вертикально вниз. Поэтому в методе update() прибавляем к координате x скорость.

@Override
public void update() {
    y += speed;
}

Так же нам нужен будет метод определяющий столкнулся ли астероид с кораблём.

public boolean isCollision(float shipX, float shipY, float shipSize) {
    return !(((x+size) < shipX)||(x > (shipX+shipSize))||((y+size) < shipY)||(y > (shipY+shipSize)));
}

Рассмотрим его поподробнее. Для простоты считаем корабль и астероид квадратами. Тут я пошёл от противного. То есть определяю когда квадраты НЕ пересекаются.

((x+size) < shipX) — корабль слева от астероида.
(x > (shipX+shipSize)) — корабль справа от астероида.
((y+size) < shipY) — корабль сверху астероида.
(y > (shipY+shipSize)) — корабль снизу астероида.

Между этими четырьмя выражениями стоит || (или). То есть если хоть одно выражение правдиво (а это значит что квадраты НЕ пересекаются) — результирующие тоже правдиво.

Всё это выражение я инвертирую знаком!. В результате метод возвращает true когда квадраты пересекаются. Что нам и надо.

Про определение пересечения более сложных фигур можно почитать тут.

Шаг 10. Добавляем астероиды в GameView

В GameView добавляем переменные:

private ArrayList<Asteroid> asteroids = new ArrayList<>(); // тут будут харанится астероиды
private final int ASTEROID_INTERVAL = 50; // время через которое появляются астероиды (в итерациях)
private int currentTime = 0;

также добавляем 2 метода:

private void checkCollision(){ // перебираем все астероиды и проверяем не касается ли один из них корабля
    for (Asteroid asteroid : asteroids) {
        if(asteroid.isCollision(ship.x, ship.y, ship.size)){
            // игрок проиграл
            gameRunning = false; // останавливаем игру
            // TODO добавить анимацию взрыва
        }
    }
}

private void checkIfNewAsteroid(){ // каждые 50 итераций добавляем новый астероид
    if(currentTime >= ASTEROID_INTERVAL){
        Asteroid asteroid = new Asteroid(getContext());
        asteroids.add(asteroid);
        currentTime = 0;
    }else{
        currentTime ++;
    }
}

И в методе run() добавляем вызовы этих методов перед вызовоом control().

@Override
public void run() {
    while (gameRunning) {
        update();
        draw();
        checkCollision();
        checkIfNewAsteroid();
        control();
    }
}

Далее в методе update() добавляем цикл который перебирает все астероиды и вызывает у них метод update().

private void update() {
    if(!firstTime) {
        ship.update();
        for (Asteroid asteroid : asteroids) {
            asteroid.update();
        }
    }
}

Такой же цикл добавляем и в метод draw().

private void draw() {
    if (surfaceHolder.getSurface().isValid()) {  //проверяем валидный ли surface

        if(firstTime){ // инициализация при первом запуске
            firstTime = false;
            unitW = surfaceHolder.getSurfaceFrame().width()/maxX; // вычисляем число пикселей в юните
            unitH = surfaceHolder.getSurfaceFrame().height()/maxY;

            ship = new Ship(getContext()); // добавляем корабль
        }

        canvas = surfaceHolder.lockCanvas(); // закрываем canvas
        canvas.drawColor(Color.BLACK); // заполняем фон чёрным

        ship.drow(paint, canvas); // рисуем корабль

        for(Asteroid asteroid: asteroids){ // рисуем астероиды
            asteroid.drow(paint, canvas);
        }

        surfaceHolder.unlockCanvasAndPost(canvas); // открываем canvas
    }
}

Вот и всё! Простейшая 2D игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.

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

На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.

На чтение 5 мин Просмотров 55.3к.

Содержание

  1. Приложения для создания игр
  2. Онлайн конструкторы игр и приложений

«Как бы мне хотелось самому создать игру для Андроида!». Кому из нас это не приходило однажды в голову? Создать своё собственное приложение или игру на андроид без знаний программирования — Реально! Достаточно скачать программу или воспользоваться онлайн-сервисом (конструктором) приложений. Конструкторы бывают платные и бесплатные, а так же с возможностью заработка на рекламе, которая будет показываться в ваших приложениях.

Читайте также: ТОП-5 сайтов для продвижения в Google Play.

Приложения для создания игр

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

Draw Your Game1. Draw Your Game (Нарисуй Свою Игру)

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

  1. Нарисуйте мир своей игры на листе бумаги, используя четыре различных цвета (черный, синий, зеленый и красный).
  2. С помощью приложения сфотографируйте свой рисунок.
  3. Подождите 10 секунд, пока DYG превратит рисунок в игру.
  4. Играйте в свою игру, управляя ее персонажем.
  5. Поделитесь своим творчеством с другими пользователями.

Draw Your Game (Нарисуй Свою Игру)

Apper2. Apper (Создай свое приложение)

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

Приложение является бесплатным, но для публикации своего проекта в App Store или Google Play, вам необходимо приобрести платную подписку. Для полноценной работы рекомендуется минимум 1 ГБ оперативной памяти и возможностью загрузки изображений через WiFi.

Apper (Создай свое приложение)

AIDE- IDE for Android Java3. AIDE- IDE for Android Java C++

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

Основные функции:

  • Совместимость с проектами Eclipse.
  • Java / XML и Android SDK.
  • C / C ++ и Android NDK.
  • Java консольные приложения.
  • Синхронизация с Dropbox.

AIDE- IDE for Android Java C++

Epic Game Maker4. Epic Game Maker

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

Основные возможности:

  • Возможность рисовать уровни.
  • 5 различных видов тем.
  • Разнообразная механика.
  • Пиксельное оформление.
  • Сообщество в FaceBook.

Epic Game Maker Создай игру

STRUCKD - 3D Конструктор Игр5. STRUCKD — 3D Конструктор Игр

Объединяет в себе игровое сообщество и продвинутую площадку, в которой можно создавать уникальный 3D мир и обмениваться своими творениями с другими людьми. На выбор доступны жанры, начиная от гоночных игр и заканчивая Tower Defense и Action Puzzlers.

ФУНКЦИИ:

  • 3D игровой конструктор с drag-and-drop.
  • Коллекция из нескольких тысяч созданных другими пользователями игр.
  • Игровое сообщество: ставьте рекорды и поднимайтесь в турнирной таблице.

Struckd - 3D Конструтор Игр

Pocket Code6. Pocket Code

Ещё одна неплохая платформа для создания онлайн игр. Что можно делать в Pocket code? Да всё, что угодно: создавать, редактировать, перемешивать программы Catrobat в лего-среде программирования, а также делиться своими творениями со своими друзьями.

Чтобы начать разрабатывать собственные игры, анимацию, интерактивные произведения искусства, музыкальные клипы и другие приложения непосредственно для вашего телефона или планшета, достаточно скачать приложение в Play Market (пока доступна лишь такая мобильная версия) и приступить к делу.

Pocket Code скриншот

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

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

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

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

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

Содержание

  • Создаем игру на Android
    • Способ 1: Онлайн-сервисы
    • Способ 2: Программы для создания игр
    • Способ 3: Среда разработки
  • Вопросы и ответы

Как создать игру на Андроид

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

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

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

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

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

Перейти на официальный сайт AppsGeyser

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

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

  6. Ознакомьтесь с описанием жанра приложения и переходите к следующему шагу.
  7. Ознакомиться с описанием игры в AppsGeyser

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

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

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

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

  16. Назовите свою игру и переходите далее.
  17. Название игры в AppsGeyser

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

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

    Lumpics.ru

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

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

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

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

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

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

Подробнее: Выбираем программу для создания игры

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

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

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

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

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

Подробнее: Руководство по созданию игр в Unity

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

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

Интерфейс сайта GeekBrains

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

Перейти на сайт GeekBrains

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

Интерфейс сайта Javarush

Перейти на сайт JavaRush

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

Среда разработки Android Studio

Перейти на сайт Android Studio

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

Подробнее:
Выбираем среду программирования
Как написать программу на Java

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

Закрыть
Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Содержание

  • Выбираем способ разработки 
  • Что потребуется для создания игры? 
  • Выбираем жанр 
  • Выбираем движок 
  • Этапы разработки 
  • Заключение 

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

Выбираем способ разработки 

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

  • Онлайн на специальных сайтах. Существует огромное количество ресурсов в сети Интернет, предлагающих создание собственной игры на базе предлагаемых шаблонов. От пользователя может даже не потребоваться регистрация на сайте. Для создания игровой сцены потребуется подобрать персонажей, настроить окружение, добавить объекты для взаимодействия, а также использовать определенный сценарий и установить необходимые дополнительные опции. Для данного метода не потребуется тратить много времени и глубокие познания языков программирования. Однако же в этом случае и не получится создать уникальный компонент, так как в распоряжении исключительно готовые инструменты. 
  • Если вы желаете создавать игры без подключения к Интернет или вам необходимо большее количество шаблонов, то в таком случае оптимальным будет выбор в пользу специализированных программ, принцип действия которых аналогичен онлайн-сервисам, но предоставляется выбор большего количества стандартных компонент. При желании можно расширить функциональность софта за счет установки дополнительных шаблонов или кастомизации графики. 
  • Использование специальных сред разработки подойдет для опытных программистов, которые умеют писать на языках C, Python, Java и других. Этот способ позволяет сделать игру на Андроид практически полностью своими руками с нуля. Для ускорения процесса создания можно вставлять готовые стандартные блоки кода. То есть в средах разработки нет никаких ограничений в полете фантазии, вы сможете создать свою игру в полном соответствии с разработанным сценарием. Затраты времени на разработку будут в несколько раз превышать предыдущие 2 способа, но оно того стоит. 

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

Что потребуется для создания игры? 

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

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

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

Выбираем жанр 

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

  • Головоломки. Они помогают развивать мышление и реакцию, поскольку решения нужно принимать быстро и грамотно. Данный тип игр считается одним из самых распространенных благодаря тому, что они имеют минимальные требования к аппаратному и программному обеспечению, а также интересны широкому кругу пользователей. Обязательно нужно продумать механики взаимодействия персонажа с предметами или отдельных объектов. 
  • Казуальные игры. Ориентированы на игроков всех возрастов, так как позволяют проходить уровни на одном дыхании, наслаждаясь локациями. Пользователь управляет персонажем и выполняет задачи, преимущественно сбор каких-то предметов или убивая врагов, а при выполнении миссий переходит на следующий уровень. Геймплей захватывающий за счет качественной графики и незатейливого сюжета. 
  • MMORPG. Многопользовательские онлайн-игры, происходящие на определенных картах или в открытом игровом мире, где основной сюжет связан с непосредственным взаимодействием с персонажами, управляемыми другими пользователями. Преимущество данного типа игр как раз в этом и заключается, что влияние ИИ минимально, а поведение других геймеров совершенно непредсказуемо. 
  • Battle Royale. Целью является победа над противниками на выбранной локации, которая со временем уменьшается и заставляет врагов сближаться для финального сражения. То есть выигрывает последний выживший. 
  • MOBA. Совмещает в себе элементы стратегии и экшена. Игрок управляет персонажем, который должен построить свою базу, создать юнитов, а затем победить противников.  

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

Выбираем движок 

Прежде чем создать игру на Андроид необходимо подобрать движок, на котором она будет разрабатываться: 

  • Unity. Простой движок с широкой функциональностью, который сможет освоить любой желающий. Преимуществом является разработка приложений, не привязанных к конкретной операционной системе, так как в них можно будет поиграть и на других ОС. Среда разработки отлично задокументирована, поэтому при возникновении любых вопросов вероятность найти ответ максимальная. 
  • Unreal Engine. Движок с потрясающими возможностями в графике, который реализован на C++. Благодаря использованию передовых технологий можно создавать конкурентные мобильные игры. 
  • Solar2D. Движок, в котором сценарии прописываются при помощи языка Lua. В нем есть множество стандартных плагинов и инструментов для разработки. Недостатком является отсутствие возможности создания 3D моделей. 

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

Этапы разработки 

Создание игр выполняется в несколько этапов: 

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

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

Заключение 

Сфера гейм девелопмента для Андроид является одним из самых популярных направлений в программировании. Поэтому стоит попробовать свои силы в создании уникального игрового проекта.

img

Программы для создания игр на 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.

Скриншот программы:

Программа для создания игр на Android - Unity 3D

Видео-обзор:

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

Скачать программу для создания игр на Android можно по ссылке:

Скачать Unity 3D


Game Maker – программа для создания игр

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

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

Game Maker отлично подходит для создания пиксельных 2D игр на Android.

Скриншот движка:

Движок для создания игр на Android - Game Maker

Скачать программу для создания игр на Android на русском языке можно по ссылке:

Скачать Game Maker


Unreal Engine 4 — программа для создания игр

Unreal Engine 4 – мощная бесплатная платформа для создания 3D и 2D игр. Отлично подходит как для разработки игр на ПК, так и для мобильных устройств: телефонов, планшетов под управлением Android и IOS. Имеет локализацию на русском языке.

На основе предыдущей версии движка — Unreal Engine 3 были созданы такие игры, как: Batman: Arkham City, Mass Effect, Mortal Kombat.

Скриншот программы:

Создание игры - программа Unreal Engine 4

Видео-обзор основных возможностей:

Скачать программу для создания игр на Android на русском языке можно по ссылке:

Скачать Unreal Engine 4


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

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

Не нашли ответ? Тогда воспользуйтесь формой поиска:

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

Методы создания

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

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

  1. Онлайн сервисы позволяют заниматься разработкой прямо в браузере. Предлагают пользователям готовые и рабочие шаблоны для работы с разнообразными игровыми жанрами. Требуют минимального количества навыков в программировании.
  2. Программы обладают более подробным функционалам. Аналогично с онлайн сервисами предлагают набор готовых шаблонов и скриптов. Требуют определенных знаний в программировании, поскольку понадобится писать код для каждого действия.
  3. Среда разработки – сложный инструмент, требующий навыков в программировании. Здесь необходимо знать конкурентный язык программирования, на котором будет писаться игра. Без специальных курсов и знаний написать игры, например, на языке Java невозможно. Для самоучек придуманы специализированные форумы. Наиболее популярный – GeekBrains.

Идея и сценарий

Если начинающий автор думает, что идея и сценарий – это атрибуты только крупных ААА проектов, то он глубоко заблуждается. Рассмотрим утверждение на примере Subway Surfer:

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

Чтобы сделать игру на Андроид необходимо, чтобы игровой процесс отвечал на вопросы:

  1. Стороны конфликта: пример Angry Birds – птицы и свиньи.
  2. Как решается этот конфликт – птицы летят в свиней на рогатке.
  3. Где разворачиваются основные события?

Пример сценария для ранера на Android: главный герой – белка, которая готовится к зимней спячке. Ее задача, насобирать, как можно больше припасов на зиму. В качестве преград выступают деревья и другие лесные жители. Разумеется, чем сложнее игра, тем больше вопросов задается для ее создания. Но вопросы «зачем», «почему» и «как» применяются для любого проекта.

Объектная модель и спецификации

Увлекательный геймплей и яркая графика – это не единственные факторы успешного приложения. Немаловажными являются такие пункты, как объектная модель и спецификации. Представленные параметры выполняют две важнейшие функции:

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

Пример объектной модели игровой сущности:

  • Основной раздел – предметы:
    • Специальная классификация – оружие:
      • Вид № 1 – меч;
      • Вид № 2 – лук.

Контент и интерфейс

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

  1. Использовать интуитивно понятные значки (меню настроек – шестеренки).
  2. Применять минималистские объекты, которые не будут отвлекать от игры.
  3. Структурировать информацию.

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

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

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

Выбор движка

Игровой движок – это набор инструментов, упрощающих разработку игр. Главное преимущество движка – автоматизация наиболее используемых функций игры. Разумеется, написать игровой движок можно самостоятельно, но этот процесс крайне трудоемкий и затратный по времени. Каждый игровой движок подходит для реализации тех или иных целей.

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

  • Mages Engine – ориентирован на мини-игры, многопользовательские ММОРПГ и пошаговые стратегии. Реализация проектов осуществляется при помощи GUI и мощного API.
  • Catcake – специализируется на локальном мультиплеере, где присутствует функция разделения экрана. Поддерживает отображение трехмерных объектов. Подходит для проектов любого жанра.
  • Unreal Engine – еще один популярный движок, регулярно используемый Epic Games (создатели Unreal Tournament 2016, Gears of War 3, Fortnite и других). Основное направление – консольные и компьютерные видеоигры. Одна из главных фишек Unreal Engine – качественная графика. Однако и на мобильных платформах уже выпущены успешные приложения: Fortnite и PUBG.Игровой движок
  • AndEngine – бесплатный движок, ориентированный на 2D. Обладает открытым исходным кодом. Распространяется свободно. Как и другие популярные платформы использует OpenGL для рендеринга и Box2D для физики.
  • Phaser — это фреймворк для разработки HTML5. Базируется на библиотеке PIXI.js. Поддерживает рендеринг в Canvas и WebGL, анимированные спрайты, и т.п.

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

Процесс создания игры

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

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

  1. Создаем основной фон – локацию, где будут протекать основные события.
  2. Делаем главного персонажа: рисуем самостоятельно или загружаем готовый шаблон.
  3. Проектируем предметы для взаимодействия: монетки, ловушки, враги и т.п.
  4. Программируем событие, которое случится при взаимодействии с предметом: наступил на ловушку – игра окончена, подобрал монетку – путь продолжается.

Для того чтобы показать различие между игровыми жанрами рассмотрим более сложный пример. Теперь используем конструктор Unity 3D, а игровой жанр меняем на ККИ:

  1. Первый пункт остается неизменным – создание фона для будущего проекта.
  2. Место главного персонажа занимают карты, их намного больше, поэтому работа более время затратная.
  3. Проектируем логические взаимодействия между картами (самый сложный этап).
  4. Определяем количество игроков.
  5. Конвертируем игровое меню из трехмерного измерения в двухмерное пространство.
  6. Определяем условия, при которых матч будет считаться завершенным.

Лучшие конструкторы

Construct 2 и 3

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

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

Construct 3 – улучшенный движок, который планомерно вытесняет Construct 2. Расширение привычных опций и предоставление новых функции – преимущества обновленной версии. Однако в этой ревизии отсутствует бесплатная подписка. Зато имеется обратная совместимость с предыдущей версией утилиты.Запуск конструктора

Clickteam Fusion

Clickteam Fusion – распространяется в трех вариантах: «бесплатная версия», «обычная вариация», и «профессиональная ревизия». Разумеется, что чем разнообразнее функционал версии, тем выше ее цена.

Clickteam Fusion – это мультиплатформенный движок, позволяющий создавать игры для различных платформ, а также заниматься их портированием. Основная специализация – 2D. Однако существует возможность писать и в 3D. Именно на этом движке был написан Five nights at Freddy’s (Пять ночей с Фредди).Clickteam Fusion

Stencyl

Движок Stencyl – это еще один представитель конструкторов, предъявляющие минимальные требования к знаниям программирования. Презентованный движок – мультиплатформенный инструмент, позволяющий писать игры, как на мобильные, так и на старшие платформы. Обладает интерфейсом Drag & Drop.

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

Game Maker

GameMaker – движок, специализирующийся на создании двухмерных проектов, которые являются популярными на мобильных платформах. Движок ориентирован на начинающих разработчиков, обладающих базовым набором знаний. Посредством GameMaker разрабатывался Hotline Miami и прочие 2D шедевры. Из очевидных плюсов движка выделяют:

  • интеграцию с сервисом Steam;
  • удобную и интуитивно понятную рабочую среду;
  • наличие собственного упрощенного языка Game Maker Language.Game Maker

Unity 3D

Unity – наиболее популярный движок среди разработчиков. Представленный движок – самая гибкая система в сегодняшнем списке. Здесь удобно работать с 2D и 3D проектами. На этой платформе разрабатывались видеоигры для различных систем:

  • PS 3 – Cuphead, Escape from Tarkov, Life Is Strange: Before the Storm.
  • Android и IOs – Angry Birds 2, Hitman Go, Heartstone.
  • PC – Pillars of Eternity, Ori and the Blind Forest.

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

Теперь наглядно сравним вышеперечисленные конструкторы.

Конструктор Цена Преимущества
Construct 2 и 3 Бесплатная/199 $ Мультиплатформа, оперативность обработки данных, простой внутренний язык.
Clickteam Fusio 148 $ Создание прототипов, минимальные требования к программированию, создание полноценного коммерческого продукта.
Stencyl Бесплатно/99 $/199 $ Интерфейс Drag & Drop, ориентированность на 2D игры, имитация панели управления Photoshop.
Game Make Бесплатно Мультиплатформа, регулярные обновления, активное пользовательское сообщество, простая панель управления.
Unity 3D Бесплатная Мультиплатформа, вариативность игровых настроек, готовые шаблоны для создания игр, популярность среди разработчиков, открытая система

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

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

Онлайн сервис AppsGeyser

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

Разберем создание игры в качестве примера:

  1. Зайдите на сайт AppsGeyser и нажмите на кнопку «Создать».
  2. Откроется окно жанров. Выберите наиболее подходящий жанр.Создание проекта
  3. Далее последует краткое описание выбранного жанра (в нашем случае ранер).Описание жанра
  4. Следующий шаг – загрузка изображений и анимации. Можно создать их самостоятельно или загрузить шаблон из интернета.Загрузка изображений
  5. Создание врагов – еще один шаг. Потребуется указать их число, параметры здоровья и загрузить изображение недруга.Создание врагов
  6. Теперь перейдем в окно создания фона. Здесь имеются заготовленные шаблоны. Если они не понравятся, то фон можно создать самостоятельно.Создаем фон
  7. Музыкальное сопровождение – еще один фактор успешной видеоигры. Разработчики утилиты предлагают список музыки, шрифтов, не защищенных авторских правом. Весь контент абсолютно бесплатный.
  8. Все остальные пункт касаются визуального оформления – иконки, описания, и т.п.Визуальное оформление

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

Лучшие приложения

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

Draw Your Game

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

  1. Нарисовать уровень при помощи четырех цветов.
  2. Открыть утилиту на смартфоне и сфотографировать изображение.
  3. Подождать, пока программа обработает информацию.
  4. Выбрать персонажа, который пробежится по созданным локациям.
  5. Готово! При желании «шедевром» можно поделиться с друзьями.Draw Your Game

Геймплей, созданный при помощи Draw Your Game, представляет аркаду, где герою необходимо найти выход из комнаты. При этом все нарисованные объекты будут динамичными и доступными для взаимодействия.

Apper

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

AIDE- IDE for Android Java C++

Предоставляет пользователям интегрированную среду разработки, с помощью которой открывается возможность делать приложения для Андроид платформы прямо из смартфона. Для ознакомления с утилитой AIDE- IDE for Android Java C++ потребуются азы программирования или просмотр видео уроков.AIDE- IDE for Android Java C++

Createrria 2 craft your games

Конструктор видеоигр внутри аркады. Создатели предлагают интересный инструмент, с помощью которого каждый желающий сможет делать игры за несколько минут. Полученным результатом можно будет поделиться с друзьями. Основные особенности Createrria 2 craft your games:

  1. Ключевая фишка – возможность рисовать уровни самостоятельно.
  2. Пять встроенных тем для реализации идей.
  3. Вариативная механика при создании.
  4. Колоритное пиксельное оформление.
  5. Официальные сообщества в соц. сетях.Createrria 2 craft your games

Sketch Nation Create

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

Пример создания игры

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

Геймплей

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

Начало разработки

«Гоночный тетрис» состоит из двух простых сцен: главное меню и окно геймплея. Первым делом займемся меню. Для него необходимо использовать элемент управления GUI – стандартный инструмент платформы.Окно программы

Для фона используем спрайт под названием «background». В примере применяется серый цвет. При желании цветовая палитра изменяется.Добавление фона

Второй шаг – создание скрипта «menu.cs». Путь команды: Правой кнопкой мыши на строке скрипта – «Create» – «C# Script». Не забудьте повесить его на «background». Содержимое скрипта выглядит следующим образом:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

public class menu : MonoBehaviour {
  
  public GUIStyle mystyle; //объявляется для того чтобы изменять начертание GUI компонентов(шрифт, размер и.т.п.)
  string score; //переменная для хранения пройденной дистанции
  void Start () 
  {
    StreamReader scoredata = new StreamReader (Application.persistentDataPath + "/score.gd"); //создание файловой переменной
    score = scoredata.ReadLine (); //чтение строки
    scoredata.Close (); //закрытие файловой переменной
  }
  
  
  void Update () {
  
  }
  void OnGUI(){
    GUI.Box (new Rect (Screen.width*0.15f, Screen.height*0.8f, Screen.width*0.7f, Screen.height*0.1f), "MAX DISTANCE:"+score,mystyle); //создаем небольшое окошко для показа пройденного расстояния
    if (GUI.Button (new Rect (Screen.width*0.15f, Screen.height*0.25f, Screen.width*0.7f, Screen.height*0.1f), "Start game",mystyle)) //создаем кнопку для запуска игровой сцены
    {
      Application.LoadLevel(1);//Загрузка игровой сцены
    }
    if (GUI.Button (new Rect (Screen.width*0.15f, Screen.height*0.4f, Screen.width*0.7f, Screen.height*0.1f), "Exit",mystyle)) //создаем кнопку для выхода из игры
    {
      Application.Quit();//Выход из игры
    }
  }
}

В конечном итоге на экране должно получить примерное такое окно:Результат работы

Не забывайте, что в программе имеется функция редактирования текстовых элементов при помощи MyStyle.

Игровое окно

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

В их число входят:

  • автомобиль;
  • бензобак;
  • дорога.

Рассмотрим создание каждого элемента в отдельности.

Дорога

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

Приступим:

  1. Загружаем спрайт с трассой на сцену с гейплеем, подгоняя ее по размерам камеры.спрайт с трассой
  2. Далее добавляем в качестве дочерних объекта внутри дороги четыре блока с преградами и иконку бензобака.Установка блоков
  3. Не забудьте прибавить к ним Box Collider 2D. Дополнительно требуется отметить иконку Is Triger, чтобы объекты пересекались с машиной.Отмечаем иконку
  4. Создайте скрипт под названием «moveroad.cs» и повесьте его на трассу. Далее прописываем код:
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;
    public class moveroad : MonoBehaviour {
    
      public GUIStyle mystyle;//создание стиля
      int f,fuelst;
      float score=0,speed=-0.2f,data,fuelpos;// переменные для хранения расстояния, скорости и рекорда
      public GameObject block;// игровой объект для размещения блока
      public GameObject block1;
      public GameObject block2;
      public GameObject block3;
      public GameObject fuel;
      bool turbotriger=false;
    
      void Start () 
      {
        StreamReader scoredata = new StreamReader (Application.persistentDataPath + "/score.gd");
        data = float.Parse(scoredata.ReadLine ());//чтение с файла информации о рекорде
        scoredata.Close ();
      }
      
    
      void Update () 
      {
        transform.Translate (new Vector3 (0f,speed,0f));//движение дороги с заданной выше скоростью
        score = score + (speed*-10);// подсчет расстояния
        if (transform.position.y < -19f) // если дорога уходит за пределы камеры то она "теле портируется" вверх
        {
          transform.position=new Vector3(0f,33.4f,0f);//новая позиция дороги
          block.transform.position=new Vector3(10.15f,block.transform.position.y,block.transform.position.z); 
          block1.transform.position=new Vector3(8.42f,block1.transform.position.y,block1.transform.position.z); 
          block2.transform.position=new Vector3(6.62f,block2.transform.position.y,block2.transform.position.z); 
          block3.transform.position=new Vector3(4.95f,block3.transform.position.y,block3.transform.position.z); 
          fuel.transform.position=new Vector3(11.86f,fuel.transform.position.y,fuel.transform.position.z);
                            //скрытие за пределы камеры всех препятствий(блоков)
          f = Random.Range (0, 5);//случайное появление на дороге 1-го из 4-х блоков или канистры с бензином
          switch (f) 
          {
          case 0:block.transform.position=new Vector3(2.40f,block.transform.position.y,block.transform.position.z); break;
          case 1:block1.transform.position=new Vector3(0.90f,block1.transform.position.y,block1.transform.position.z); break;
          case 2:block2.transform.position=new Vector3(-0.80f,block2.transform.position.y,block2.transform.position.z); break;
          case 3:block3.transform.position=new Vector3(-2.35f,block3.transform.position.y,block3.transform.position.z); break;
          case 4:
            fuelst=Random.Range(0,4);
            if(fuelst==0){fuelpos=2.40f;}
            if(fuelst==1){fuelpos=0.90f;}
            if(fuelst==2){fuelpos=-0.80f;}
            if(fuelst==3){fuelpos=-2.35f;}
            fuel.transform.position=new Vector3(fuelpos,fuel.transform.position.y,fuel.transform.position.z);
            break;
          }
          if (score>data)// если текущее пройденное расстояние превышает то что записано в файле рекорда то идет обновление данных
          {
            StreamWriter scoredata=new StreamWriter(Application.persistentDataPath + "/score.gd");//создаем файловую переменную для хранения пройденного расстояния
            scoredata.WriteLine(score);//записываем новое значение в файл
            scoredata.Close();//закрываем файловую переменную
          }
        }
        
      }
      void OnGUI(){
        GUI.Box (new Rect (0, 0, Screen.width, Screen.height*0.05f), "Distance(m): " + score,mystyle);//создаем окно для подсчета расстояния
      }
    }

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

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

Автомобиль

Киньте спрайт машины на сцену.Добавляем авто

Установите авто в любое место на трассе. Создайте скрипт carcontroller.cs и повести его на машину. Ниже находится содержимое скрипта:

using UnityEngine;
using System.Collections;
using UnityStandardAssets.CrossPlatformInput;

public class carconroller : MonoBehaviour 
{

  void Start () 
  {

  }
  
  
  public void Update () 
  {
    if (transform.rotation.z !=0) //проверка столкновения коллайдера автомобиля и препятствия, при столкновении происходит загрузка меню
    {
      Application.LoadLevel (0);
    }
    
  }
  }
  public void OnGUI()
  {
    if (GUI.RepeatButton (new Rect (Screen.width*0.1f, Screen.height*0.9f, Screen.width*0.2f, Screen.height*0.08f), "L")) //создаем кнопку для движения влево
    {
      if (transform.position.x > -2.4f)
      {
        transform.Translate (new Vector3 (-0.05f, 0f, 0f));
      }
    }

    if (GUI.RepeatButton (new Rect (Screen.width*0.7f, Screen.height*0.9f, Screen.width*0.2f, Screen.height*0.08f), "R")) //создаем кнопку для движения вправо
    {
      if (transform.position.x < 2.4f)
      {
        transform.Translate (new Vector3 (0.05f, 0f, 0f)); 
      }
    }
  }

}

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

Бензобак

Для создания показателя наполненности бензобака необходимо использовать одинаковые спрайты разных цветовДобавляем спрайты

Сделайте зеленый спрайт дочерним. Следующий аналогичен с предыдущими пунктами: создать скрипт (fuelscript.cs) и повесить его на бензобак (fuel) с таким содержанием:

using UnityEngine;
using System.Collections;

public class fuelscript : MonoBehaviour {

  public GameObject fuelall;
  float mytimer=100f;// задание плавающего числа
  // Use this for initialization
  void Start () 
  {

  }
  void Update () 
  {
    mytimer = 100f;
    mytimer -= Time.deltaTime;//изменения числа с течением времени
    if (mytimer/mytimer==1f) //проверка на период времени в 1 секунду
    {
      fuelall.transform.position=new Vector3(fuelall.transform.position.x-0.0011f,fuelall.transform.position.y,fuelall.transform.position.z);
      fuelall.transform.localScale = new Vector3(fuelall.transform.localScale.x-0.001f, 1, 1);
                        //выше идет сдвижение влево и уменьшение по ширине зеленой полосы для имитации шкалы
    }
    if (fuelall.transform.localScale.x < 0) //если шкала исчезла то загрузка идет загрузка главного меню 
    {
      Application.LoadLevel(0);
    }
  }
}

Зеленый спрайт

Трасса в нашем меню называется road183, а ее копия – road183(1). В дочерний объект fueltrack добавьте скрипт, отвечающий за восполнение бензобака при его контакте с автомобилем. Следующим шагом будет создание скрипта triger.cs. Повесьте его на fueltrack в каждой трассе. И отметьте объект, как Is Triger с таким кодом:

using UnityEngine;
using System.Collections;

public class triger : MonoBehaviour {


  public GameObject fuel;//добавляем сюда greenfuel
  // Use this for initialization
  void Start () {
  
  }
  
  // Update is called once per frame
  void Update () {

  }
  void  OnTriggerEnter2D(Collider2D col)
  {
    if (col.gameObject.name == "playercar") //проверка пересечения автомобиля и объекта fuel
    {
      fuel.transform.position=new Vector3(0,fuel.transform.position.y,fuel.transform.position.z);
      fuel.transform.localScale = new Vector3(1, 1, 1);
                        //восстановление у объекта fuel стандартных значений
    }
  }


}

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

  • Как делать мультики на телефоне
  • Как делать монтаж видео на телефоне
  • Как делать метрику на телефоне детскую
  • Как делать мемы на телефоне
  • Как делать мангу на телефоне