Как создать свою 2д игру на компьютер

Обновлено: 04.07.2024

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

— Я придумал игру, создай мне её.
— А почему ты сам её не создашь?
— Я не умею.

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

С чего начать?

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

  1. Это РПГ в средневековом стиле (банально, не правда ли? =) )
  2. Она должна быть 3D, а не 2D (тут, кстати, довольно интересно, потому как в основном весь интернет пестрит роликами с 2D играми)
  3. Вид камеры от третьго лица
  4. Характеристики изменяются сами с повышением уровня, с упором на используемое оружие.
  5. Лимит уровней — 30
  6. Предметы привязаны к уровню персонажа (персонаж четвертого уровня не сможет использовать предмет пятого уровня)
  7. Движок, на котором всё будет работать (в моём случае это Unity: по работе с ним самое большое количество уроков на мой взгляд)

Думаю, что данный план вполне подойдёт для создания шедевра ААА класса =).

Начнём создавать шедевр

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

Идём в интернет и спрашиваем «как нам начать использовать Unity?».

Запускаем Unity Hub.


Выбираем NEW и далее 3D проект, пишем название и местоположение проекта.


И открывается сама программа.


И тут, наверное, знатоки начнут кидаться картошкой со словами «Зачем столько воды? Все и так это знают» НО! Материал предназначен в первую очередь для тех, кто ничего не умеет, а не для гуру геймдева =).

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

Как создать модели для игры?
  1. Научиться моделированию (сложно, долго, но интересно)
  2. Купить готовый пак моделей (быстро и просто, но за деньги)

Я выбрал второй вариант. Отправляемся в AssetStore. Если у вас не активировалась ваша учетная запись, повторно входим в личный кабинет. И начинаем искать подходящие паки. Я нашел то, что нужно, примерно за 3 минуты по поиску knight. В паке, помимо моделей самих персонажей, были модели окружения. Купил за 10 долларов, нажал Import, поставил все галочки, и пропала проблема, неумения моделировать. 1/4 игры готово.

Сцена

Дальше начинается самое нудное. Нужно собрать рабочую зону (scene, сцену, кому как привычнее называть).

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

Поскольку мы с вами в этом деле новички, снова лезем в интернет и смотрим, как нам поставить поверхность в игровую зону. Выбираем GameObject -> 3D Object -> Cube, после масштабируем его до простой площадки.


Далее добавляем персонажа (рыцаря, демона, ниндзю, тяночку, или кто вам больше по душе). Персонажа берем из папки Prefabs: мы уже знаем (вспоминаем, чему нас научили во вкладке Learn), что туда сохраняют полностью готовые объекты, персонажей и так далее.

И вот он, наш герой, который будет покорять всех и вся.


Анимация

Помните в рейде «Цитадель Ночи» в World of Warcraft был босс Алуриэль? Когда она произносила заклинания, то кричала «Аннигиляция, репликация, детонация, АНИМАЦИЯ. ». Нам необходимо с криком «Анимация!» наброситься на интернет и понять, как её сделать.

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

Что нужно в первую очередь? По мне — так научиться ходить и бегать. Возьмём анимацию ходьбы и бега.

  • В поисковике анимации набираем walking, выбираем понравившуюся анимацию, и ставим галочку In Place
  • Далее нам нужно подгрузить FBX модель от купленного пака для того, чтобы анимация не баговала (иногда такой модели может не быть в паке, но сейчас 99% разработчиков дают модель при покупке любого пака бесплатно либо она может лежать на официальном сайте). Тыкаем на upload character и загружаем модель FBX со смешным названием Mixamo_Guy_Naked.fbx.
  • Видим, что наш FBX заменил стандартную модель миксамо, и при желании можно кастомизировать анимацию, но этого делать мы, конечно же, не будем. Меня всё устраивает. Я жмякаю кнопку Download, выбираю Frames per Second 60 - анимация ходьбы готова.
  • Проделываем туже процедуру с анимацией бега (и другими, в зависимости от того, сколько вы их хотите добавить в данный момент)

