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

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

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

Да и необходимость программирования никто не отменял. Без него не поймёшь, как что работает, не объяснишь это другим, и не добавишь в игру что-то своё — движки дают только основу, не больше.

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

Что такое Unity

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

Наглядный пример игры, созданной на Unity, которая поддерживает разные устройства, — Genshin Impact, успешный мультиплатформенный проект китайской студии miHoYo Limited. Более популярной стала ее мобильная версия, но пользователи могут войти в аккаунт, например, с компьютера и продолжить играть с того же момента, на котором остановились в мобильной версии. Кроме Genshin Impact, на Unity созданы такие известные проекты, как Hearthstone, Outlast, Cuphead, Pokemon GO и многие другие.

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

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

Посмотрите также: Как установить Unity

Как создаются игры?

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

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

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

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

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

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

  1. Идея. Разработчик или команда разработчиков придумывают основную сюжетную линию и героев игры.
  2. Создание геймдизайн-документа и написание сценария игры.
  3. Визуал и графика. Команда отрисовывает героев, фоны, меню игры.
  4. Программирование, то есть написание кода и интегрирование отдельных элементов из приложений-помощников и выбранного игрового движка (графика, интерфейс, физика игры).
  5. Тестирование. Игра выпускается в ограниченный доступ. Небольшое количество пользователей может поиграть и обнаружить недостатки, не замеченные разработчиком.
  6. «Пофиксить». Команда исправляет выявленные тестированием ошибки в игре.
  7. Релиз. Выход игры на широкую аудиторию.

Как создать игру, ничего не умея. Часть первая: модели и анимации

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

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

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

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

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

  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 был босс Алуриэль? Когда она произносила заклинания, то кричала «Аннигиляция, репликация, детонация, АНИМАЦИЯ. ». Нам необходимо с криком «Анимация!» наброситься на интернет и понять, как её сделать.

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

  1. Идём на сайт www.mixamo.com
  2. Регистрируемся
  3. Получаем огромное количество анимации на все случаи жизни

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

  • В поисковике анимации набираем 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 (нужно, чтобы «яйцо» покрывало всего персонажа. Если у вас получилось меньше или больше, то просто настройте его вручную).

И снова прочесав гигантской расческой интернет, я всё же нашел скрипт, который у меня заработал. Значит, пора его добавить в Unity. Жмякаем правой кнопкой, Create -> C# Script. Назовём его Move. Добавим туда такой код:

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();
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().SetBool(«Idle», true);
>
if (controller.velocity != Vector3.zero)
GetComponent().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().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent().SetBool(«Running», false);

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

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

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

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();
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().SetBool(«Idle», true);
>
if (controller.velocity != Vector3.zero)
GetComponent().SetBool(«Idle», false);
>
if (Input.GetButtonDown(«Fire3»))
GetComponent().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent().SetBool(«Running», false);
>

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

Заключение

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

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

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

Место действия

Как создаются видеоигры от идеи до продажи

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

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

Что из себя представляет профессия геймдизайнер и что нужно делать на должности

Кто такой геймдизайнер и какие его основные обязанности в студии, которая занимается разработкой игр.

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

Что такое игровой движок

Программное обеспечение, с помощью которого гейм-студии создают свои продукты, принято называть «игровым движком». Самые известные из них — это Unreal Engine, Unity и CryEngine. В них заложены базовые механики, физика и поддержка графики, реализованные посредством одного или нескольких языков программирования. Чем сложнее движок, тем разнообразнее и интереснее можно построить геймплей на его базе.

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

Kodu Game Lab

Kodu Game Lab – бесплатная программа для создания 3D-игр. Изначально она была выпущена на платформе Xbox 360 для обучения детей основам геймдизайна. Закономерно, что процесс работы в ней максимально упрощен.

создание игры в Kodu Game Lab

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

работа с камерой в Kodu Game Lab

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

Construct 2

Construct 2 – приложение для создания двухмерных игр на базе HTML5 с возможностью задавать команды через интерфейс без программирования. Управление здесь осуществляется простым перетаскиванием элементов и отметкой триггерных зон (мест срабатывания скриптов).

рабочая область Construct 2

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

примеры готовых игр

Construct подойдет для создания 2D игры любого жанра, кроме стратегий, поскольку не поддерживает курсор. В его бесплатной версии можно экспортировать игры только для браузера. Платная версия позволяет создавать мультиплатформенные приложения для ПК, iOS и Android. Лицензия стоит 50$ (примерно 3600 рублей).

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

Torque 3D

Torque 3D – игровой движок, с помощью которого можно создавать полноценные 3D видеоигры. Для работы с ним также необязательно знать языки программирования, весь процесс разработки ведется посредством интерфейса. Он заметно уступает по функционалу Unreal Engine и CryEngine, но создать свой «3D экшон» с «набигающими эльфами» уровня начала двухтысячных реально.

движок по созданию игры Torque 3D

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

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

RPGMaker

Название этого приложения говорит само за себя. RPGMaker VX Ace – средство разработки классических 2D ролевых игр. Создавать на ее основе продукты других жанров не получится. Для работы с этой платформой также не требуется специальных знаний, все управление ведется через интерфейс.

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

добавление события в RPGMaker

К базовой версии приложения можно загрузить дополнительный модуль Game Character Hub: Portfolio Edition, который дает возможность разрабатывать новые персонажи и наборы сценариев.

Движок поддерживает воспроизведение трехмерной анимации небольшого размера. При необходимости скрипт игры можно изменить в любом текстовом редакторе.

Сейчас RPGMaker VX Ace можно купить в Steam со скидкой 85% за 179 рублей. Русского языка в стоковой версии нет, но при желании можно установить русификатор.

Ren’Py

Ren’Py – программа для создания визуальных новелл с использованием 2Д и 3Д моделей. Ее движок базируется на собственном языке программирования, который достаточно просто освоить. Вся необходимая документация представлена на сайте разработчика. Кроме того, Ren’Py содержит интерактивный обучающий модуль для начинающих. Чтобы его открыть, зайдите в раздел «Обучение» и нажмите «Запустить проект».

запуск проекта в Ren’Py

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

обучение созданию игры

С помощью Ren’Py можно создавать дистрибутивы игр для запуска не только на компьютере с Windows, но и на других платформах:

  • iOS;
  • Android;
  • Web (запуск в браузере).

Также здесь есть возможность быстро извлечь текстовое содержимое сценария для перевода.

построить дистрибутивы Android iOS Web

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

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector