Пишем игру на android: Пишем игру для Android. Часть 1

Содержание

Android: Игры

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Разработка типичной игры

Красивое меню для игры

Красивое оформление для игры

Свой шрифт картинками

Крестики-нолики

Судоку

Memoria — игра для тренировки памяти (часть 1)

Memoria — игра для тренировки памяти (часть 2)

Наряди робота

Арифметическая игра

Виселица

Бросаем кости

Тактическая игра про цифры «ПлюсМинус»

Однорукий бандит

Лабиринт

Повтори

Пятнашки (Kotlin)

Игры с клубком

View

Начинаем игру с центра

Катаем клубок по комнате

Отражаемся от всех стенок

Добавляем кнопки

Гоняем клубок с акселерометром

Центрированный текст внутри круга

SurfaceView

Используем SurfaceView

Касания экрана

Спрайт — первое знакомство

Движение спрайта

Используем отдельные спрайты

Анимация спрайта

Независимый модуль для работы с спрайтами

Столкновения

Арканоид

Найди чёрного кота в тёмной комнате

Из пушек да по воробьям

Аркада. Люк

Звёздные войны

Пинг-понг

Breakout

Параллакс

Змейка

Создаём карточную игру (View)

Счастливая девятка

Счастливая девятка. Часть вторая

Столкновения (Kotlin)

Прямоугольник и точка

Столкновение двух прямоугольников

Точка и окружность, окружность и окружность

Столкновение окружности с прямоугольником

Столкновение двух линий

libGDX

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

Раздел, посвящённый данному фреймворку

Open Source

Игры для изучения.

Сапёр

Chase Whisply

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

Исходники на Гитхабе

2048

Игра 2048, написанная на Javascript, очень быстро стало популярной. Это порт игры для Android.

Исходники для Android

iGo

Японская игра Го — idunnololz/igo: Go app I made during a road trip

Lights Out

Логическая игра Lights Out, в которой нужно выключить все лампочки. Нажимая на кнопку, вы меняете состояние соседних кнопок на противоположное.

TiltMazes

Логическая игра — нужно провести шарик через лабиринт на базу. Шарик может остановиться, только натолкнувшись на препятствие (убиться об стену). Реагирует на наклоны экрана (опция отключаема).

Исходники: http://code.google.com/p/tiltmazes/

Колыбель Ньютона

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

newtonscradle — Android app to model the physics of Newton’s Cradle — компьютерная модель колыбели.

Vector Pinball

dozingcat/Vector-Pinball — пинбол для Android. Автором игры является Brian Nenninger под ником dozingcat. Наш человек.

Asqare

Популярный тип игры, когда надо выстраивать в один ряд одинаковые фигуры.

Старый адрес — https://code.google.com/hosting/moved?project=asqare. Сейчас игрушка переехала на другой адрес.

Реклама

Как написать игру под Android за 15 дней. История создания Mega Flood-It. Часть первая

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

День 0
15 декабря 2016 года. После обеда захотелось немного полежать и скоротать время за игрой на телефоне. Динамические игры я не очень люблю, хотелось чего-то простого, ведь мой любимый жанр игр — головоломки и логические игры. И тут я вспомнил про старую добрую Flood-It. То, что нужно!
Первая игра в выдаче маркета была неплохой, но интерфейс был не очень приятным, попросту уставали глаза. Стали интересны другие реализации. Вторая игра была с обилием рекламы и ничего хорошего из себя не представляла. В третьей с графикой было всё нормально, но после каждого проигрыша прогресс начисто сбивался и нужно было проходить одни и те же уровни заново. Игры на движках типа Unity я даже не устанавливал, во-первых, писать логическую игру на таком движке это явно перебор, а во-вторых, на моей Sony Xperia Pro не было памяти для установки таких больших игр.

В общем, игр Flood-It в маркете было много, но той, которую требовала душа, не было. И тогда я решил, что сделаю лучшую игру Flood-It: огромное множество уровней, смена стилей, ночная тема и статистика — вот те самые важные для моей души критерии.

День 1
Разработка началась с запуска Android Studio и создания проекта. Уже тогда пронеслась мысль, а успею ли я реализовать задуманное до нового года? В запасе было ещё две недели, так что я не стал расписывать и продумывать всё до мелочей, а сломя голову принялся писать код, проектируя на ходу. Идея была следующей: как можно быстрее написать рабочий прототип, а дальше уже просто наращивать функционал.

Начать решил с модели, чтобы всё работало просто «в памяти», а потом уже к этой модели прикрутить вид. Создал класс Board — игровая доска:

  1. public class Board {

  2.     private final int[][] board;

  3.     private int maxColors;

  4.  

  5.     public Board generate(BoardGenerator generator) {

  6.         generator.reinit();

  7.         final int size = board.length;

  8.         for (int y = 0; y < size; y++) {

  9.             for (int x = 0; x < size; x++) {

  10.                 board[y][x] = generator.generate(maxColors);

  11.             }

  12.         }

  13.         return this;

  14.     }

  15.  

  16.     public int getCellAt(int x, int y) { /* .. */ }

  17.  

  18.     public Board updateAt(int x, int y, int color) { /* .. */ }

  19.  

  20.     public int fill(int color) {

  21.         int cell = getCellAt(0, 0);

  22.         if (cell != color) {

  23.             return fill(0, 0, cell, color);

  24.         }

  25.         return 0;

  26.     }

  27.  

  28.     private int fill(int x, int y, int prevColor, int color) {

  29.         if ( (x < 0) || (y < 0) || (x >= board.length) || (y >= board.length) ) {

  30.             return 0;

  31.         }

  32.         int filled = 0;

  33.         if (board[x][y] == prevColor) {

  34.             board[x][y] = color;

  35.             filled++;

  36.             filled += fill(x — 1, y, prevColor, color);

  37.             filled += fill(x + 1, y, prevColor, color);

  38.             filled += fill(x, y — 1, prevColor, color);

  39.             filled += fill(x, y + 1, prevColor, color);

  40.         }

  41.         return filled;

  42.     }

  43. }

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

  1. public class BoardGenerator {

  2.  

  3.     private final long seed;

  4.     private Random random;

  5.  

  6.     public BoardGenerator(long seed) {

  7.         this.seed = seed;

  8.         reinit();

  9.     }

  10.  

  11.     public void reinit() {

  12.         random = new Random(seed);

  13.     }

  14.  

  15.     public int generate(int max) {

  16.         return random.nextInt(max);

  17.     }

  18. }

Пока что это просто обёртка над классом Random, но проще оперировать сущностью BoardGenerator, чем Random. Ещё я создал класс Palette, обозначающий палитру, которую затем можно было бы менять в настройках:

  1. public class Palette {

  2.  

  3.     private final int[] colors;

  4.  

  5.     public int getColor(int index) { /* .. */ }

  6. }

Этих классов уже было достаточно, чтобы можно было играть, вызывая методы, так что я принялся за вид. Экран должен делиться на две логические части: игровое поле — квадрат размером NxN и панель с цветными кнопками, которые будет нажимать игрок, делая ход.

Игровое поле я сделал в виде вьюшки на канвасе:

  1. public class BoardView extends View {

  2.  

  3.     private Board board;

  4.     private Palette palette;

  5.  

  6.     @Override

  7.     protected void onDraw(Canvas canvas) {

  8.         if (isInEditMode()) {

  9.             canvas.drawColor(Color.LTGRAY);

  10.             return;

  11.         }

  12.         if (board == null) return;

  13.         if (palette == null) return;

  14.  

  15.         int size = board.getBoardSize();

  16.         int[] colors = palette.getColors();

  17.         int cellSize = Math.min(canvas.getWidth(), canvas.getHeight()) / size;

  18.         for (int y = 0; y < size; y++) {

  19.             for (int x = 0; x < size; x++) {

  20.                 paint.setColor(colors[board.getCellAt(x, y)]);

  21.                 int left = x * cellSize;

  22.                 int top = y * cellSize;

  23.                 canvas.drawRect(left, top, left + cellSize, top + cellSize, paint);

  24.             }

  25.         }

  26.     }

  27. }

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

  1. public class ButtonsManager {

  2.  

  3.     private static final int FIRST_ID = 1000;

  4.     private View[] buttons;

  5.  

  6.     private ButtonsManager(ViewGroup layout) {

  7.         int childCount = layout.getChildCount();

  8.         buttons = new View[childCount];

  9.         for (int i = 0; i < childCount; i++) {

  10.             buttons[i] = layout.getChildAt(i);

  11.             buttons[i].setId(FIRST_ID + i);

  12.         }

  13.     }

  14.  

  15.     public ButtonsManager maxColors(int max) {

  16.         for (int i = 0; i < max; i++) {

  17.             buttons[i].setVisibility(View.VISIBLE);

  18.         }

  19.         for (int i = max; i < buttons.length; i++) {

  20.             buttons[i].setVisibility(View.GONE);

  21.         }

  22.         return this;

  23.     }

  24.  

  25.     public ButtonsManager palette(Palette palette) {

  26.         for (int i = 0; i < buttons.length; i++) {

  27.             buttons[i].setBackgroundColor(palette.getColor(i));

  28.         }

  29.         return this;

  30.     }

  31.  

  32.     public ButtonsManager listener(ColorButtonListener listener) {

  33.         View.OnClickListener clickListener = v -> {

  34.             listener.onClick(v, v.getId() — FIRST_ID);

  35.         };

  36.         for (View button : buttons) {

  37.             button.setOnClickListener(clickListener);

  38.         }

  39.         return this;

  40.     }

  41. }

  42.  

  43. public interface ColorButtonListener {

  44.     void onClick(View v, int index);

  45. }

Теперь кое-как связываем модель и вид:

  1. public class MainActivity extends AppCompatActivity {

  2.  

  3.     @Override

  4.     protected void onCreate(Bundle savedInstanceState) {

  5.         final int maxColors = 6;

  6.         BoardGenerator generator = new BoardGenerator();

  7.         Palette palette = new Palette(

  8.                 getResources().getIntArray(R.array.standardPalette));

  9.         Board board = Board.create(8).maxColors(maxColors).generate(generator);

  10.         BoardView boardView = (BoardView) findViewById(R.id.board);

  11.         boardView.board(board)

  12.                 .palette(palette);

  13.  

  14.         ButtonsManager.from(findViewById(R.id.buttonsLayout))

  15.                 .maxColors(maxColors)

  16.                 .palette(palette)

  17.                 .listener((view, index) -> {

  18.                         board.fill(index);

  19.                         boardView.invalidate();

  20.                     }

  21.                 });

  22.     }

  23. }

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

2016-12-16.apk

День 2
Первой проблемой, с которой я столкнулся был вылет игры в некоторых ситуациях. Небольшое подвисание, а затем большой стектрейс с повторяющимися строками говорил о том, что где-то переполнение стека. Такое место у меня было пока что одно — рекурсия в методе заливки.
И, верно, проблема была. Заливка не учитывала уже залитые клетки и могла на последующих итерациях заливать их снова и снова. Решается дополнительным массивом boolean[][], где отмечаются залитые клетки:

  1. public int fill(int color) {

  2.     int cell = getCellAt(0, 0);

  3.     if (cell != color) {

  4.         int size = board.length;

  5.         boolean[][] visited = new boolean[size][size];

  6.         return fill(0, 0, cell, color, visited);

  7.     }

  8.     return 0;

  9. }

  10.  

  11. private int fill(int x, int y, int prevColor, int color, boolean[][] visited) {

  12.     if ( (x < 0) || (y < 0) || (x >= board.length) || (y >= board.length)

  13.             || visited[y][x]) {

  14.         return 0;

  15.     }

  16.     int filled = 0;

  17.     if (board[y][x] == prevColor) {

  18.         board[y][x] = color;

  19.         visited[y][x] = true;

  20.         filled++;

  21.         filled += fill(x — 1, y, prevColor, color, visited);

  22.         filled += fill(x + 1, y, prevColor, color, visited);

  23.         filled += fill(x, y — 1, prevColor, color, visited);

  24.         filled += fill(x, y + 1, prevColor, color, visited);

  25.     }

  26.     return filled;

  27. }