Теперь создаём папку Animation в Unity и добавляем туда нашу анимацию. Начинаем настройку.

Выбираем персонажа, inspector, окно Animator, и в строке Controller нажимаем на кругляшок. Появится выбор, где мы и увидим нашу Animation, выбираем её и нажимаем на кнопку Play в Unity. Если вы всё сделали правильно, то сейчас должны наблюдать как ваш персонаж стоит, и у него проигрывается анимация Idle. То есть, он стоит и немного покачивается.


С анимацией разобрались, пора включать снова человека, который ничего не умеет =)

Скрипт W A S D

Анимация у нас есть, теперь нужно заставить нашего персонажа двигаться. Покопавшись в интернете, я узнал, что можно просто добавить компонент Character Controller. Так и сделаем — тыкнем Add Component, в поиск вбиваем Character Controller и добавляем его, в строке Center выставляем Y=1 (нужно, чтобы «яйцо» покрывало всего персонажа. Если у вас получилось меньше или больше, то просто настройте его вручную).


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move: MonoBehaviour

public float speed = 3.0F;
public float rotateSpeed = 3.0F;
void Update()
float horizontal = Input.GetAxis(«Horizontal»);
float vertical = Input.GetAxis(«Vertical»);

CharacterController controller = GetComponent<CharacterController>();
transform.Rotate(0, horizontal * rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = speed * vertical;
controller.SimpleMove(forward * curSpeed);

if (controller.velocity == Vector3.zero)
GetComponent<Animator>().SetBool(«Idle», true);
>
if (controller.velocity != Vector3.zero)
GetComponent<Animator>().SetBool(«Idle», false);
>
>
>

Тут я немного поясню скрипт.

Верхние четыре строчки — это подключение библиотек, public class — название скрипта. Если у Вас скрипт называется Moving или что-то в этом роде, то поменяйте название. Учтите, к регистру скрипт тоже придирчив.

public float speed = 3.0F; public float rotateSpeed = 3.0F; — это скорость персонажа, настраивается по желанию. Далее идёт подключение управления Character Controller и, соответственно, анимации.

Перетаскиваем скрипт в Inspector персонажа и проверяем. It's ALIVE.

Но есть нюанс: поворачивается наш персонаж слишком быстро и не подключена анимация бега. Скорость поворота лечится просто — выставляем в строке Rotate Speed 0.5, и наш персонаж больше не использует чит-крутилку из CS GO. Теперь сделаем, чтобы наш персонаж все-таки побежал. Снова интернет, хотя, по мне, тут можно и логически додумать, как всё провернуть, но всё же я нашел строчку кода, чтобы всё заработало. Добавляем в наш код такую строчку

if (Input.GetButtonDown(«Fire3»))
GetComponent<Animator>().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent<Animator>().SetBool(«Running», false);

Если у Вас возникли вопросы, что такое Fire3, то ответ прост: это LShift, а проверить это можно, зайдя File->Build Setting->Player Setting->Input Manager. Эту информацию также не составило труда найти в интернете.


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

if (Input.GetKey(KeyCode.LeftShift))
speed = 6.0f;
>
else
speed = 3.0f;
>

В итоге весь скрипт у нас получился такого вида

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move: MonoBehaviour

public float speed = 3.0F;
public float rotateSpeed = 3.0F;
void Update()
float horizontal = Input.GetAxis(«Horizontal»);
float vertical = Input.GetAxis(«Vertical»);

CharacterController controller = GetComponent<CharacterController>();
transform.Rotate(0, horizontal * rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = speed * vertical;
controller.SimpleMove(forward * curSpeed);

if (Input.GetKey(KeyCode.LeftShift))
speed = 6.0f;
>
else
speed = 3.0f;
>

if (controller.velocity == Vector3.zero)
GetComponent<Animator>().SetBool(«Idle», true);
>
if (controller.velocity != Vector3.zero)
GetComponent<Animator>().SetBool(«Idle», false);
>
if (Input.GetButtonDown(«Fire3»))
GetComponent<Animator>().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent<Animator>().SetBool(«Running», false);
>

Всё проверили, всё работает, осталось только прикрепить камеру к персонажу. Без заморочек просто перетаскиваем Main Camera в нашего персонажа, далее её настраиваем как нам удобно, проверяем и празднуем ПОБЕДУ!

Заключение

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

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

Все описанное в этой статье было собрано без специальных знаний с помощью интернета.

Всего 2 года назад я была 17-летней школьницей и ничего не знала о программировании. Это не помешало мне начать учиться и через несколько месяцев выпустить свою первую игру в Steam. Сегодня у меня более 10 игр для ПК, интернета и мобильных устройств и свыше 1,9 млн игроков.

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

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

Чтобы сделать игру, нужно пройти 6 этапов:

  • Концепция
  • Графика
  • Программирование
  • Звук
  • Подготовка к публикации
  • Публикация

image

Концепция

Совет

У вас есть классная идея. Но как оформить её на бумаге?

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

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

Инструменты

  • Заметки на Mac OS.
  • Google Документы.
  • Трелло.
  • Google Диск.
  • GitHub. Требуется git и Unity .gitignore.
  • Unity Collab. Самый простой инструмент, но с ограничениями в бесплатной версии.
  • Книга Джесси Шелл «Искусство геймдизайна».
  • Сайт для разработчиков игр Gamasutra.

Графика

Совет

Если вы не умеете программировать, сначала прочтите раздел «Программирование». Вряд ли вы хотите потратить время на графику и выкинуть её потому, что под неё не написать код.

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


Thomas Was Alone — простая и прекрасная игра

Интерфейс

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



Неудачный и удачный шрифт

2D-анимация

Анимацию можно реализовать двумя способами:

  • Покадровая анимация. Когда вы отрисовываете каждый кадр. Для этого используйте таблицы спрайтов и Sprite Packer в Unity.
  • Скелетная анимация. Отрисовывается каждая подвижная конечность, затем анимируется её позиция и повороты. Это быстрее, легче и тратит меньше оперативной памяти. Для 2D-анимации на Unity используйте пивоты (точки привязки) или плагин Anima 2D.

Что ещё может пригодиться

Советы, которые применимы не только к игровой графике, но и к другим программам:

Без тайлов и с тайлом

  • 9-slice объекты с немасштабируемыми границами и масштабируемым центром позволяют увеличивать изображения без заполнения памяти.

Пятно расширяется, но углы остаются прежними

  • Делайте разрешение каждого объекта таким, чтобы оно делилось на 4 или было степенью числа 2.
  • В Photoshop вы можете сохранить каждый слой в отдельный файл через Файл > Экспорт > Быстрый экспорт в [формат изображения].

Инструменты

  • Photoshop.
  • Gimp.
  • Paint Tool SAI — для графики в стиле аниме.
  • Blender — мощное ПО со сложным обучением.
  • Maya — для анимации.
  • Max — для отрисовки.
    — шрифты, иконки и прочее.
    — высококачественные объекты, готовые к использованию в играх.
    — огромная библиотека графики, созданной другими пользователями.
    — закрытое сообщество дизайнеров.
    — сообщество дизайнеров, к которому может присоединиться любой желающий.
    — сообщество создателей инди-игр.

Программирование

Совет

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

    Типы данных и переменные. В основе кода лежат данные, которые хранятся в переменных. Можно объявить переменную так:


int — тип данных, i — имя переменной, = 0 — значение переменной.


Используя оператор else, можно расширить условие и отобразить что делать, если условие не соответствует истине:


For-циклы похожи на while-циклы. Для while мы пишем так:


Равнозначный for-цикл будет таким:

Если в коде что-то идёт не так, на помощь приходят исключения. Они как бы говорят: «Так, погоди, здесь ты сделал что-то нелогичное. Перепроверь ещё раз».

О чём ещё надо знать:

Код — это вызов самому себе. И ничего не понимать поначалу — нормально.

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

Другие немаловажные основы программирования:

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

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

Инструменты

  • Visual Studio Code (для MacOS) — не зависает, имеет встроенную справочную информацию и удобные «горячие» клавиши.
  • Visual Studio (для Windows).
  • MonoDevelop — устанавливается с Unity, иногда подвисает.

В Unity Asset Store, bitbucket и GitHub очень много бесплатных ассетов. В своих проектах я использую минимум по два. Они упрощают жизнь, но далеко не идеальны. Заметили ошибку — исправляйте и говорите разработчику о ней.

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

Совет

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

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

В любом случае потребуется запись и сведение таким образом, чтобы звук подходил под настроение игры. Например, Bastion использует органические и инструментальные звуки, хорошо вписывающиеся в мир игры. Crypt of the Necrodancer включил в себя смесь электронных ритмов и восьмибитного рока, чтобы передать темп и яркость игры.

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

Инструменты

Приложения для работы с аудио:

  • Logic Pro (только для MacOS). Цена 200 $.
  • FL Studio. Цена 99–899 $. Есть бесплатная демоверсия.
  • Reaper. Цена 60–225 $.
  • Audacity. Бесплатная программа. Имеет мало возможностей, но полезен для чистки аудио.
    . Здесь можно найти бесконечно много звуков и музыки под лицензией Creative Commons. Начните с этого плейлиста. Использовать можно бесплатно, но не забудьте указать авторство.
    .
    .

Подготовка к публикации

Совет

Существует небольшая вероятность — на 99,99 процентов, что в игре есть ошибки. А это значит, что самое время заняться баг-тестом.

Как тестировать игру на баги?

  1. Дайте другим поиграть в игру. Желательно вместе с вами, на случай, если они столкнутся с ошибкой и не смогут понять или объяснить её.
  2. Проверьте игру на разных платформах. В редакторе может не быть проблем, но работает ли она там, где её будут запускать? Будьте особенно внимательны с Linux и Android.


  1. Проверьте консоль на исключения. Если нашли исключение, найдите файл и строку, где сработало исключение. Если оно звучит по-марсиански, поищите решение в сети, и подумайте, почему именно в этой строке срабатывает исключение.
  2. Напишите в консоль. Попробуйте вывести логи (системные файлы) в предполагаемых местах ошибки. Введите разные переменные и сверьте полученные значения с ожидаемыми. При несовпадении — исправляйте.
  3. Проверьте логи. Системные записи вашего проекта дадут больше информации, чем консоль. Прочтите строки, где сработало исключение. Гуглите всё, что не знаете.
  4. Поспите. Всё починится с утра. Это просто плохой сон :)

Типичные ошибки


В чём дело: функция выполняется с несуществующей (null) переменной.
Быстрое решение: проверьте, является ли переменная null.

Примечание: Проверьте, какие кавычки вы используете.
" //правильные кавычки;
" //ненужные кавычки, они принесут вам немало ошибок.

Советы по оптимизации

  • Установите нужную частоту кадров. Для визуальной новеллы хватит 20 кадров в секунду, а вот для шутера нужны 60. Низкая частота кадров тратит меньше времени на отрисовку.
  • Анимация / система частиц / выборочная обработка. Объекты, невидимые для камеры игрока, не обрабатываются. Персонажи анимируются, частицы обновляются, 3D-модели обрабатываются только в поле зрения игрока.
  • Сжатие текстур и звуков. Для сжатия текстур используйте Crunch. Потоковая музыка и распаковка звуковых эффектов перегружают игру. Попробуйте снизить качество аудио. Сжатие может заметно снизить качество объектов.
  • Не позволяйте Raycast касаться лишних объектов. Raycast похожи на маленькие лучи, выстреливающие из ваших пальцев или мыши, когда вы касаетесь экрана или кликаете. Найдите объекты, которые не должны реагировать на действия игрока и удалите их из вычислений Raycast.
  • Используйте объектный пул. Частое создание и удаление большого количества объектов снижает производительность. Вместо этого, объедините их в список, очередь или другую структуру. Например, пули должны объединяться в один массив.
  • Оптимизируйте шейдеры. Задайте материал для каждого визуализатора. Игре не придётся создавать новые материалы в начале игры, что сэкономит ресурсы. Пусть визуализатор включает только то, что функционально необходимо.
  • Используйте AssetBundles (дословно «комплекты активов») вместо старой системы Resources в Unity. AssetBundles экспортирует ваши файлы из Unity и помещает в один файл, экономя оперативную память.

Инструменты (только для Unity)

Публикация

Совет

Самое время показать всему миру своё творение.

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

Вы не узнаете, станет ли игра хитом, пока не опубликуете её.

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

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

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


Письмо видеоблогеру Markiplier, чей канал насчитывает более 21 миллиона подписчиков


Это прекрасный инструмент для продвижения: Agar.io обрела популярность на 4chan, Butterfly Soup подскочила в загрузках после внимания в Твиттере.

Как лучше: публиковаться через издателя или самому. Хотите пойти по пути Hotline Miami, выпущенной Devolver Digital, или перенять опыт Farmville и Doki Doki Literature Club?

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

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


Количество установок игры растёт

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

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

Инструменты

Сервис presskit() помогает разработчикам оформить описание игры для прессы.

Платформы для публикации:

    (PC) — 100 $ за публикацию.
    (PC).
    (PC) — бесплатная публикация после разрешения.
    (MacOS) — 100 $ в год, требуется учётная запись разработчика Apple.
    (PC / Web) — бесплатная публикация.
    (PC/Web) — бесплатная публикация.
    — бесплатная публикация.
    (Web) — бесплатная публикация.
    (Web) — бесплатная публикация.
    (Web) — бесплатная публикация на сайте, заканчивающемся на «___.github.io».
    (Web/Mobile) — бесплатная публикация.
    (Mobile) — 25 $ за публикацию.
    (Mobile) — требуется учётная запись разработчика Apple.
    . Приём заявок до 1 октября.
    . Международный фестиваль инди-игр. Приём заявок до мая–июня.
    . Игровая премия Швеции. Приём заявок до июня.
    . Приём заявок до декабря.
    . Приём заявок до ноября.

Заключение

Нет простого пути создания игры. Есть только ваши решительность и усилия.

За каждым Half-Life, Minecraft и Uncharted лежат океаны крови, пота и слез.
Кен Левин, создатель Bioshock

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


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

Если вы хотите получить более систематическое образование в области разработки игр, мы рекомендуем рассмотреть факультет разработки игр онлайн-университета GeekBrains.

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

За последние годы вышло много популярных двумерных игр:

    – продолжение серии игр в жанре beat ’em up, файтинг; – игра в жанре «ферма», менеджмент; – игра в жанре «ужасы», метроидвания ; – игра в жанре «квест», головоломка; – игра в жанре beat ’em up, файтинг.

Программная реализация 2D-игр проще не только из-за отсутствия третьего измерения: на самой сцене меньше объектов, вместо трехмерных моделей плоские спрайты, вместо скелетной анимации – покадровая. А еще 2D-игры проще портировать на другие платформы – легче найти новую аудиторию.

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

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

Предполагаем, что вы уже установили редактор и создали аккаунт на портале Unity.

В первую очередь создадим новый проект и откроем его настройки (Edit → Project Settings). Во вкладке Editor установим параметр Default Behaviour Mode в значение 2D

Настройка проекта Детальная настройка проекта

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

1. Создаем пустой объект, переименовываем в GameManager.

Создаем пустой объект

Создаем пустой объект

3. Создаем квадратный спрайт, называем его Pad (Assets → Create → Sprites → Square). Аналогично создаем круглый спрайт Ball (Assets → Create → Sprites → Circle). Масштабируем спрайт Pad со следующими параметрами – x:0.5, y:2.5, z:1.

Создаем спрайты

Создаем спрайты

4. Создаем префабы для Pad и Ball, после чего добавляем к ним компонент Box Collider 2D (включаем параметр Is Trigger) и компонент Rigidbody 2D (выставляем параметр Body Type в значение Kinematic).

Добавляем .компонент Box Collider 2D Настраиваем.компонент Box Collider 2D Добавляем компонент Rigidbody 2D Масштабируем спрайты

6. Заполняем скрипты следующим кодом.

GameManager.cs Ball.cs Pad.cs

6. Добавляем к префабу Ball и Pad теги с аналогичными именами. Выделив префабы, в инспекторе мы можем видеть выпадающий список тегов. Там же расположены и кнопки для добавления и редактирования тегов.

7. В настройках камеры выставляем параметр Projection в значение Orthographic, а параметр Clear Flag – в значение Solid Color.

Настройка камеры

Настройка камеры

8. Настраиваем кнопки, как показано на следующих скриншотах (Edit → Project Settings → Input Manager).

Настройка ввода, основное Настройка ввода, первый игрок Настройка ввода, второй игрок

Вот и всё, игра готова!

Пинг-понг, итоговый результат

Пинг-понг, итоговый результат

Билд для платформы Windows

1. Официальный туториал от Unity, где детально рассмотрен процесс создания roguelike RPG.

2. Youtube-канал Brackeys , где можно найти серию видеоуроков по созданию 2D-платформера.

3. Youtube-канал N3K EN содержит множество уроков как по отдельным компонентам Unity, так и полноценные серии уроков по созданию игр с нуля.

Больше полезной информации вы найдете на наших телеграм-каналах «Библиотека программиста» и «Книги для программистов».

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

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

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

Узнайте, как создавать двумерные игры в Unity, используя карты плиток, спрайты, 2D-физику, анимацию и многое другое.

Made with Unity – Night in the Woods от Finji

Made with Unity – Night in the Woods by Finji

Unity — самая популярная в мире платформа разработки двумерных и трехмерных игр: 50% всех мобильных игр созданы в Unity! Теперь пользователям доступна бесплатная версия Unity. Вы получите доступ к платформе разработки 2D-игр и к богатой базе бесплатных ресурсов, созданных нами и энтузиастами из нашего прекрасного сообщества.


После загрузки Unity вы получите возможность начать работу с изучения одного из наших готовых шаблонов Microgame, например 2D Platformer. К каждому шаблону Microgame прилагается коллекция Mod, увлекательных модификаторов, которые познакомят вас с важнейшими методами работы в Unity.

Unity Creator Kit: 2D-RPG

Unity Creator Kit: 2D RPG

Наборы Creator Kit — это простые игровые проекты, доступные на Unity Learn, которые можно освоить примерно за час. Набор 2D RPG Kit не затрагивает программирование, чтобы вы могли сосредоточиться на изучении Unity Editor и настройке игры в соответствии с вашими идеями и интересами.

The Explorer: набор для 2D-игры от Unity

The Explorer: 2D Kit by Unity

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

Проект 2D-игры от Unity: Ruby’s Adventure

Unity 2D game project: Ruby’s Adventure

Ruby's Adventure — это проект, который познакомит начинающих разработчиков с процессом создания и программирования 2D-игры. В путешествии с Руби вы узнаете, как и зачем использовать спрайты, как создать первый скрипт, научитесь работать с инструментом Tilemap, украшать сцену, создавать эффекты частиц, пользовательский интерфейс, звуковое оформление и многое другое.

Советы по 2D-графике от сообщества Unity


Thomas Brush: советы по разработке 2D-игр

Канал Thomas Brush богат практическими советами и вдохновляющими идеями. Начните с видео 5 steps to making a gorgeous 2D game и Anyone can make 2D games!


Brackeys: Как создать 2D-игру

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


Blackthornprod: руководства по текстурам и 2D-анимации

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

Читайте также: