что нужно для того чтобы создать игру
Как создать игру, ничего не умея. Часть первая: модели и анимации
Привет, меня зовут Павел, и я разработчик игр. На идею рассказать о разработке игр людьми, которые ничего не умеют, но горят желанием, меня натолкнул мой брат.
— Я придумал игру, создай мне её.
— А почему ты сам её не создашь?
— Я не умею.
И я задумался, а так ли сложно что-то создать с нынешним количеством уроков и тем по созданию игр в интернете?
С чего начать?
Для начала нам нужна идея, что за игру мы будем создавать, благо у меня была идея брата. Рассмотрим её поближе.
Думаю, что данный план вполне подойдёт для создания шедевра ААА класса =).
Начнём создавать шедевр
В первую очередь регистрируемся на сайте Unity, скачиваем и устанавливаем движок последней версии. Далее перевоплощаемся в человека, который совершенно ничего не знает о движке и о создании игр.
Идём в интернет и спрашиваем «как нам начать использовать Unity?».
Запускаем Unity Hub.
Выбираем NEW и далее 3D проект, пишем название и местоположение проекта.
И открывается сама программа.
И тут, наверное, знатоки начнут кидаться картошкой со словами «Зачем столько воды? Все и так это знают» НО! Материал предназначен в первую очередь для тех, кто ничего не умеет, а не для гуру геймдева =).
Дальше снова идём в интернет либо проходим туториал в самой программе, чтобы научиться основам работы с движком. Для того, чтобы воспользоваться туториалом в программе, нужно в окне Unity Hub нажать на строчку Learn и выбрать любой из проектов. Я советую пройти все уроки и посмотреть несколько роликов по созданию игр.
Как создать модели для игры?
Я выбрал второй вариант. Отправляемся в AssetStore. Если у вас не активировалась ваша учетная запись, повторно входим в личный кабинет. И начинаем искать подходящие паки. Я нашел то, что нужно, примерно за 3 минуты по поиску knight. В паке, помимо моделей самих персонажей, были модели окружения. Купил за 10 долларов, нажал Import, поставил все галочки, и пропала проблема, неумения моделировать. 1/4 игры готово.
Сцена
Дальше начинается самое нудное. Нужно собрать рабочую зону (scene, сцену, кому как привычнее называть).
Я привык сначала прописывать персонажей, анимацию, и прочую ненужную (очень нужную) ерунду в начале работы, а уже после того как основные механики готовы, я собираю уровень (локацию, игровую зону). Для начала давайте в сцену поставим кусок земли, на которой будет стоять наш персонаж, и начнём работать с анимацией.
Далее добавляем персонажа (рыцаря, демона, ниндзю, тяночку, или кто вам больше по душе). Персонажа берем из папки Prefabs: мы уже знаем (вспоминаем, чему нас научили во вкладке Learn), что туда сохраняют полностью готовые объекты, персонажей и так далее.
И вот он, наш герой, который будет покорять всех и вся.
Анимация
Помните в рейде «Цитадель Ночи» в World of Warcraft был босс Алуриэль? Когда она произносила заклинания, то кричала «Аннигиляция, репликация, детонация, АНИМАЦИЯ. ». Нам необходимо с криком «Анимация!» наброситься на интернет и понять, как её сделать.
Изучаю кучу материала по созданию анимации, и…, либо я дурак, либо лыжи забыл. Реально перелопатил полтора часа материала, но так ничего более-менее подходящего не нашел. Поэтому я решил объединить несколько уроков в один и собрать простой способ анимации.
Что нужно в первую очередь? По мне — так научиться ходить и бегать. Возьмём анимацию ходьбы и бега.
Теперь создаём папку 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 ();
transform.Rotate(0, horizontal * rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = speed * vertical;
controller.SimpleMove(forward * curSpeed);
Тут я немного поясню скрипт.
Верхние четыре строчки — это подключение библиотек, 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. Теперь сделаем, чтобы наш персонаж все-таки побежал. Снова интернет, хотя, по мне, тут можно и логически додумать, как всё провернуть, но всё же я нашел строчку кода, чтобы всё заработало. Добавляем в наш код такую строчку
Если у Вас возникли вопросы, что такое 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;
>
Всё проверили, всё работает, осталось только прикрепить камеру к персонажу. Без заморочек просто перетаскиваем Main Camera в нашего персонажа, далее её настраиваем как нам удобно, проверяем и празднуем ПОБЕДУ!
Заключение
Я считаю, что не имея никаких знаний и денег, а только немного терпения, можно самому создать свою игру. Если вас смущает покупка пака из Asset Store, то всегда можно найти бесплатные паки. Я порылся в интернете и нашел как минимум 6 ресурсов, которые их предоставляют. Советую помимо интернета начать изучение какого-либо направления гейм дева.
Все описанное в этой статье было собрано без специальных знаний с помощью интернета.
Инструкция начинающего разработчика игр
В данной инструкции я попытался осветить основные моменты разработки игр. Инструкция будет полезна для людей, собирающихся заняться разработкой игр в роли лидера (главного разработчика и организатора).
Хочу отметить, что игры бывают разные – большие и маленькие, сложные и лёгкие, и поэтому для каждой игры эта инструкция верна в какой-то своей определённой степени. Охватить всё не удалось, но передать общие моменты, думаю, получилось.
И так Вы решили сделать свою игру, о чём Вам нужно подумать…
Думаем – нужно ли это тебе
Перед тем, как за что-то взяться, необходимо всё обдумать. А перед тем, как заняться разработкой игр, необходимо обдумать всё очень хорошо. Очень часто начинающие разработчики, достигнув определённых успехов в чём-то (сделал мод для игры, небольшой фан-сайт и пр.), начинают грезить созданием своей игры. Это происходит из-за того, что они имеют слабое представление о процессе разработки игр.
Я перечислю основные ошибки в их представлении:
Концепция и ТЗ
Когда-то давно я написал довольно неплохую статью о концепции проекта. За последние пару лет мои взгляды слегка поменялись, но суть осталась та же.
Контент
Я специально выделил этот раздел, так как он является решающим в процессе разработки игр. Под контентом понимается всё содержимое игры, с которым взаимодействует пользователь. Это графика (растровая, векторная, 3D), музыкальное и звуковое сопровождение, видеоряд, сценарий и текст. Также сюда следует добавить медиаматериалы, используемые для продвижения игры (реклама, банеры и прочие).
В английском языке есть такое понятие как «artist» обозначающие сразу художников, музыкантов, режиссёров, писателей и прочих творцов. К сожалению, в русском языке нет нормального аналога этого слова, поэтому я дальше буду использовать понятие «создатель контента».
Разберём основные моменты этого раздела.
Программирование
Как ни странно, создание программного кода для игр не является самой сложной задачей, но в тоже время и не является простой.
Тестирование
О тестировании начинающие разработчики обычно не задумываются, а зря, так как на него тратиться немногим меньше времени, чем на написание программной части. В этом разделе есть два важных момента:
Организационные моменты
Послесловие
Инструкция получилась большой, материала много. Крайне советую прочесть её начинающим разработчикам игр, так как, возможно, она поможет им избежать ошибок в будущем.
UPD: Статья получилась успешной, даже очень. Но в комментариях прослеживаются замечания по поводу отсуствия романтики и отвращения к играм. Поэтому я прокомментирую эти моменты.
Многие опускают тот факт, что статья для начинающих разработчиков игр, претендующих на роль лидера (первый абзац статьи). Не буду отрицать, что со временем, когда приобретаешь опыт разработки игр и жизнь складывается удачно, возвращается романтика и отвращение спадает. Но в самом начале, когда начинаешь с нуля, после того как столкнёшься с первыми серьёзными проблемами, эта романтика и любовь к играм исчезает ко всем чертям. Разработка игр — это не прогулка по ковровой дорожке в розывых очках, а блуждание в лабиринте Минотавра, где много тупиков.
Я не собираюсь своей статьёй вселять в начинающих разработчиков уверенность. Они должны знать, что путь разработчика игр сложен, что они могут встретить нерешаемые проблемы, что их нерализованный проект будет для них символом поражения.
Как создаются видеоигры от идеи до продажи
Многие геймеры с удовольствием проходят игру за игрой и требуют от разработчиков еще, но понятия не имеют, сколько времени уходит на создание видеоигр. В зависимости от масштабов проекта и сложности реализации его отдельных составляющих, производство одной игры может занять как несколько месяцев, так и перерасти в годы тяжелой работы.
Именно поэтому разработка видеоигр – это титанический труд, который даже сложнее производства фильмов. В этой статье разберем все этапы создания игр по порядку, чтобы вы поняли, как это происходит.
Цель будущего проекта
Все начинается с того, что руководитель проекта должен придумать цель для будущей игры. То есть, если команда хочет, чтобы их детище стало мегапопулярным и собрало огромную кассу, то предстоит длительное время размышлять, что это будет за игра, почему ее могут купить и, самое главное, как спланировать задачи, чтобы проект удалось выпустить вовремя, пока на него еще есть спрос.
На первом этапе руководитель проекта также должен определиться с жанром. По сути, это вообще фундамент каждой видеоигры, который в процессе разработки может обрастать дополнениями. Тем не менее полностью менять жанр посреди производственного процесса глупая затея, проще будет начать создание с нуля. Также на первом этапе нужно определиться с сеттингом. Сеттинг – это разновидность стилистик или виртуальных миров, к которым принадлежит проект. Например, фэнтези, sci-fi, стимпанк, постапокалипсис, анимэ, Вторая мировая война и еще масса других вариантов. Когда разработчики поставили перед собой цель, определились с жанром и сеттингом, они могут идти дальше.
Инструменты для разработки
Первым делом разработчики определяются с языком программирования, который и будет основным инструментом для разработки игры. Этим занимается команда программистов, которая должна в зависимости от жанра и сеттинга подбирает подходящий язык программирования. С его помощью создатели начинают оперировать двухмерными и трехмерными объектами в игре, а также привязывают к нему изображения, видео и звуки. Язык программирования словно нить с иголкой помогает сшить все элементы будущей игры воедино.
Также важной частью инструментов для разработки является движок. Сегодня уже никто не делает игры используя исключительно один язык программирования, потому что есть готовые модули, которые и называются движками. Они содержат в себе базовый функционал, который упрощает разработку, но чтобы слепить из готовых инструментов стоящую игру, придется писать много кода. Собственно, это и отнимает больше всего времени в процессе разработки.
Игровая механика
Когда разработчики определились с инструментами, они начинают создавать игровую механику. На деле, это самая важная составляющая любой игры, а не графика, как считают многие неокрепшие в мире видеоигр умы, да простят меня графодрочеры. Механика проекта – это реализация его геймплея. Разработчики должны прописать как будет двигаться персонаж, что будет происходить во время битвы с противниками, как работают бонусы или прокачка и многое другое, зависит от жанра.
Если представить игру в виде автомобиля, то его механика – это все основные системы внутри конструкции, которые заставляют транспортное средство двигаться и выполнять какие-то задачи. Вряд ли вы сильно обрадуетесь, если машина будет иметь потрясающий внешний вид, но из-за кривой механики во время езды ее постоянно будет вести то влево, то вправо. Именно поэтому механику в играх всему голова.
Прототипирование для чайников: как сделать хорошую игру
Что касается реализации игровой механики, то все начинается с программирования объектов, к которым относится главный герой и другие модели. Далее идет программирование управления и написание физического движка. Второй, как правило, отвечает за движения объектов, которые происходят без воздействия на них игрока. И, наконец, разработчики садятся за написание искусственного интеллекта (ИИ), который помогает оживить NPC, врагов и прочих персонажей в игре.
Место действия
Когда игровая механика готова, разработчики переходят к созданию уровней. Получается, что у них на руках уже есть определенная сводка правил, которая работает, и нужно разработать места, где они будут применяться. В каждой игре есть уровни и определенные локации. Даже в проектах с открытым миром есть конкретные области, которые реализуются отдельно и потом собираются по кусочкам, просто в готовом виде игроки это не замечают.
Как правило, созданием уровней занимаются левелдизайнеры. Причем сотрудников на эту должность берут из числа заядлых геймеров. Только человек, который регулярно играет, может понять, как от перемещения главного героя и объектов в конкретной локации будут меняться игровые ситуации. Все это прорабатывается до мелочей, так что не думайте, что уровни создаются на скорую руку, лишь бы сделать красивое оформление. Над каждым участком игры работают профессионалы и это занимает кучу времени.
Что из себя представляет профессия геймдизайнер и что нужно делать на должности
Внешний вид игры
Только после того, как у проекта уже появилась механика и базовые модели уровней, разработчики садятся за графику. Им нужно украсить блеклые формы красивой картинкой, чтобы подчеркнуть сеттинг проекта и в игру было приятно играть. Изначально дизайнеры рисуют арты, которые кучу раз переделываются или улучшаются. Когда появляются окончательные варианты артов, в дело вступают люди, которые занимаются 3D моделированием. Они создают виртуальные модели на основе рисунков.
Далее разработчики делают анимирование 3D моделей, которые ранее были созданы, и переходят к завершающему этапу создания графики. На нем нужно сделать фоны для уровней, добавить какие-то спецэффекты и украсить игровое меню. Когда все наконец-то будет готово можно двигаться дальше.
Увлекательная история
Как правило, уже после создания «костяка» игры и графической составляющей создатели переходят к сюжету. Чтобы проект купили, он должен быть интересным, и поэтому с каждым годом на эту составляющую игры делают все больший акцент. Есть студии, которые изначально придумывают сюжет и прописывают его до мельчайших деталей, а потом уже садятся за разработку. Такой вариант тоже возможен и он работает, но большая часть игр все же делается по старинке, сразу со скелета, а потом уже добавляют какой-то сюжет.
Если вы думаете, что на этом этапе достаточно придумать историю и как-то подвязать под нее игру, то ошибаетесь. Разработка сюжета включает в себя реализацию диалогов, видеовставки, заскриптованные сцены, случайные события в игре и даже изменение повествования в зависимости от действий игрока, если это предусмотрено игрой.
Звуковое сопровождение
Согласитесь, какой бы красивой и увлекательной не была игра, если в ней нет звука, то вы вряд ли задержитесь в ней дольше, чем на пару минут. Последний этап процесса разработки включает в себя создание звуковых эффектов. Они не просто помогают услышать игру, а могут положительно сказаться на ощущении атмосферы. Опытные разработчики делают невероятные вещи со звуком, которые помогают их проектам громко выстреливать на этапе продаж.
Кроме звуковых эффектов, также записывается музыка и делается озвучка персонажей. Без этого тоже никуда, и часто богатые студии даже привлекают известных музыкантов или актеров на это дело. В итоге в игре могут звучать песни вашей любимой группы, либо какой-то персонаж заговорит голосом популярного голливудского актера. Когда в проекте появляется звук, он практически завершен, но разработчикам нужно решить последнюю задачу, от результата которой напрямую зависит успех игры.
Тестирование
Практически за каждый вышеописанный этап отвечает отдельный человек или группа людей. Игры всегда создаются по частям, параллельно с завершением определенных ее кусочков программисты собирают из всего этого полноценный пазл. После того, как они накинут на проект звук, можно перейти к этапу тестирования, который часто доставляет больше всего проблем.
На этом этапе финальная версия проекта переходит в руки тестировщиков. Им нужно месяцами проходить один участок игры за другим и выискивать в нем ошибки. Каждая игра — это огромный проект, над которым работают десятки, а то и сотни человек, поэтому проблем в них куча. Задача тестеров отловить большинство из них и отдать отчет программистам, чтобы те исправили ошибки. Именно большинство, ведь избавиться от всех багов невозможно. Не было еще ни одной игры, которая на релизе была бы идеальной. Такой ее может сделать только качественная поддержка от разработчиков в будущем, но об этом позже.
Кто такие игровые тестировщики и почему это одна из самых неблагодарных профессий в IT
Продажа игры
Когда проект наконец-то готов или находится на завершающей стадии разработки, в дело вступает издатель. Его основная задача заниматься рекламой, локализацией и выбором площадок для продажи проекта. Если игру делает инди-студия, то этим она занимается самостоятельно, потому что у нее либо ограниченный бюджет, либо его нет. Издатель же дает деньги на реализацию в самом начале разработки, поэтому он так важен для создателей видеоигр.
Пожалуй, самая сложная задача – это выбор способа распространения игры. Дело в том, что сегодня есть множество онлайн площадок с играми и с каждым годом их становится все больше. У всех этих Steam, Origin, Epic Store и прочих виртуальных магазинчиков своя аудитория и свои правила для разработчиков. При этом именно издатель выбирает с кем сотрудничать, чтобы ему было выгодно, и потом игра может появиться либо только в одном магазине, либо во всех сразу. Естественно, не обходится без физических носителей, но их выпускают только если проект популярен и его делает крупная компания. Инди-игры на дисках вы не увидите, их можно купить только в онлайн магазинах, есть пара исключений, но они появляются только в том случае, если проект от независимых разработчиков стал известен во всем мире. Чтобы заработать еще денег, выпускают тираж дисковой версии.
Техническая поддержка
Казалось бы, после того как игра разработана и поступила в продажу, разработчики могут забить на нее и спокойно ждать поступления денег на счет. Некоторые так и делают, только с таким подходом на одном выпущенном проекте их существование как разработчиков игр заканчивается. Популярные студии постоянно следят за развитием игры и непрерывно выпускают патчи, которые исправляют ошибки в проекте или что-то в нем меняют, например, баланс, если он важен в игре. У некоторых компаний даже есть полноценные отделы технической поддержки, где люди не занимаются разработкой проекта, а подключаются только после релиза для создания патчей.
Также к поддержке игры можно отнести создание многочисленных DLC, на которых можно снова заработать денег. При этом они добавляют в уже знакомую игру еще несколько часов геймплея. Некоторые DLC получаются прямо-таки отличными, но есть и те, за которые вы отваливаете чуть ли не всю стоимость полноценной игры, а получаете контента буквально на час.
Именно так выглядят все этапы разработки видеоигр, и лишь изредка последовательность может меняться. Сказать сколько времени занимает разработка игры, даже в среднем, сложно. Если это конвейеры, которыми так любят злоупотреблять ребята из EA и Ubisoft, то им достаточно 10-12 месяцев, чтобы выпустить новый CoD или Assassin’s Creed.
Когда речь идет о создании новой части GTA, то на разработку уходят годы, и это при том, что игру делают сотни человек. Соответственно, предугадать сколько будет разрабатываться игра невозможно, этого не знают даже создатели. Ведь мы прекрасно знаем, что практически каждый третий проект по несколько раз откладывают, но теперь вы хотя бы понимаете почему, работы тут навалом.