Игре не хватало проверки выигрышной ситуации, когда всё поле залито одним цветом. Поэтому добавился метод Board.isCompleted():

  1. public boolean isCompleted() {

  2.     final int size = board.length;

  3.     final int color = board[0][0];

  4.     for (int y = size — 1; y >= 0; y—) {

  5.         for (int x = 0; x < size; x++) {

  6.             if (board[y][x] != color) return false;

  7.         }

  8.     }

  9.     return true;

  10. }

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

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

  1. public class Palette {

  2.     private final int[] dayColors;

  3.     private final int[] nightColors;

  4.  

  5.     public int getColor(int index) {

  6.         if (isNight) return getNightColor(index);

  7.         else return getDayColor(index);

  8.     }

  9.  

  10.     public int getDayColor(int index) {

  11.         if (index < 0 || index >= dayColors.length) {

  12.             return -1;

  13.         }

  14.         return dayColors[index];

  15.     }

  16.  

  17.     public int getNightColor(int index) {

  18.         if (index < 0 || index >= nightColors.length) {

  19.             return -1;

  20.         }

  21.         return nightColors[index];

  22.     }

  23. }

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

2016-12-17.apk

День 3
Наконец-то дошли руки переписать рекурсивный алгоритм заливки на нерекурсивный с использованием Deque:

  1. public int fill(int color) {

  2.     final int prevColor = getCellAt(0, 0);

  3.     if (prevColor != color) {

  4.         final int size = board.length;

  5.         boolean[][] visited = new boolean[size][size];

  6.         Deque<Point> deque = new ArrayDeque<>(size * 2);

  7.         deque.add(new Point(0, 0));

  8.         int filled = 0;

  9.         while (!deque.isEmpty()) {

  10.             Point p = deque.remove();

  11.             int x = p.x;

  12.             int y = p.y;

  13.  

  14.             visited[y][x] = true;

  15.             if (board[y][x] != prevColor) {

  16.                 continue;

  17.             }

  18.  

  19.             board[y][x] = color;

  20.             filled++;

  21.  

  22.             for (int i = -1; i <= 1; i += 2) {

  23.                 final int newX = x + i;

  24.                 if ( (0 <= newX) && (newX < size) && !visited[y][newX]) {

  25.                     deque.add(new Point(newX, y));

  26.                 }

  27.                 final int newY = y + i;

  28.                 if ( (0 <= newY) && (newY < size) && !visited[newY][x]) {

  29.                     deque.add(new Point(x, newY));

  30.                 }

  31.             }

  32.         }

  33.         return filled;

  34.     }

  35.     return 0;

  36. }

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

День 4
Добавил экран выбора режима игры c отображением размерности поля, количества цветов и картинки-превью. Размерность: 8×8, 12×12, 16×16, 20×20 и 24×24. Для каждой размерности поля есть три режима: 4 цвета, 6 цветов и 8 цветов. Итого 15 режимов.

  1. @Override

  2. protected void onCreate(Bundle savedInstanceState) {

  3.     setContentView(R.layout.mode_selector);

  4.     final Random rnd = new Random();

  5.     palette = new Palette(

  6.             getResources().getIntArray(R.array.standardPalette),

  7.             getResources().getIntArray(R.array.standardPalette_dark));

  8.  

  9.     adapter = new ModeAdapter(this);

  10.     for (int boardSize = 8; boardSize <= 24; boardSize += 4) {

  11.         for (int maxColors = 4; maxColors <= 8; maxColors += 2) {

  12.             GameMode mode = new GameMode(boardSize, maxColors);

  13.             mode.setLevelsCount(100);

  14.             mode.setLevel(rnd.nextInt(100));

  15.             mode.setPreview(generatePreview(boardSize, maxColors));

  16.             adapter.add(mode);

  17.         }

  18.     }

  19.     listView.setAdapter(adapter);

  20.     listView.setOnItemClickListener(this);

  21. }

  22.  

  23. @Override

  24. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

  25.     GameMode mode = adapter.getItem(position);

  26.     startActivity(GameActivity.newIntent(this, mode.getBoardSize(), mode.getMaxColors()));

  27. }

  28.  

  29. private Bitmap generatePreview(int boardSize, int maxColors) {

  30.     float density = getResources().getDisplayMetrics().density;

  31.     int size = (int) (100 * density);

  32.     Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);

  33.     Canvas canvas = new Canvas(bitmap);

  34.  

  35.     Random random = new Random(boardSize * 100 + maxColors);

  36.     Paint paint = new Paint();

  37.     int cellSize = size / boardSize;

  38.     int yStart = (size — boardSize * cellSize) / 2;

  39.     for (int y = 0; y < boardSize; y++) {

  40.         for (int x = 0; x < boardSize; x++) {

  41.             int color = palette.getColor(random.nextInt(maxColors));

  42.             paint.setColor(color);

  43.             int left = x * cellSize;

  44.             int top = y * cellSize + yStart;

  45.             canvas.drawRect(left, top, left + cellSize, top + cellSize, paint);

  46.         }

  47.     }

  48.     return bitmap;

  49. }

По крайней мере, уже можно выбрать тот режим, который хочется поиграть.

2016-12-19.apk

День 5
Новый день — новый экран. На этот раз добавил выбор уровня в указанном режиме. У уровня есть такие параметры:

  1. public class Level {

  2.     public static int MAX_LEVELS = 100;

  3.  

  4.     private final int number;

  5.     private int maxMoves, playerMoves;

  6.     private int backgroundResource;

  7.     private boolean isAvailable;

  8. }

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

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

  1. private static void writeLevelsCompletion(Context context, String filename,

  2.         List<Level> levels) throws IOException {

  3.     DataOutputStream dos = new DataOutputStream(

  4.             context.openFileOutput(filename, Context.MODE_PRIVATE)

  5.     );

  6.     int openedLevels = levels.size();

  7.     dos.writeInt(openedLevels);

  8.     for (int i = 0; i < openedLevels; i++) {

  9.         Level level = levels.get(i);

  10.         dos.writeInt(level.getPlayerMoves());

  11.     }

  12.     dos.flush();

  13.     dos.close();

  14. }

  15.  

  16. private static List<Level> readLevelsCompletion(Context context, String filename)

  17.         throws IOException {

  18.     if (context.getFileStreamPath(filename).exists()) {

  19.         DataInputStream dis = new DataInputStream(context.openFileInput(filename));

  20.         int openedLevels = dis.readInt();

  21.         List<Level> levels = new ArrayList<>(openedLevels);

  22.         for (int i = 1; i <= openedLevels; i++) {

  23.             Level level = new Level(i);

  24.             level.setAvailable(true);

  25.             level.setPlayerMoves(dis.readInt());

  26.             levels.add(level);

  27.         }

  28.         dis.close();

  29.         return levels;

  30.     }

  31.     return new ArrayList<>();

  32. }

Теперь в игре было 1500 уровней. На самом деле, их можно сделать гораздо больше и вот почему. В первый день я создавал класс BoardGenerator, который являлся простой обёрткой над Random и принимал seed:

  1. public BoardGenerator(long seed) {

  2.     this.seed = seed;

  3.     reinit();

  4. }

Если для этого генератора задать seed = 1, то всегда будет генерироваться один и тот же уровень. Если 2, то уже другой. И так далее. А чисел в long ведь гораздо больше 1500! Вот и получается, что в любой момент игру можно расширить до такого количества уровней, что никто и играть не захочет (на самом деле при 1500 я предполагал, что тоже будет такой эффект).

В игре теперь поле генерировалось так:

  1. private void newBoard() {

  2.     generator = new BoardGenerator(getSeed());

  3.     board = Board.create(boardSize)

  4.             .maxColors(maxColors)

  5.             .generate(generator);

  6.     boardView.board(board)

  7.             .palette(palette);

  8.     buttonsManager = ButtonsManager.from(buttonsLayout)

  9.             .maxColors(maxColors)

  10.             .palette(palette)

  11.             .listener(this);

  12. }

  13.  

  14. private long getSeed() {

  15.     return seed == RANDOM_SEED ? System.currentTimeMillis() : seed;

  16. }

Если выбирался именно уровень, а не просто режим случайной игры, то seed равнялся номеру уровня.

2016-12-20.apk

  1. private void updateLevels() {

  2.     adapter.clear();

  3.     List<Level> openedLevels = Prefs.readLevelsCompletion(this, boardSize, maxColors);

  4.     int openedLevelsCount = openedLevels.size();

  5.     for (int i = 1; i <= Level.MAX_LEVELS; i++) {

  6.         Level level = new Level(i);

  7.         level.setMaxMoves(25);

  8.         if (i — 1 < openedLevelsCount) {

  9.             Level openedLevel = openedLevels.get(i — 1);

  10.             level.setAvailable(true);

  11.             level.setPlayerMoves(openedLevel.getPlayerMoves());

  12.         } else {

  13.             // Next after last opened level available always

  14.             level.setAvailable((i — 1 == openedLevelsCount));

  15.             level.setPlayerMoves(0);

  16.         }

  17.         if (level.isAvailable()) {

  18.             level.setBackgroundResource(level.getPlayerMoves() > level.getMaxMoves()

  19.                     ? R.drawable.level_item_lost

  20.                     : R.drawable.level_item_normal);

  21.         } else {

  22.             level.setBackgroundResource(R.drawable.level_item_disabled);

  23.         }

  24.         adapter.add(level);

  25.     }

  26.     adapter.notifyDataSetChanged();

  27. }

Пока что оставался один нерешённый момент, а именно level.setMaxMoves(25). Эта строчка как будто насмехалась: Любишь уровни на основе рандома генерировать, люби и оптимальное число ходов высчитывать. И тогда я закрыл Android Studio и открыл NetBeans, чтобы написать на Java SE небольшой класс, но тут время перевалило за полночь, а это уже:

День 6
Когда-то я писал на Хабре статью про создание бота для игры Flood-It, который находил поле и сам нажимал на нужные кнопки. На основе этого кода я сделал solver:

  1. public class FloodItSolver {

  2.  

  3.     private void process() {

  4.         int minBoardSize = 8, maxBoardSize = 24, stepBoardSize = 4;

  5.         int minColors = 4, maxColors = 8, stepColors = 2;

  6.         int size = ((maxBoardSize — minBoardSize) / stepBoardSize);

  7.         Map<String, int[]> levelsCount = new LinkedHashMap<>(size + 2);

  8.         for (int boardSize = minBoardSize; boardSize <= maxBoardSize; boardSize += stepBoardSize) {

  9.             for (int colors = minColors; colors <= maxColors; colors += stepColors) {

  10.                 GameMode mode = new GameMode(boardSize, colors);

  11.                 int[] minMoves = processMode(mode);

  12.                 levelsCount.put(mode.toString(), minMoves);

  13.                 saveLevelsCount(mode, minMoves);

  14.             }

  15.         }

  16.     }

  17.  

  18.     private void saveLevelsCount(GameMode mode, int[] minMoves) {

  19.         File file = new File(mode.toString());

  20.         try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(file))) {

  21.             dos.writeByte(0);

  22.             for (int moves : minMoves) {

  23.                 dos.writeByte(moves);

  24.             }

  25.             dos.flush();

  26.         } catch (IOException ex) {

  27.         }

  28.     }

  29.  

  30.     private int[] processMode(GameMode mode) {

  31.         int[] minMoves = new int[MAX_LEVELS];

  32.         for (int level = 1; level <= 100; level++) {

  33.             int moves = processMovesCalculation(mode, level);

  34.             minMoves[level — 1] = moves;

  35.             System.out.format(«Level: %d, moves: %d%n», level, moves);

  36.         }

  37.         return minMoves;

  38.     }

  39.  

  40.     private int stepsForLevel(int level) {

  41.         int percent = ((level — 1) * 100 / MAX_LEVELS);

  42.         int steps = stepsForPercent(percent);

  43.         if (level % 10 == 0) {

  44.             return steps + 1;

  45.         }

  46.         return steps;

  47.     }

  48.  

  49.     private int stepsForPercent(int percent) {

  50.         if (percent < 20) return 1;

  51.         if (percent < 60) return 2;

  52.         if (percent < 90) return 3;

  53.         return 4;

  54.     }

  55. }

Класс Random при передаче одинаковых сидов выдаёт одни и те же последовательности как в Android, так и в Java SE. Это значит, что можно генерировать одинаковые уровни на обеих платформах и расчёт оптимального количества ходов можно сделать на ПК. Этим я и занимался всё утро.

Количество ходов на уровень сохраняется в файле. Нулевой байт не трогаем, в первом хранится число ходов для первого уровня, во втором для второго и так далее. Получаем 15 файлов по 100 байт каждый.

У алгоритма расчёта есть параметр — глубина просмотра ходов. Чем выше значение, тем оптимальнее просчитываются ходы. Для первых 20 уровней я взял минимальную глубину, чтобы число ходов было с запасом. Дальше, до 60-го уровня глубина была уже выше. До 90 ещё выше и последние 10 уровней были вообще для мегамозгов (на самом деле нет, но об этом позже). Дополнительно, каждый десятый уровень был с повышенной на одно значение сложностью. Это всё видно в последних двух методах stepsForLevel и stepsForPercent.

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

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

2016-12-21.apk

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

  1. public abstract class ThemeableActivity extends AppCompatActivity {

  2.  

  3.     protected int themeId;

  4.  

  5.     @Override

  6.     protected void onCreate(Bundle savedInstanceState) {

  7.         themeId = Prefs.with(this).getThemeId();

  8.         setTheme(themeId);

  9.         super.onCreate(savedInstanceState);

  10.     }

  11.  

  12.     @Override

  13.     protected void onResume() {

  14.         super.onResume();

  15.         if (Prefs.with(this).getThemeId() != ResourceUtils.resolveResourceId(this, R.attr.themeId)) {

  16.             recreate();

  17.         }

  18.     }

  19.  

  20.     protected boolean isNightTheme() {

  21.         return themeId == R.style.AppTheme_Night;

  22.     }

  23.  

  24.     protected void toggleTheme() {

  25.         final Prefs prefs = Prefs.with(this);

  26.         final int newThemeId;

  27.         switch (prefs.getThemeId()) {

  28.             case R.style.AppTheme:

  29.                 newThemeId = R.style.AppTheme_Night;

  30.                 break;

  31.             case R.style.AppTheme_Night:

  32.             default:

  33.                 newThemeId = R.style.AppTheme;

  34.                 break;

  35.         }

  36.         prefs.setThemeId(newThemeId);

  37.         recreate();

  38.     }

  39. }

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

Также сделал учёт статистики: количество нажатий, число игр, выигрышей и рестартов, число залитых клеток.

  1. Statistics.with(this)

  2.         .updateClicksFor(index)

  3.         .updateFilledCount(filled);

  4. // ..

  5. if (board.isCompleted()) {

  6.     Statistics.with(this)

  7.             .updateGamesPlayedCount()

  8.             .updateWinsCount();

  9.     // ..

  10. }

2016-12-22.apk


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

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

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

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

Ссылки из видео:

Unity – это движок, на котором строится большая часть современных игр на разных платформах. Посредством движка реально создавать игры, ориентированные на запуск на компьютерах (Windows, Linux, MacOS), мобильных телефонах, планшетных компьютерах (Android, iOS) и даже игровых приставках PlayStation, Xbox, Nintendo.

Как создавать игры в Unity?

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

Новичков может ввести в заблуждение видимая простота процесса, хотя это не так. Для создания уникальной и популярной игры придётся с нуля писать массу компонентов. Если точнее, в среде Юнити это называется скриптом. Родной язык создания скриптов – C#, но ещё частично используется JavaScript и Boo (обрезанный вариант Python). Создать собственные компоненты нелегко, можно даже сказать – это сложная процедура, напрямую завязанная на классическом программировании. Без наличия достаточного уровня знаний в программировании придётся несладко.

Поддерживаемые платформы

Многие крупные проекты предпочитают Unity из-за огромного списка платформ совместимых с движком. Готовое приложение реально запустить на любой компьютерной операционной системе, популярных мобильных платформах и SmartTV. Что уж говорить, даже браузерные игры и приложения для специфических платформ (вроде Tizen OS) преимущественно разрабатываются на Юнити.

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

То же самое справедливо и в отношении iOS. Ещё одна особенность iOS, что под неё разрабатывать возможно только с компьютера или планшета от Apple. При отсутствии Macbook или аналогичного устройства выпуск игры быстро застопорится и Unity здесь вовсе не причём, Apple сама накладывает подобное ограничение. Вывод прост: если в планах есть iOS-разработка, заранее следует подобрать подходящее устройство для сборки.

Как и где разработать игру на движке?

Длительный процесс разработки игр можем проводить как в рамках Windows, так и Mac OS X. Уже существуют версии редактора под Linux, но рассчитывать на стабильную их работу пока что не приходится. Большую часть времени по созданию игры разработчик проводит внутри редактора Unity. Ещё приходится много времени писать код скриптов, его создавать можем либо в стандартном MonoDevelop, либо в любом редакторе стороннего разработчика. Сейчас активно пользуются Visual Studio, а также Sublime Text, но только при должной настройке.

Пишем игру танки на Kotlin на Android 19 урок(делаем движение вражеских танков)

Привет, это 19 урок по созданию игры Battle city на языке Kotlin, платформе android.
В этом уроке я наконец-то заставлю вражеские танки двигаться. Двигаться они будут довольно предсказуемо, доходить до края и потом поворачивать в любую сторону.

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

Теперь, традиционная рубрика, минутка рефакторинга. Я заметил, что почти во всех методах класса EnemyDrawer используется список элементов в качестве параметра. Это отличный повод вынести этот параметр в переменные класса. Слелаю это и исправлю ошибки компиляции.

Также переименую переменную enemyTankElement в enemyTank в методе drawEnemy. Теперь это полноценный Tank, c элементом внутри него.

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

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

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

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

Все что нужно еще добавить в поток, это задержку в движении. Я решил что это будет 400 милискунд.


fun moveEnemyTanks() {
	        Thread(Runnable {
	            while (true) {
	                removeInconsistentTanks()
	                tanks.forEach {
	                    it.move(it.direction, container, elements)
	                }
	                Thread.sleep(400)
	            }
	        }).start()
	    }

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

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

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

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

Создам метод changeDirectionForEnemyTank. В нем я убежусь что имею дело с танком врага, так как танк игрока тоже может упереться в стену. Далее я получу рандомное направление из инама Direction. Зная размер массива, я могу получить любое из доступных значений с помощью Kotlin класса Random.


private fun changeDirectionForEnemyTank() {
	        if (element.material == Material.ENEMY_TANK) {
	            val randomDirection = Direction.values()[Random.nextInt(Direction.values().size)]
	            this.direction = randomDirection
	        }
	    }

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

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

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


private fun getInconsistentTanks(): List {
	        val removingTanks = mutableListOf()
	        val allTanksElements = elements.filter { it.material == ENEMY_TANK }
	        tanks.forEach {
	            if (!allTanksElements.contains(it.element)) {
	                removingTanks.add(it)
	            }
	        }
	        return removingTanks
	    }

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

Github

Youtube

Создание Java-игры: с чего начать

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

Эта статья адресована всем, кто думает о создании собственного проекта Java-игры и не знает, с чего начать…

Java плоха для GameDev? .. Мифы и реальность

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

  1. «Большие» игры. Такие как 3D-шутеры, масштабные экшн-приключения/action RPG. В эту категорию также входят проекты уровня AAA. Обычно это высокобюджетные игры, предназначенные для массовой аудитории, такие как Red Dead Redemption 2, Assassin Creed Origins и так далее. Игры такого типа обычно написаны на C ++ и сопровождаются игровыми движками. Java является редким гостем в разработке игр такого типа из-за особенностей JVM. Точнее, его можно использовать, например, для создания внутренних деталей. 
  2. Инди-игры. Один геймер относится к инди-проектам с презрением, а другой любит их со страстью. Инди-игра означает независимую игру, созданную небольшой командой или даже одним разработчиком. 

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

Тем не менее, такие инди-проекты прорываются на рынок и становятся мегапопулярными. Хорошим примером такой игры является Minecraft, изначально созданный одним человеком, Маркусом Перссоном. По состоянию на май 2019 года было продано более 176 миллионов копий Minecraft. Это делает ее одной из самых продаваемых видеоигр всех времен. В 2014 году Microsoft купила Minecraft и Mojang за 2,5 миллиарда долларов США. Кстати, Маркус Перссон является Java-разработчиком, поэтому он написал свое выдающееся детище на этом языке. Так что, да, Java действительно хорош для инди-проектов.

  1. Мобильные игры. Этот огромный рынок продолжает расти вместе с количеством и производительностью смартфонов. Почти каждый играл в игру на своем мобильном устройстве. Хороша ли Java для разработки мобильных игр? Ответ твердое «да». Доля рынка Android-смартфонов сейчас составляет 80%, и на Java написано очень много мобильных игр. 

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

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

Может ли новичок-программист создать свою собственную игру? Как это сделать?

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

Обсудим три варианта создания игр на Java для начинающых.

Вариант 1. С нуля, используя пошаговые инструкции. CodeGym, Games section  

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

Раздел CodeGym Games позволяет вам создавать свои собственные версии легендарных видеоигр, таких как Minesweeper, 2048 или Snake (Space Invaders, Moon Lander и Racer находятся в разработке).  

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

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

Что вы должны знать для кодирования этих игр? Это уровень первых программ на Java: начальные знания о классах и объектах, базовые примитивные типы данных, String, циклы и ветки, а также массивы и начальные знания о структуре ArrayList. Авторы CodeGym рекомендуют пройти первые 5 уровней курса, чтобы получить такие знания. 

Вариант 2. Для не совсем новичка в Java, который любит Minecraft 

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

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

Чтобы начать с моддинга, у вас должны быть установлены IDE и JDK, а также инструмент для моддинга. Forge — один из самых популярных инструментов для моддинга Java. Есть множество учебных пособий и курсов по моддингу Java Minecraft.   

Вот некоторые из них: 

Что нужно знать для моддинга Minecraft с Java?

Это зависит от сложности режима, который вы хотите сделать. Вы должны знать хотя бы Java-классы и объекты, основы структур данных, однако было бы гораздо полезнее, если у вас есть более или менее солидные навыки использования ООП, ознакомления с потоками и коллекциями Java.   

Случай 3. Я хорошо знаю Java Core, я готов к собственному игровому проекту.

У вас есть идея для независимого кроссплатформенного или мобильного проекта? Может быть, вы знаете, как создать свою собственную версию популярной игры? Что делать, если вы знаете Java Core и больше ничего не знаете о разработке игр? Написание игры на сыром Java — довольно сложная перспектива, но есть действительно интересные и полезные фреймворки и библиотеки, которые помогут вам воплотить вашу идею в жизнь.     

Из чего состоит игра?

  • Графика
  • Физика (способ взаимодействия объектов в игре)
  • ИИ (он представлен не в каждой игре, но довольно часто) 
  • Графический интерфейс пользователя
  • Звук

OpenGL — это кроссплатформенный интерфейс прикладного программирования (API) для рендеринга 2D и 3D векторной графики. В Java вы можете использовать функции OpenGL с некоторыми библиотеками — Java3D , JOGL (Java OpenGL) и LWJGL (облегченная библиотека игр Java). Все они кроссплатформенные, бесплатные и с открытым исходным кодом. 

Самый популярный — последний, LWJGL. LWJGL предоставляет вам доступ к графической библиотеке OpenGL и содержит все необходимое для создания 2D и 3D игр. LWJGL также поддерживает мощный кроссплатформенный API для создания музыкальных и звуковых эффектов OpenAL и поддерживает OpenCL, стандарт для кроссплатформенного параллельного программирования.

libGDX — это фреймворк LWJGL для кроссплатформенных игр. Он содержит полезный движок Box 2D, который позволяет создавать игровую физику, множество графических классов, инструменты для работы со звуком. 

libGDX состоит из нескольких модулей, поэтому вы можете использовать его для создания персонажей на основе AI, управления светом, звуком и физикой. 

С помощью libGDX и box2d вы можете разрабатывать игры для разных платформ, таких как Android, iOS, Windows, Linux, MacOS и Web. Вам не нужно заново создавать код для каждого из них, написать его один раз, и он будет работать на любой системе из-за кроссплатформенности. 

Поэтому неплохо бы изучить libGDX для начинающего разработчика Java-игр. 

Что-то еще? 

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

  1. Сделайте некоторые пиксельные рисунки, текстуры, спрайты персонажей. Вам нужен редактор изображений для этого. Например, Pinta или  Paint.Net 
  2. Левел-дизайн. Чтобы создать карту, вам нужен набор плиток. Вы можете создать его в графическом редакторе. Для создания карты из плиток вы можете использовать редактор карт Tiled. 
  3. Создайте текстурные атласы. Текстурный атлас — это одно большое изображение, которое содержит все  спрайты. Атлас определенно ускоряет процесс разработки. Вы можете использовать бесплатный сервис Sprite для этой задачи. 
  4. Создать графический интерфейс. Используйте, например, Overlap2D

Выводы

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

Вы также можете попытаться создать несколько режимов для существующих игр, и Minecraft (версия для Java) вместе с Forge.

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

Использование Unity для разработки приложений



Post Views:
55 206

Ранее мы рассказывали о том, как можно с помощью движка Unreal Engine создать свою игру на Android. В этой статье мы рассмотрим другой не менее популярный движок для разработки игр — Unity.

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

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

  • Personal. Бесплатная версия, которая содержит все основные функции движка. Имеет следующее ограничение: доход в год или объём привлечённых средств не должен превышать 100000$.
  • Plus. За 35 долларов в месяц предоставляются различные отчёты и аналитика, а также возможность изменять заставочный экран, 20%-ая скидка на покупки в Asset Store и различные мелкие преимущества. Имеет следующее ограничение: доход за год или объём привлечённых средств не должен превышать 200000$.
  • Pro. За 125 долларов в месяц включает в себя все преимущества версии Plus и дополнительно профессиональный сервис и премиум-поддержку. Без ограничений по обороту или объёму средств.
  • Отдельные версии для бизнеса (используются крупными компаниями).

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

Для того, чтобы начать установку Unity, нужно перейти на сайт Unity Store, где будет предложено выбрать тип подписки. Как уже говорилось выше, выберем Personal.

Затем будет предложено принять условия использования и загрузить установщик. Также можно ознакомиться с системными требованиями для работы с Unity.

После запуска установщика, будет предложено выбрать, какие компоненты необходимо установить. Поскольку нам нужно создать приложение под Android, поставим флажок на Android Build Support. Также при желании вместо с Unity можно установить Visual Studio Community 2017 для программирования на C#.

После этого останется только выбрать путь установки и начать инсталляцию Unity.

Закончив установку и запустив Unity, нам предлагается войти под своим аккаунтом.

Затем снова будет предложено выбрать подписку, всё также остановимся на Personal. В этом случае нужно будет подтвердить, что годовой доход компании составляет менее 100000$, либо что Unity используется в целях обучения.

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

Настроив Unity, мы попадаем на экран выбора\создания проекта. Здесь нужно нажать New, чтобы создать свой новый проект.

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

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

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

Чтобы открыть Asset Store, нужно в меню Window выбрать Asset Store (комбинация клавиш Ctrl-9).

Откроется окно магазина. Введём в строке поиска «flappy bird style example game» и откроем бесплатный пример, который мы будем использовать в своём проекте.

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

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

После завершения импорта в обозревателе проекта вы увидите новые файлы. Это и есть файлы игры. Чтобы открыть сцену в редакторе, раскройте Flappy Bird StyleScenes и дважды кликните по Main.

В результате в окне 3D-редактора появится сцена игры.

Вы можете проверить, как игра работает, прямо в Unity, нажав на кнопку Play над окном редактора.

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

Для того, чтобы собрать получившуюся игру на Android, нужно установить следующие инструменты:

  • Java Development Kit (JDK). Скачать его можно с сайта Java. Перейдя по ссылке, вы увидите на самом верху Java Platform (JDK), кликните по Download рядом с надписью, затем выберите вашу операционную систему и начните скачивание. После этого просто следуйте инструкциям инсталлятора.
  • Android SDK. Самым простым способом установить актуальную версию является скачивание Android Studio, с которым этот SDK поставляется. Для этого нужно перейти на сайт Android Studio и нажать Download Android Studio. Инсталлятор Android Studio установить базовые компоненты Android SDK, необходимые для разработки на Android.

Для начала, необходимо изменить платформу разработки на Android. Для этого в Unity откройте меню File и выберите Build Settings.

В появившемся окне нужно выбрать Android и затем нажать Switch platform.

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

Теперь нам нужно указать имя пакета для приложения.

Примечание: Имя пакета — это уникальный идентификатор приложения, он пишется в стиле обратного DNS в формате com.CompanyName.ProductName. После публикации приложения в Google Play имя пакета уже нельзя будет изменить.

Для этого перейдём в меню Edit и выберем Project Settings — Player.

В правой части Unity откроется окно с множеством различных настроек, таких как версия приложения, целевой и минимальный SDK, выбор иконки и т.д. Здесь нам нужно в блоке Other Settings найти Identification и задать имя пакета в поле Package Name. При желании можно также изменить и другие параметры.

Теперь осталось только указать путь до Android SDK и JDK. Для этого перейдём в меню и выберем Edit — Preferences.

В появившемся окне нужно перейти в External Tools и в полях SDK и JDK указать соответствующие пути, после чего закрыть окно.

Настало время собрать своё первое приложение на Unity. Для этого нужно в меню выбрать File — Build Settings. Откроется окно, в нём нужно будет добавить сцену, которую нужно собрать. Поскольку у нас эта сцена уже открыта в редакторе, достаточно просто нажать Add Open Scenes, чтобы добавить её в сборку, после добавления вы увидите её в списке сцен.

Осталось только нажать Build, после чего Unity приступит к сборке приложения. Перед этим вам может быть предложено выбрать папку, куда будут сохраняться собранные файлы приложений, а также имя APK-файла.

Примечание: на данный момент, если у вас в Android SDK установлена альфа-версия Build-Tools (версия 28.0.0-rc1), при сборке Gradle выдаст ошибку. Чтобы это исправить, просто удалите из Android SDK эту версию.

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

Посмотрим, что находится внутри собранного APK. Для этого воспользуемся утилитой APK Analyzer, которая входит в состав Android Studio,

Размер APK-файла в несжатом виде составляет 21,1 MB, в сжатом же 20,9 MB. Как можно увидеть из графика, большую часть объёма занимают сторонние библиотеки, добавленные Unity. Затем в assets расположены все ресурсы, которые используются в собранной сцене. Файл classes.dex содержит всего 89 классов и 479 методов.

Кроме того, если заглянуть в AndroidManifest.xml, приложение состоит из одной активности.

<activity
    android:label="@ref/0x7f040000"
    android:name="com.unity3d.player.UnityPlayerActivity"
    android:launchMode="2"
    android:screenOrientation="10"
    android:configChanges="0x40003fff">

    <intent-filter>

        <action
            android:name="android.intent.action.MAIN" />

        <category
            android:name="android.intent.category.LAUNCHER" />

        <category
            android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

    <meta-data
        android:name="unityplayer.UnityActivity"
        android:value="true" />
</activity>

На этом всё. В этой статье мы научились устанавливать и настраивать Unity, а также собрали своё первое приложение на Android.

15 материалов по разработке игр

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

Старая, но актуальная книга 1990 года о том, как создавать логические игры. Автор рассматривает процесс создания игры фундаментально: от постановки задачи и проектирования до реализации алгоритмов игры. Отлично подходит для новичков и студентов технических вузов, изучающих программирование на Паскале.

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

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

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

 

 

Большой курс от Национального Открытого Университета по разработке приложений на движке Unity от основ до создания готового продукта. 10 лекций, на несколько видео каждая, по различным аспектам движка – от подробного рассмотрения интерфейса и его конфигурации до создания игрового ИИ.

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

Туториал, в котором рассмотрены сразу несколько важных тем: создание кроссплатформенных приложений, Intel SDK и JavaScript. За три часа автор предлагает реализовать подобие игры Doodle Jump для платформы Android.

YouTube-плейлист про то, как использовать Unity, но в этот раз для мобильных платформ. Автор расскажет как о самой игре, так и про особенности платформы Android и ее фирменного PlayStore.

Автор курса расскажет о разработке игр на Java с использованием фреймворка libJDX, который позволяет создавать мультиплатформенные приложения. В курсе рассказывается, как использовать фреймворк и как сконфигурировать его внутри Android Studio.

Небольшой видеокурс на YouTube, посвященный основам создания игр на HTML5, JavaScript и Canvas. Подойдет начинающим разработчикам, которые слегка знакомы с HTML.

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

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

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

Разработка мобильных игр: с чего начать? | Pluralsight

Обновлено 05.05.2020

7 шагов к созданию мобильной игры:

  1. Составьте свой план.

  2. Выберите ваше программное обеспечение.

  3. Изучите свой язык программирования.

  4. Начните свой проект.

  5. Реализуйте свою графику.

  6. Повысьте уровень вашей игры.

  7. Выпустите свою игру.

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

1. Составьте свой план

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

2. Выберите программное обеспечение

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

  • GameSalad: Это не требует абсолютно никаких знаний в области программирования, но использует то, что они называют «логической системой, основанной на поведении». Думайте об этом как о создателе игр с перетаскиванием. Конечно, вам еще предстоит научиться, и вы не будете создавать сложные игры, как только откроете их. Тем не менее, он чрезвычайно мощный и может легко переносить ваши игры на iOS, Android и Windows одним нажатием кнопки.

3. Изучите свой язык программирования

Независимо от того, какое программное обеспечение для разработки игр вы выберете, выучить язык программирования по-прежнему чрезвычайно важно.Отличное место для начала — C #. Этот объектно-ориентированный язык программирования прост и относительно легок для понимания. Это также наиболее широко используемый язык программирования среди разработчиков Unity.

4. Начните свой проект

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

5. Реализуйте свою графику

У вас есть два варианта реализации графики в ваших играх:

  1. Создайте их самостоятельно в Photoshop (для 2D-графики), Maya или 3ds Max (для 3D-графики).

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

6. Поднимите свой уровень игры

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

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

  2. Сделайте управление простым и интуитивно понятным.

  3. Добавьте интересный и увлекательный сюжет.

  4. Создайте настроение с помощью веселой и не отвлекающей музыки.

  5. Тестирование, тестирование и еще раз тестирование.

7. Выпустите игру

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

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

Как сделать игру для Android — для начинающих

Хотите сделать игру для Android?

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

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

Читайте дальше, и мы поможем вам создать игру для Android!

С чего начать — придумывайте свою игровую идею

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

Лучше всего начать с видения того, что вы планируете создать

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

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

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

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

Запишите несколько идей:

  • Какой это будет жанр?
  • Что это за крючок, чтобы отделить его?
  • Какая у вас подача в лифте?
  • Какой будет графический стиль?
  • Какой инструмент вы будете использовать для создания графики?
  • А как насчет звука? Как вы будете создавать / приобретать музыкальные треки и звуковые эффекты?

Чтобы получить несколько советов, ознакомьтесь с этой публикацией о дизайне уровней в Android Games .Или почему бы не потратить немного времени на поиск других игр в Play Маркете?

Как создать игру для Android с помощью Android Studio — и почему не стоит пробовать

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

«Традиционный путь» — это создание игры для Android с помощью Android Studio. Android Studio — это официальный инструмент для разработки под Android, который поставляется напрямую от Google и поддерживает огромное количество проектов.

Чтобы использовать Android Studio, вам нужно выучить Java или Kotlin — два официально поддерживаемых языка. В любом случае вам также потребуется загрузить JDK (Java Development Kit) и ознакомиться с Android SDK (комплектом разработки программного обеспечения) и, возможно, немного XML.

SDK — это набор библиотек и инструментов от Google, который позволяет Java взаимодействовать с ОС Android и помогает Android Studio превратить ваш код в рабочий файл APK. Android Studio предоставит интерфейс, в котором вы все это будете вводить, — так называемая IDE или «интегрированная среда разработки».”

SDK — это набор библиотек и инструментов от Google, которые позволяют Java взаимодействовать с ОС Android

Теоретически таким же образом можно было бы создать 3D-игру. В этом случае вы должны использовать API OpenGL или Vulkan для получения графики с аппаратным ускорением.

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

Unity и Unreal — лучший выбор!

По причинам, указанным выше, опытные разработчики обычно выбирают Unity или Unreal при разработке игры.

Эти инструменты объединяют IDE с игровым движком. Другими словами, они предоставляют интерфейс для обработки кода и предлагают много готовой физики и поведения, с которыми можно возиться. Вместо того, чтобы программировать, например, как что-то падает в воздухе, Unreal или Unity просто позволят вам поставить галочку в поле с надписью «гравитация», и это будет сделано за вас.

Используйте Unity для подавляющего большинства проектов

Более того, добавить графику к этим инструментам так же просто, как перетащить их в свою сцену!

В обоих случаях вам понадобится небольшой код. Unity использует C #, который похож на Java, но этого можно добиться, зная очень мало. Unreal использует C ++, но также дает вам возможность использовать своего рода блок-схему вместо реального сценария.

Хотя Unity и Unreal используют Android SDK (то есть вам все равно нужно его загрузить), они обрабатывают его в фоновом режиме.

Оба эти инструмента бесплатны, и они достаточно настраиваемы, чтобы вы могли делать практически все, что захотите. Они также кроссплатформенные, а это значит, что вы можете легко перенести свою игру на другие платформы, такие как iOS, ПК или даже Xbox One и PS4! Большинство профессиональных разработчиков предпочитают Unity в Play Маркете, поэтому здесь нет никаких ограничений на то, чего вы можете достичь.

Unity немного проще в использовании и лучше подходит для мобильных и 2D-игр, в частности

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

Конструкторы игр — легкий выход

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

GameMaker: Studio — один из таких инструментов, и он проще, чем даже Unity или Unreal 4, полагаясь на упрощенный код под названием GML или «GameMaker Language» для базовых скриптов. Хотя это и не бесплатно, но базовая лицензия не будет стоить дорого.

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

Я думаю, что для большинства игровых проектов для Android лучше придерживаться Unity. Единственное исключение — если вы хотите изучить Android Studio с помощью базового проекта игры-головоломки или хотите сделать что-то кроссплатформенное с графикой высшего уровня через Unreal 4.

Запуск вашего проекта

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

Для большинства игр сначала потребуется базовый набор механик и правил

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

После того, как у вас есть игра, в которую можно играть, следующими шагами будет разработка уровней и реализация вашей графики и ресурсов.

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

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

Создание графики и звука может доставлять массу удовольствия, но также может занимать много времени

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

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

Бэтмен может создать игру для Android менее чем за 7 минут

Бэтмен может создать игру для Android менее чем за 7 минут

Конечно, дайте нам знать, что вы собираетесь построить и внизу!

Разработка игр для Android для начинающих

Разработка игр для Android — это работа мечты для многих и увлекательное хобби для других. Игровая индустрия переживает бум и уже много лет опережает киноиндустрию.В 2020 году объединенная игровая индустрия оценивалась в 162,32 доллара. Ожидается, что к 2026 году эта цифра вырастет до 295,63 миллиарда долларов. Наибольшая доля этого пирога принадлежит мобильным играм, на которые, по оценкам, приходится примерно 46% от общей доли рынка.

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

Также прочтите: Лучшие инструменты разработчика Android для начала работы

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

Разработка игр для Android, вероятно, намного проще, чем вы думаете.

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

Этот пост — начало вашего пути к тому, чтобы стать полноценным разработчиком игр для Android!

Инструменты и опции для разработки игр для Android

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

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

Вот что вам нужно знать о наиболее популярных вариантах.

Единство

Это рекомендуемый метод для большинства игр для Android. Unity — это «игровой движок», то есть он обеспечивает встроенную физику, освещение, элементы управления и другие элементы. Это упрощает процесс разработки игры. Unity также предоставляет мощный, но простой интерфейс для перетаскивания элементов в игровой мир. Такие функции делают этот инструмент чрезвычайно эффективным для создания платформеров, 3D-игр и любых других требовательных к графике приложений.

Однако это ни в коем случае не разбавленный «конструктор игр». Кодирование на C # необходимо практически для любого приложения, и этот инструмент используется подавляющим большинством профессиональных команд разработчиков игр, ориентированных на Android. Фактически, самые популярные игры в Google Play Store были созданы с использованием Unity.

Если вы планируете создать 2D- или 3D-игру, хотите, чтобы ваша игра была кроссплатформенной, и не хотите ограничиваться вашими инструментами, Unity — отличный выбор.Пока вы хотите изучать C #.

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

Изучение разработки игр для Android с помощью Unity

Чтобы начать разработку игр для Android через Unity, вы можете загрузить инструмент с официального сайта. Вам также необходимо получить Android SDK (Software Development Kit) и следовать инструкциям по настройке.

У нас есть множество руководств, которые помогут вам начать разработку игр для Android в Unity:

Это даст вам базовое представление о C #:

Вы также можете найти ряд отличных курсов в Интернете:

Я также написал книгу о разработке игр для Android с помощью Unity!

Android-студия

Android Studio — это «официальный» инструмент для разработки Android, который, конечно же, включает разработку игр для Android.Этот инструмент поступает непосредственно от Google и поддерживает Java и Kotlin в качестве основных языков программирования.

Android Studio — это то, что вы называете «IDE». Это означает интегрированную среду разработки, которая представляет собой просто интерфейс, который вы используете для взаимодействия с языком программирования и инструментами (Unity также можно классифицировать как IDE).

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

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

Почему Android Studio сложнее для разработки игр

В то время как Unity — это платформа для разработки игр, в первую очередь с удобным интерфейсом перетаскивания, Android Studio — это скорее традиционная IDE. Это означает, что при первой загрузке вас встретит куча файлов и некоторый заранее написанный код. Остальное зависит от тебя!

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

  • Java или Kotlin в качестве основного языка программирования
  • XML для создания «файлов макета» (хотя есть визуальный редактор, он не справится со всем)
  • Жизненные циклы приложений Android
  • Структура и иерархия различных исходных файлов и ресурсов в приложении для Android — что на самом деле делают все эти файлы ?
  • Зависимости, манифест Android, Gradle для создания ваших приложений…
  • Причуды самой Android Studio

Google постоянно внедряет новые функции и инструменты (например, недавний редактор движения или Jetpack Compose), и это может стать проблемой при попытке во всем разобраться! Конечно, изучать эти дополнительные элементы не обязательно.Но с таким количеством материала может быть головной болью, просто зная, с чего начать. Кажется, есть 10 способов сделать все!

Также прочтите: Руководство по Java для начинающих: напишите простое приложение без предыдущего опыта

Более того, Android Studio не имеет встроенных функций физики, рендеринга или других полезных функций для разработки игр для Android. Если вы хотите создать 3D-игру таким образом, вам придется либо полагаться на внешние библиотеки и инструменты, либо создавать всю логику, физику и рендеринг с нуля!

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

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

Обучение разработке игр с помощью Android Studio

Использование Android Studio — возможный вариант, тогда, если ваша игра:

  • Игра-головоломка, состоящая из статичных экранов, а не множества анимаций
  • ИЛИ относительно простой 2D-заголовок действия
  • У вас есть опыт программирования
  • ИЛИ вы готовы потратить много времени и усилий на изучение официального инструмента разработки для Android

Чтобы запустить Android Studio на вашем компьютере, вы можете скачать его здесь.

У нас есть множество отличных руководств для начинающих:

Вы также можете найти ряд отличных курсов в Интернете:

Другие варианты разработки игр для Android

Вместе Unity и Android Studio будет достаточно для разработки практически любых игр для Android. Однако есть и другие варианты, которые могут понравиться некоторым разработчикам при определенных обстоятельствах.

Например, Unreal Engine — мощная альтернатива Unity для тех, кто интересуется разработкой 2D и 3D игр.Хотя Unreal популярен на ПК благодаря невероятному графическому мастерству, с ним сложнее справиться, чем с Unity, и он не так хорошо подходит для разработки мобильных 2D-приложений. Обновления постепенно стремятся изменить это, но на данный момент Unity остается предпочтительным выбором для разработки игр для Android.

Между тем,

Visual Studio с расширением Xamarin является хорошей альтернативой Android Studio. Если вы не хотите использовать игровой движок, но хотите перенести готовый продукт на Android и iOS, это хороший вариант.Многие люди считают Visual Studio более интуитивно понятной, чем Android Studio, и вам придется писать код на C #, который немного проще, чем Java. Поддержка немного менее комплексна, чем для Android Studio, хотя вам не придется долго ждать появления новых обновлений.

Создатели игр

Наконец, для тех, кто не хочет изучать тонны кода, есть ряд конструкторов игр, которые практически не требуют программирования. Безусловно, самым мощным из них является GameMaker Studio 2.Это мощный игровой движок и IDE, максимально упрощающие процесс создания игр. Инструмент не бесплатный, но доступен по цене и включает в себя и кода на более высоких уровнях. Тем не менее, он представляет собой значительно меньшую кривую обучения по сравнению с подобными Unity, но при этом предоставляет профессиональный набор инструментов. Фактически, популярные игры, такие как Hyper Light Drifter , были созданы с использованием GameMaker.

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

См. Также: Простое руководство по GameMaker Studio для начинающих

Заключительные комментарии

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

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


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

Начните работу с сервисами Play Games для Android | Разработчики Google

Добро пожаловать в разработку игр для Android с помощью игровых сервисов Google Play!

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

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

Прежде чем начать

  • Настройте среду разработки Android. Если вы новичок в разработке
    Приложения для Android, см.
    Создание вашего первого приложения.
  • У вас есть устройство Android под управлением Android 4.0 (сэндвич с мороженым) или выше
    под рукой для тестирования.

Шаг 1. Загрузите образец приложения

Для этого руководства разработчика вам потребуется загрузить образец задания типа «введите число».
Приложение для Android.

Чтобы загрузить и настроить пример приложения в Android Studio:

  1. Загрузите образцы Android с
    страница загрузки образцов.
  2. Импортируйте проект android-basic-samples . Этот проект включает TypeANumber и другие игры для Android.
    образцы.Для этого в Android Studio:

    1. Щелкните File > Import Project .
    2. Перейдите в каталог, в который вы загрузили android-basic-samples для своей разработки
      машина. Выберите файл android-basic-samples / build.gradle и нажмите OK .
  3. В модуле TypeANumber откройте AndroidManifest.xml и измените имя пакета с
    com.google.example.games.tanc в другое собственное имя пакета.Новое имя пакета должно
    не начинать с com.google , com.example или com.android .

Шаг 2. Настройте игру в консоли Google Play

Консоль Google Play — это место, где вы управляете игровыми сервисами Google Play для своей игры и
настроить метаданные для авторизации и аутентификации вашей игры.

Чтобы настроить образец игры в консоли Google Play:

  1. Укажите в веб-браузере
    Консоль Google Play и
    войти.Если вы раньше не регистрировались в консоли Google Play, вам будет предложено сделать это.
  2. Следуйте этим инструкциям, чтобы
    добавьте свою игру в консоль Google Play.

    1. Когда вас спросят, используете ли вы API Google в своем приложении, выберите Я еще не использую API Google в своей игре .
    2. Для целей данного руководства разработчика вы можете заполнить форму собственными
      детали игры. Для удобства можно использовать значки-заполнители и снимки экрана.
      предоставлено на странице загрузок.
  3. Следуйте этим инструкциям, чтобы
    создать идентификатор клиента OAuth 2.0
    для вашего Android-приложения.

    1. При связывании вашего Android-приложения обязательно укажите точный пакет
      имя, которое вы использовали ранее при переименовании пакета образца.
    2. Вы можете использовать мастер создания подписанного APK в Android Studio, чтобы
      сгенерируйте новое хранилище ключей и подписанный сертификат, если у вас его еще нет. Чтобы узнать, как
      запустите мастер создания подписанного APK, см.
      Подписание вашего приложения в Android Studio.
  4. Обязательно запишите следующую информацию на будущее:
    1. ID вашего приложения: это строка
      состоящий только из цифр (обычно 12 или более) в начале вашего идентификатора клиента.
    2. Ваш сертификат подписи: обратите внимание, какой сертификат вы использовали при настройке
      ваш доступ к API (сертификат, отпечаток SHA1 которого вы предоставили). Ты
      должен использовать тот же сертификат для подписи вашего приложения при тестировании или выпуске вашего
      приложение.
  5. Настроить достижения для задачи «Типа числа»:
    1. Выберите вкладку достижений в консоли Google Play.
    2. Добавьте следующие примеры достижений:
      Имя Описание Особые инструкции
      Prime Получите простой результат. Нет
      Скромный Запросить 0 баллов. Нет
      Не дерзай, малыш Запросить оценку 9999 в любом режиме. Нет
      ОМГ У Р ТЕХ УБЕР ЛИТ! Получите 1337 баллов. Сделайте это скрытым достижением.
      расточенный Сыграть в игру 10 раз. Сделайте это постепенным достижением с 10 шагами для разблокировки.
      Действительно действительно скучно Сыграть в игру 100 раз. Сделайте это достижение постепенным, чтобы разблокировать 100 шагов.
    3. Запишите идентификаторы (длинные буквенно-цифровые строки) для каждого достижения, которое вы
      созданный.
    4. Настройте достижения, подходящие для вашей игры. Узнать больше,
      увидеть концепции достижений
      и как реализовать достижения в Android.
  6. Сконфигурируйте списки лидеров для задачи типа «введите число»:
    1. Выберите вкладку Leaderboards в консоли Google Play.
    2. Добавьте две примерные таблицы лидеров: одну с названием «Легкие рекорды» и другую.
      назван «Жесткие рекорды». Обе таблицы лидеров должны использовать целочисленное форматирование результатов.
      с 0 десятичными знаками и типом заказа Чем больше, тем лучше .
    3. Запишите идентификаторы (длинные буквенно-цифровые строки) для каждой созданной вами таблицы лидеров.
    4. Настройте таблицы лидеров, подходящие для вашей игры. Узнать больше,
      увидеть концепции, лежащие в основе списков лидеров и
      как реализовать списки лидеров в Android.
  7. Добавьте тестовые учетные записи для вашей игры.
    Этот шаг необходим только для приложений, которые еще не были опубликованы в
    Консоль Google Play. Перед публикацией приложения перечислены только тестовые учетные записи.
    в консоли Google Play можно войти в систему. Однако после публикации приложения
    Все могут войти в систему.

Предупреждение: Если вы попытаетесь сделать вызовы SDK Play Games для неопубликованной игры с помощью
учетная запись, которая не указана как тестовая, игровые сервисы Google Play будут вести себя как
если игры не было и вы получите обратно
ConnectionResult.SIGN_IN_REQUIRED
код возврата. Если вы попытаетесь запустить
ConnectionResult.startResolutionForResult () ,
ты вернешься
GamesActivityResultCodes.RESULT_SIGN_IN_FAILED .

Шаг 3. Измените код

Для запуска игры вам необходимо настроить ID приложения как ресурс в вашем
Android-проект. Вам также потребуется добавить метаданные игр в AndroidManifest.xml .

  1. Откройте файл res / values ​​/ ids.xml и замените идентификаторы заполнителей.Если ты
    создавая игру для Android с нуля, вам нужно сначала создать этот файл.

    1. Укажите идентификатор своего приложения в ресурсе app_id .
    2. Укажите идентификатор каждого достижения, который вы создали ранее в соответствующем
      достижение_ * ресурс.
    3. Укажите идентификатор каждого списка лидеров, который вы создали ранее в соответствующем
      таблица лидеров_ * ресурса.
  2. Откройте AndroidManifest.xml и введите имя своего пакета в package
    атрибут элемента < manifest >.Если вы создаете игру для Android из
    нуля, убедитесь, что вы также добавили следующий код внутри элемента < application >:

    <метаданные android: name = "com.google.android.gms.games.APP_ID"
        android: value = "@ строка / app_id" />
    <метаданные android: name = "com.google.android.gms.version"
       android: value = "@ integer / google_play_services_version" />
     

Шаг 4. Протестируйте игру

Чтобы убедиться, что игровые сервисы Google Play правильно работают в вашей игре, протестируйте
приложение, прежде чем опубликовать его в Google Play.

Примечание. Рекомендуется тестировать на физическом устройстве Android. Однако если
у вас нет физического устройства, вы можете протестировать
Эмулятор Android. Для этого загрузите
образ системы эмулятора, который включает
Сервисы Google Play, под Android 4.2.2 , от
SDK Manager.

Для запуска игры на физическом тестовом устройстве:

  1. Убедитесь, что вы настроили тестовую учетную запись, которую используете для входа в систему.
    в приложение (как описано в шаге 2).
  2. Экспортируйте APK и подпишите его тем же сертификатом, который вы использовали для настройки.
    проект в Google Play Console. Чтобы экспортировать подписанный APK в Android Studio, нажмите
    Сборка > Создать подписанный APK .
  3. Установите подписанный APK на физическое тестовое устройство с помощью инструмента adb .
    Чтобы узнать, как установить приложение, см.
    Работает на устройстве.

Предупреждение: Когда вы запускаете приложение прямо из Android Studio, Android Studio подпишет
приложение с вашим сертификатом отладки по умолчанию.Если вы не использовали это
сертификат отладки при настройке приложения в Google Play Console, это
вызовет ошибки. Обязательно запустите APK, который вы экспортировали и подписали
сертификат, соответствующий одному из сертификатов, которые вы использовали во время подачи заявки
настройку в Google Play Console.

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

Как создать успешное игровое приложение

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

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

По мере роста интереса к многопользовательским играм компаниям и стартапам необходимо сосредоточить внимание на приложениях для многопользовательских игр. Согласно AppAnnie, существует значительный спрос на многопользовательские игровые приложения, такие как ROBLOX, Words With Friends 2, Magic Tiles 3, Call of Duty: Mobile, Mario Kart Tour и т. Д.

Этот спрос привел к существенному увеличению на 50% еженедельных загрузок игр во всем мире. Это с конца марта 2020 года по сравнению со средним недельным уровнем для четвертого квартала 2019 года. Интересно, что неделя 22 марта 2020 года оказалась самой большой неделей для загрузок мобильных игр — рекордные 1,2 миллиарда загрузок.

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

Как сделать игровое приложение

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

Как и ожидалось, из сотен доступных жанров приложений игровые приложения генерируют максимум загрузок. По данным Statista, проникновение пользователей составило 14,8% в 2020 году и, как ожидается, к 2024 году достигнет 18,9%.Выручка в сегменте загружаемых игр в настоящее время составляет 15,89 млрд долларов США в 2020 году. Ожидается, что годовой темп роста выручки (CAGR 2020-2024) составит 5,2%, что может привести к объему рынка в 18,04 млрд долларов США к 2024 году.

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

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

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

Ссылка: (Android | iOS)

2. Words with friends 2: Words with Friends 2 была популярной игрой еще до блокировки, но она стала популярной с тех пор, как начались блокировки. Согласно отчету, Words with Friends 2 заметно поднялся в рейтинге за февраль-март 2020 года и теперь входит в десятку игр, ежедневно загружаемых на iPhone по состоянию на 30 марта 2020 года в Канаде, США и Великобритании.

Ссылка: (Android | iOS)

3.Magic Tiles 3: Это захватывающая игра, основанная на ритме, в которой нужно нажимать на музыкальные ноты, которые выпадают на экран.

Ссылка: (Android | iOS)

4. Mario Kart Tour: Очень популярная игра на какое-то время стала лучшим выбором. Производители постоянно выпускают большие и крупные обновления, чтобы поддержать геймеров.

Ссылка: (Android | iOS)

5. Uno: Постоянно популярная карточная игра теперь стала популярным приложением из-за знакомства с правилами.Легко скачать и играть с незнакомцами, семьей и друзьями.

Ссылка: (Android | iOS)

6. Пул на 8 шаров: Созданная компанией Miniclip, 8 Ball Pool — популярная многопользовательская игра, которая позволяет пользователю участвовать в турнирах, бросать вызов своим друзьям или играть один на один с незнакомцами.

Ссылка: (Android | iOS)

7. FIFA 20: Мобильная версия чрезвычайно популярной игровой серии — популярный выбор в условиях изоляции для многопользовательских игр.

Ссылка: (Android | iOS)

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

Перед тем, как начатьРазработка мобильных игровых приложений
, установите правильный технический стек. Это не обязательно означает изучение в первую очередь Java, HTML и CSS. Если вы умеете программировать, это может дать вам преимущество. Но если вы этого не сделаете, все, что вам нужно сделать, это выбрать некоторые стандартные инструменты. Давайте сделаем задел для , как бесплатно сделать игровое приложение:

1. Развивайте идею

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

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

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

2. Создайте историю

Игры, подобные Clash of Clans, собирают максимальное количество загрузок, потому что у игры есть своя история. Это самая простая часть любой стратегии разработки игр. Создание увлекательной истории, которая удерживает игроков от соблазна узнать, что будет дальше, играет ключевую роль в ее популярности.

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

3. Простой и захватывающий

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

4. Дизайн победитель

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

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

5. Разработайте стратегию монетизации

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

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

Объявления

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

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

Микротранзакция

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

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

Какие игры нужно создавать?

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

а. Пазлы / Игры в слова

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

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

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

Такие игры, как «Говорящий Том», которые не требуют обучения и веселят игроков.При соблюдении простых правил они находят место в большинстве смартфонов, но в них не так часто играть.

г. Стратегические игры

Успех таких игр, как Clash Royale и Clash of Clans, является достаточным доказательством популярности стратегических игр. Отвечая на вопросы , как создать игровое приложение , разработчик делает упор на построение стратегии в реальном времени. Такие игры вызывают у игроков чувство срочности и имеют очень захватывающую модель.

г.Аркадные игры

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

Как сделать игровое приложение для iOS и Android?

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

1. Построить 3

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

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

2. GameMaker Studio 2

Объединяя возможности программирования и перетаскивания, GameMaker Studio 2 обеспечивает гибкость как для кодеров, так и для некодеров. Кодеры могут воплотить свою идею в жизнь, используя язык сценариев, подобный C, для добавления функций, но не в рамках GameMaker Studio 2.

3.Единство

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

4. Двигатель Годо

Любимый сообществом разработчиков игр за его феноменальную поддержку, Godot поддерживает разработку 2D и 3D игр.С более чистым кодом Godot Engine обеспечивает лучшую производительность по сравнению с Unity и имеет меньше ошибок.

5. Unreal Engine 4

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

Заключение

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

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

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

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

Лучшие 20 движков и платформ / инструментов для разработки мобильных игр в 2021 году

В этом посте мы познакомимся с лучшими платформами разработки 2D / 3D игр и движками / инструментами, которые вы можете использовать для создания собственной игры для iPhone / iPad и устройства Android в 2021 году. Apple App Store и Google Play Store ждут вашего творения… Поехали!

Как сделать мобильную игру (Android / iOS) и не умереть, пытаясь…

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

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

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

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

1. Unity

Среди лучших движков мобильной разработки мы находим Unity — кроссплатформенный инструмент, запущенный Unity Technologies. Эта платформа поможет вам создать свою собственную игру, используя удивительные возможности разработки в 2D и 3D, и работать вместе со своей командой. . Unity позволяет импортировать ресурсы из многих 3D-приложений, таких как Maya или Blender, например, и предлагает вам широкий спектр ресурсов, которые можно приобрести прямо в их собственном магазине.Более того, если вы разрабатываете игру впервые, не беспокойтесь, потому что Unity, одна из наиболее часто используемых платформ для разработки, предоставляет вам справочные материалы в виде учебных пособий и руководств. Это одно из самых известных программ для создания игр среди разработчиков.

Поддерживаемые платформы:

  • iOS
  • Android
  • Windows Phone
  • Tizen OS
  • Fire OS

Стоимость:

  • Бесплатно для студентов и для личного использования
  • 40 долларов в месяц в течение Plus edition
  • 150 долларов в месяц за версию Pro
  • 200 долларов в месяц за версию Enterprise

Некоторые игры, разработанные с использованием Unity: Lara Croft Go, Angry Birds 2, Pokémon Go.Некоторые из самых загружаемых игр были созданы с использованием Unity.

2. Unreal Engine

Если вы не опытный разработчик или новичок, Unreal Engine — это платформа для вас, потому что вам не нужно иметь никаких навыков программирования благодаря его пользователю. дружественные особенности . Эта платформа позволяет вам вносить изменения и модифицировать вашу игру без необходимости программирования или изменения кодов. Другими преимуществами являются простота работы с интерфейсом и возможность тестирования вашей игры внутри платформы.Используйте программное обеспечение Unreal Engine, чтобы создавать впечатляющую трехмерную графику и заинтересовать пользователей своей игрой!

Поддерживаемые платформы:

  • ПК с Windows
  • Sony PlayStation 4
  • Xbox One
  • Mac OS X
  • iOS
  • Android
  • VR-платформы
  • Linux
  • SteamOS
  • HTML5

Цены :

  • Бесплатная публикация и лицензии для авторов
  • Специальная лицензия по специальной цене
  • Программа Entreprise за 1 доллар.000 на место в год

Некоторые мобильные игры, разработанные с использованием Unreal Engine: Heart at Attack, Lineage II: Revolution, ABC Augmented Reality.

3. Solar2D

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

Поддерживаемые платформы:

  • iOS
  • tvOS
  • Android
  • Android TV
  • macOS
  • Windows
  • Linux
  • HTML5

Цена:

  • Основные функции можно использовать бесплатно

Некоторые мобильные игры, разработанные с использованием Solar2D: Grow Beets Clicker и I Love Hue.

4. SpriteKit — 2D-игры на основе спрайтов

Apple запустила собственный игровой движок для создания 2D-игр: SpriteKit. Эта платформа поддерживает языки Swift и Objective-C и предлагает разработчикам широкий спектр функций, которые помогут им в создании высокопроизводительных 2D-заголовков. Если вы думаете о разработке игры для Apple, это платформа для вас. Обратите внимание: если он поддерживается Apple, это означает, что вам не нужно загружать дополнительные библиотеки или внешние источники, и вы можете быть на 100% уверены, что он идеально подходит и подходит для всех новых продуктов Apple.

Поддерживаемые платформы:

Цена:

Некоторые игры, разработанные с использованием SpriteKit: Squashy Bug, Trestle и Accelebot.

5. Buildbox

С помощью Buildbox вы можете создавать свои собственные 3D- и 2D-игры за очень короткое время и очень простым способом. Кодировать не нужно — выберите изображения, импортируйте их, назначьте им роль (персонаж, объект, украшение, усиление и т. Д.) и ваша игра начнется. Кроме того, вы можете вносить изменения и проверять их в режиме реального времени. Если вы не являетесь техническим экспертом, эта платформа для вас.

Поддерживаемые платформы:

Стоимость:

  • Бесплатный план
  • Plus Plan 19,99 долларов в месяц
  • Pro Plan 49,99 долларов в месяц

Некоторые мобильные игры, разработанные с использованием Buildbox: Timelight, Reached, и cmnd / ctrl.

6. AppGameKit

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

Поддерживаемые платформы:

Стоимость:

  • Classic App Game Kit стоит 49,99 долларов США
  • Unlimited App Game Kit стоит 66,98 долларов США
  • Существуют также другие более специфические пакеты, адаптированные к вашим потребностям .

Некоторые мобильные игры, разработанные с использованием AppGameKit: Skrobol, Bouncing Brendan и Na4.

7. Construct 3

Construct — это платформа HTML5 для создания 2D-игр. Его очень легко использовать, так как кодирование не требуется, и он имеет множество функций, которые помогут вам в короткие сроки разработать визуально привлекательные игры. Он также позволяет осуществлять экспорт на разные платформы, чтобы ваш проект был готов к запуску на разных устройствах одновременно.

Поддерживаемые платформы:

  • iOS
  • Android
  • Windows Phone
  • Веб-платформы: Kongregate, NewGrounds, itch.io

Цена:

  • Для физических лиц: 16,49 евро в месяц
  • Стартап: 12,51 евро / место в месяц
  • Бизнес: 33,26 евро в месяц
  • Азартные игры: Цена определяется обращение в компанию

Некоторые игры, разработанные с использованием Construct 2: The Next Penelope, Airscape: The Fall of Gravity и Cosmochoria

8. Fusion 2.5

Если вы думаете о создании игры, основанной на событиях, Fusion 2.5 — это платформа для вас.Fusion имеет простой в использовании интерфейс, и вам не нужно быть экспертом в программировании, так как вам не нужно этого делать. У них есть библиотека, полная графики, которую вы можете использовать для своего заголовка. Эту платформу также можно использовать для разработки 2D-игр, хотя для создания статических игр лучше использовать Fusion.

Поддерживаемые платформы:

  • iOS
  • Android
  • Flash
  • XNA (Windows Mobile phone и Xbox)

Стоимость:

  • Цена полной версии начинается от 59 долларов США.От 99 до 99,99 долларов США
  • Стоимость дополнительных пакетов варьируется: от 39,99 долларов США до 149,99 долларов США
  • Существует также бесплатная версия

Некоторые творения с использованием Fusion: DISTRAINT, Quadle и Bit Odyssey

9. GameMaker Studio 2

Yoyo Games запустили собственную платформу для создания 2D-игр: GameMaker Studio 2. Их удивительная функция «перетащить и отпустить» вместе с простым в освоении языком дает вам возможность создать свою игру за очень короткое время. Еще одно преимущество заключается в том, что вам не нужно тратить большие деньги, чтобы начать работу.

Поддерживаемые платформы:

  • iOS
  • Android
  • Android TV
  • Windows Phone
  • Tizen
  • Amazon Fire
  • PS Vita
  • fireTV
  • Microsoft UWP
  • HTML5

Цена:

  • Бесплатная пробная версия на 30 дней
  • Создатель: от 39 долларов в месяц
  • Разработчик: от 99 долларов в месяц (лицензия на экспорт на платформы Android, Fire и iOS стоит 199 долларов в месяц).
  • Консоль: от 799 долларов в месяц

Некоторые мобильные игры, разработанные с использованием GameMaker: Studio: Hyper Light Drifter, UNDERTALE и Desert Child.

10. Titanium

Titanium был создан компанией Appcelerator и представляет собой платформу , которая позволяет пользователям создавать приложения для различных мобильных устройств (перечисленных ниже) с помощью JavaScript . Благодаря эффективным модулям вы можете сэкономить время, написав меньше кода. Единая кодовая база делает его еще проще и позволяет разработчикам создавать мобильные приложения без необходимости управлять несколькими наборами инструментов и языков.Он предлагает более 5000 API для различных платформ.

Поддерживаемые платформы:

Стоимость:

  • Инди: бесплатно
  • Pro: 199 долларов США / место в месяц
  • Enterprise: индивидуальная цена

11. MonoGame

MonoGame multi также является -платформенный игровой движок, использующий архитектуру классов и работающий с языками C # и .NET . Вы можете найти множество руководств на их веб-сайте, которые помогут вам в создании вашего продукта.

Поддерживаемые платформы:

Цена:

Некоторые мобильные игры, разработанные с использованием MonoGame: FEZ, Bastion и Skulls of the Shogun.

12. Amazon Lumberyard

Amazon Lumberyard — это движок для создания игр, запущенный Amazon. Воспользуйтесь бесплатными инструментами и создайте свою игру — она ​​может быть выпущена на разных устройствах благодаря кроссплатформенной функциональности. Привлекайте пользователей визуально насыщенным контентом с помощью интеграции Lumberyard с Twitch.

Поддерживаемые платформы:

  • iOS
  • Android
  • ПК
  • Xbox One
  • PlayStation4

Стоимость:

Некоторые игры, разработанные с использованием Amazon Lumberyard: Crucible и Breakaway.

13. Cocos2d-x

Cocos2d-x — это пакет инструментов для разработки 2D-игр, выпущенный Facebook. Одна из лучших особенностей Cocos 2D-x позволяет создавать игры очень маленького размера: 1.5 МБ . Он поставляется с подробной документацией и имеет большое сообщество поддержки. Прочтите и узнайте, как им пользоваться.

Поддерживаемые платформы:

  • iOS
  • Android
  • HTML5
  • Windows
  • Mac

Цена:

Некоторые мобильные игры, разработанные с использованием Cocos2d-x: Angry Birds Fight, Clash of Kings и Brave Frontier.

14. Haxe 4

Haxe — это язык программирования, напоминающий языки JavaScript, C ++, C #, Java, JVM, Python, Lua, PHP и Flash.Он также включает библиотеку, из которой вы можете выбирать фреймворки и выбирать между широким спектром функций и процедур (API) для разработки вашей мобильной игры.

Поддерживаемые платформы:

Стоимость:

  • У них разные планы поддержки (бесплатная, профессиональная, корпоративная и элитная).

Некоторые игры, разработанные с использованием Haxe: Rymdkapsel, Papers, Please и Dead Cells.

15. Gideros

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

Поддерживаемые платформы:

  • iOS
  • MacOSX
  • Android
  • Windows Phone
  • Windows
  • Windows RT

Цена:

Некоторые мобильные игры, разработанные с использованием Gideros: Willihard, Bubble Puddle и Elemental Столкновение.

16. Godot

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

Поддерживаемые платформы:

  • iOS
  • Android
  • Windows
  • macOS
  • Linux
  • UWP
  • * BSD

Цена:

17.CRYENGINE

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

Поддерживаемые платформы:

Стоимость:

  • Использование платформы бесплатно
  • 5% роялти при отгрузке проекта (первые 5 тысяч долларов годового дохода не взимаются)

18.Phaser

Phaser — это веселая и красочная платформа для разработки 2D-игр для настольных и мобильных устройств. Он работает с платформой с открытым исходным кодом для Canvas и WebGL.

Поддерживаемые платформы:

Стоимость:

  • Бесплатно
  • Также продаются отдельные плагины

19. Defold

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

Поддерживаемые платформы:

  • Android
  • iOS
  • macOS
  • Linux
  • Windows
  • Steam
  • HTML5

Цена:

20. Starling Framework

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

Поддерживаемые платформы:

Стоимость:

Подводя итог: Платформы и инструменты для разработки мобильных игр 2021 (Android + iOS)

Как сделать мобильную игру в 2021 году?

На рынке есть несколько платформ и инструментов для разработки мобильных игр , и мы выделили наиболее распространенные движки, которые могут помочь создавать захватывающие лучшие игры для Android / iOS. Выбирая платформу для разработки игры, учитывайте свой бюджет (хотя некоторые из них бесплатны), идеи, требования и ожидания.Затем выберите лучший вариант для вас. Это довольно сложное решение, но вы можете пройти его с честью и создать ЭПИЧЕСКУЮ 2D / 3D-игру, которую вам придется продавать должным образом, чтобы привлечь игроков, провести SEO-оптимизацию в App Store и т. Д. Но это уже другая история. Наконец, знаете ли вы, что маркетинг приложения — это не то же самое, что маркетинг игры? Есть некоторые отличия, о которых вы можете прочитать в этой интересной статье.

Примечание: сообщество IndieASO внесло свой вклад в этот контент. Спасибо!

Что вы думаете об этом посте о создании игр? Вы хотите начать программировать свои собственные заголовки? Какую платформу / инструмент или движок для разработки программного обеспечения вы используете для создания своих игр? Какие, по вашему мнению, лучшие движки для 2D-игр? Напишите нам в комментариях.

Как обычно, делиться заботой 😉

Первоначально этот пост написала Кристина Стефанова.

Как создать игровое приложение

Учитывая, что в этом году мировой рынок принес 100 миллиардов долларов, неудивительно, что многие люди хотят участвовать в играх с игровыми приложениями. Но разбогатеть с помощью App Store — это лишь одна из многих возможных мотиваций! Кто знает, вы могли бы просто быть заинтересованы в создании чего-нибудь забавного для своих друзей или в создании прочного произведения цифрового искусства.

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

Итак, что мне нужно для начала?

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

  • Компьютер : вам нужно будет установить игровой движок на свой ПК или Mac. Обратите внимание, что некоторые игровые движки предназначены только для ПК или только для Mac. Они не работают с обоими.
  • Смартфон (или два): вам нужно будет протестировать игру на желаемой платформе. Стоит убедиться, что он хорошо работает как на iPhone, так и на телефоне Android, если вы хотите выйти на оба рынка — и это стоит попробовать и на устройствах низкого уровня!
  • Учетная запись разработчика : для отправки игрового приложения.Это стоит 99 долларов в год для App Store и 25 долларов для жизни в Play Store. В отличие от разработчиков приложений, вы будете отвечать за обновления и следить за тем, чтобы игра работала на всех устройствах. Это может означать несколько новых обновлений в год.
  • Способ создания искусства : Независимо от того, собираетесь ли вы работать в 2D или в 3D, вам потребуются игровые ресурсы. В Интернете можно найти массу бесплатных ресурсов, а у некоторых игровых компаний есть собственные торговые площадки. Но лучший способ выделить свою игру — это создавать такие вещи, как персонажи, фон, музыку и меню самостоятельно.

И игровой движок тоже?

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

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

GameSalad — редактор перетаскивания, который также предлагает шаблоны игр

  • Перетаскивание : это лучший метод для новичков. У вас есть список поведений (если это происходит, значит, случается), и вы можете просто применить их к своим игровым объектам. Например, вы создаете двухмерный квадрат и создаете поведение, которое говорит: «Если я нажимаю на экран, квадрат подпрыгивает».
  • Визуальные сценарии : более продвинутое решение, которое дает вам всю гибкость кода без необходимости кодирования. Вы в основном создаете «узлы», которые представляют действия или события для ваших игровых объектов. Это создает своего рода диаграмму, которая представляет все, что происходит в вашем игровом окне.
  • Кодирование : профессионалы скажут вам, что это единственный серьезный способ получить полный контроль над вашей игрой, особенно если вы хотите, чтобы она была сложной. А если вы заинтересованы в карьере разработчика игр, вы можете начать учиться прямо во время работы! Хорошей новостью является то, что некоторые игровые движки предлагают собственный упрощенный язык сценариев, который упрощает понимание основ для новичков.

Могу ли я сделать какую-нибудь игру?

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

  • Пазлы / Игры в слова
  • Казуальные игры
  • Платформеры
  • Аркадные игры

Более сложные жанры 3D-игр, такие как FPS (шутеры от первого лица) или MMO (многопользовательские онлайн-игры), не только потребуют некоторого кода, но и не обязательно лучше всего подходят для игры на смартфоне или планшете.

Какой игровой движок выбрать?

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

GameSalad

GameSalad попадает в категорию перетаскивания и отличается интуитивно понятным интерфейсом, а также очень хорошей документацией для начинающих.То, как он обрабатывает 2D-физику, идеально подходит для мобильных игр, и стоит отметить, что вы можете публиковать свои результаты на iOS, Android и даже на настольных компьютерах. У них также есть приложение «мобильный просмотрщик», чтобы вы могли протестировать свою игру на разных мобильных устройствах!

Посмотрите, как начать работу с GameSalad за 15 минут.

Попробуйте GameSalad здесь.

Основные возможности : перетаскивание, физика игры, хорошая документация, есть торговая площадка, поставляется с основными игровыми шаблонами.Рекламная монетизация поддерживается в про-версии (25 долларов в месяц). Базовая версия стоит 17 долларов в месяц, но вы получаете скидку 50% на профессиональный план в качестве учителя, студента или военнослужащего.

Студия GameBuilder

Использование визуальных сценариев , GameBuilder Studio может быть немного более устрашающим, чем GameSalad, как можно продемонстрировать в обучающем видео ниже. Однако документация кажется столь же хорошей и исчерпывающей, и вы даже можете пройти бесплатный онлайн-курс udemy, чтобы начать работу с основами.Программа также довольно дешевая: полная цена составляет 99 долларов за профессиональную версию и 199 долларов в год за профессиональный план со всеми функциями + учебные пособия и дополнительные плагины.

Посмотрите, как начать работу с GameBuilder Studio за 15 минут:

Попробуйте GameBuilder Studio здесь.

Основные возможности: визуальный редактор , игровая физика, торговая площадка плагинов, хорошие учебные пособия, создание 2D-анимаций (или интеграция со Spine для мощных 2D-анимаций).В версии Pro поддерживаются реклама, многопользовательский режим и другие расширенные функции.

BuildBox

Это новичок на рынке игровых движков, но он предъявляет большие претензии. Buildbox перечислил 100 игр, созданных на их платформе, которые вошли в число самых скачиваемых в App Store, включая такие классические игры, как The Line Zen и Color Switch. Это перетаскивания , а также поставляется с некоторыми базовыми шаблонами , которые помогут вам начать работу. С другой стороны, интерфейс действительно приятный, а функции кажутся очень надежными, хотя и немного ограниченными.С другой стороны, подписка стоит очень дорого (99 долларов в месяц или 84 доллара при ежегодной оплате).

Попробуйте Buildbox здесь.

Основные возможности : перетаскивание, игровые шаблоны, отличный пользовательский интерфейс, редактор 2D-графики (спрайтов) и аниматор.

ClickTeam Fusion 2.5

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

Попробуйте здесь.

Основные возможности: перетаскивание, визуальные сценарии, только ПК. Хорошее онлайн-сообщество и множество доступных расширений.

GameMaker Студия 2

Теперь мы добрались до GameMaker Studio 2, мощного решения, позволяющего создавать популярные игры, такие как Hyper Light Drifter и Hotline Miami .С другой стороны, он поставляется с визуальным редактором , так что вы можете создавать и анимировать пиксельное искусство прямо в программе, что делает его предпочтительным движком для художников. С другой стороны, вам нужно будет ввести код . К счастью, они используют свой собственный упрощенный язык под названием GMS2. Документация тоже отличная. Как и ClickTeam Fusion, он также предназначен для настольных компьютеров и консолей, и вам придется заплатить за полную версию (399 долларов США), чтобы экспортировать свою игру на Android или iOS.

Попробуйте GameMaker Studio 2 здесь.

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

Стенцил

Stencyl — интересный движок, основанный на проекте MIT Scratch. Несколько лет назад Массачусетский технологический институт (Массачусетский технологический институт) разработал язык визуального программирования для обучения студентов программированию кода , и это тот же метод, который использует Stencyl.Элементы разработаны таким образом, чтобы складываться как пазл, поэтому вы получите хорошее представление о том, как работает код, когда вы его изучите. Хотя это не совсем мощный движок, это определенно отличное решение для простых двухмерных мобильных игр, и он легко экспортируется в iOS и Android.

Попробуйте Stencyl здесь.

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

Единство

Теперь вы смотрите на очень мощный движок, который использует известный язык сценариев (C #).Кстати, вы будете в компании, поскольку Unity — это движок, используемый тоннами инди-компаний, а также студиями AAA, от таких игр, как Temple Run до Assassin’s Creed. И хорошая новость в том, что вам не обязательно писать код, чтобы создать на нем свою игру. Это потому, что вы можете найти ряд плагинов для Unity, которые используют визуальный редактор. Эти решения не всегда подходят для новичков, но это только начало. К ним относятся FlowCanvas, uScript, Adventure Creator или PlayMaker. А Unity позволяет не только создавать приложения для iOS и Android, но и переносить игру на консоли и рабочий стол!

Попробуйте Unity здесь.

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

Нереальный

Основной конкурент Unity, Unreal также является мощным движком, используемым студиями AAA для таких игр, как Abzu и Kingdom Hearts III. Он поставляется с визуальным редактором Blueprint и, как известно, раздвигает границы с точки зрения красивой графики даже для мобильных игр.Как и Unity, вы можете опубликовать свою игру для настольных компьютеров и консолей, а также для iOS и Android. Обратной стороной является то, что Unreal создавал довольно тяжелые игры, предназначенные для мобильных устройств высокого класса. Это также сложный зверь, с которым вам потребуются месяцы, чтобы разобраться и с ним справиться.

Попробуйте Unreal здесь.

Основные характеристики : поставляется с визуальным редактором, подходит для больших мобильных игр, бесплатное использование и 5% роялти, если ваша игра приносит более 3000 долларов в квартал.

Заключительные мысли

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *