что такое разработка игр
Как создаются видеоигры от идеи до продажи
Многие геймеры с удовольствием проходят игру за игрой и требуют от разработчиков еще, но понятия не имеют, сколько времени уходит на создание видеоигр. В зависимости от масштабов проекта и сложности реализации его отдельных составляющих, производство одной игры может занять как несколько месяцев, так и перерасти в годы тяжелой работы.
Именно поэтому разработка видеоигр – это титанический труд, который даже сложнее производства фильмов. В этой статье разберем все этапы создания игр по порядку, чтобы вы поняли, как это происходит.
Цель будущего проекта
Все начинается с того, что руководитель проекта должен придумать цель для будущей игры. То есть, если команда хочет, чтобы их детище стало мегапопулярным и собрало огромную кассу, то предстоит длительное время размышлять, что это будет за игра, почему ее могут купить и, самое главное, как спланировать задачи, чтобы проект удалось выпустить вовремя, пока на него еще есть спрос.
На первом этапе руководитель проекта также должен определиться с жанром. По сути, это вообще фундамент каждой видеоигры, который в процессе разработки может обрастать дополнениями. Тем не менее полностью менять жанр посреди производственного процесса глупая затея, проще будет начать создание с нуля. Также на первом этапе нужно определиться с сеттингом. Сеттинг – это разновидность стилистик или виртуальных миров, к которым принадлежит проект. Например, фэнтези, sci-fi, стимпанк, постапокалипсис, анимэ, Вторая мировая война и еще масса других вариантов. Когда разработчики поставили перед собой цель, определились с жанром и сеттингом, они могут идти дальше.
Инструменты для разработки
Первым делом разработчики определяются с языком программирования, который и будет основным инструментом для разработки игры. Этим занимается команда программистов, которая должна в зависимости от жанра и сеттинга подбирает подходящий язык программирования. С его помощью создатели начинают оперировать двухмерными и трехмерными объектами в игре, а также привязывают к нему изображения, видео и звуки. Язык программирования словно нить с иголкой помогает сшить все элементы будущей игры воедино.
Также важной частью инструментов для разработки является движок. Сегодня уже никто не делает игры используя исключительно один язык программирования, потому что есть готовые модули, которые и называются движками. Они содержат в себе базовый функционал, который упрощает разработку, но чтобы слепить из готовых инструментов стоящую игру, придется писать много кода. Собственно, это и отнимает больше всего времени в процессе разработки.
Игровая механика
Когда разработчики определились с инструментами, они начинают создавать игровую механику. На деле, это самая важная составляющая любой игры, а не графика, как считают многие неокрепшие в мире видеоигр умы, да простят меня графодрочеры. Механика проекта – это реализация его геймплея. Разработчики должны прописать как будет двигаться персонаж, что будет происходить во время битвы с противниками, как работают бонусы или прокачка и многое другое, зависит от жанра.
Если представить игру в виде автомобиля, то его механика – это все основные системы внутри конструкции, которые заставляют транспортное средство двигаться и выполнять какие-то задачи. Вряд ли вы сильно обрадуетесь, если машина будет иметь потрясающий внешний вид, но из-за кривой механики во время езды ее постоянно будет вести то влево, то вправо. Именно поэтому механику в играх всему голова.
Прототипирование для чайников: как сделать хорошую игру
Что касается реализации игровой механики, то все начинается с программирования объектов, к которым относится главный герой и другие модели. Далее идет программирование управления и написание физического движка. Второй, как правило, отвечает за движения объектов, которые происходят без воздействия на них игрока. И, наконец, разработчики садятся за написание искусственного интеллекта (ИИ), который помогает оживить NPC, врагов и прочих персонажей в игре.
Место действия
Когда игровая механика готова, разработчики переходят к созданию уровней. Получается, что у них на руках уже есть определенная сводка правил, которая работает, и нужно разработать места, где они будут применяться. В каждой игре есть уровни и определенные локации. Даже в проектах с открытым миром есть конкретные области, которые реализуются отдельно и потом собираются по кусочкам, просто в готовом виде игроки это не замечают.
Как правило, созданием уровней занимаются левелдизайнеры. Причем сотрудников на эту должность берут из числа заядлых геймеров. Только человек, который регулярно играет, может понять, как от перемещения главного героя и объектов в конкретной локации будут меняться игровые ситуации. Все это прорабатывается до мелочей, так что не думайте, что уровни создаются на скорую руку, лишь бы сделать красивое оформление. Над каждым участком игры работают профессионалы и это занимает кучу времени.
Что из себя представляет профессия геймдизайнер и что нужно делать на должности
Внешний вид игры
Только после того, как у проекта уже появилась механика и базовые модели уровней, разработчики садятся за графику. Им нужно украсить блеклые формы красивой картинкой, чтобы подчеркнуть сеттинг проекта и в игру было приятно играть. Изначально дизайнеры рисуют арты, которые кучу раз переделываются или улучшаются. Когда появляются окончательные варианты артов, в дело вступают люди, которые занимаются 3D моделированием. Они создают виртуальные модели на основе рисунков.
Далее разработчики делают анимирование 3D моделей, которые ранее были созданы, и переходят к завершающему этапу создания графики. На нем нужно сделать фоны для уровней, добавить какие-то спецэффекты и украсить игровое меню. Когда все наконец-то будет готово можно двигаться дальше.
Увлекательная история
Как правило, уже после создания «костяка» игры и графической составляющей создатели переходят к сюжету. Чтобы проект купили, он должен быть интересным, и поэтому с каждым годом на эту составляющую игры делают все больший акцент. Есть студии, которые изначально придумывают сюжет и прописывают его до мельчайших деталей, а потом уже садятся за разработку. Такой вариант тоже возможен и он работает, но большая часть игр все же делается по старинке, сразу со скелета, а потом уже добавляют какой-то сюжет.
Если вы думаете, что на этом этапе достаточно придумать историю и как-то подвязать под нее игру, то ошибаетесь. Разработка сюжета включает в себя реализацию диалогов, видеовставки, заскриптованные сцены, случайные события в игре и даже изменение повествования в зависимости от действий игрока, если это предусмотрено игрой.
Звуковое сопровождение
Согласитесь, какой бы красивой и увлекательной не была игра, если в ней нет звука, то вы вряд ли задержитесь в ней дольше, чем на пару минут. Последний этап процесса разработки включает в себя создание звуковых эффектов. Они не просто помогают услышать игру, а могут положительно сказаться на ощущении атмосферы. Опытные разработчики делают невероятные вещи со звуком, которые помогают их проектам громко выстреливать на этапе продаж.
Кроме звуковых эффектов, также записывается музыка и делается озвучка персонажей. Без этого тоже никуда, и часто богатые студии даже привлекают известных музыкантов или актеров на это дело. В итоге в игре могут звучать песни вашей любимой группы, либо какой-то персонаж заговорит голосом популярного голливудского актера. Когда в проекте появляется звук, он практически завершен, но разработчикам нужно решить последнюю задачу, от результата которой напрямую зависит успех игры.
Тестирование
Практически за каждый вышеописанный этап отвечает отдельный человек или группа людей. Игры всегда создаются по частям, параллельно с завершением определенных ее кусочков программисты собирают из всего этого полноценный пазл. После того, как они накинут на проект звук, можно перейти к этапу тестирования, который часто доставляет больше всего проблем.
На этом этапе финальная версия проекта переходит в руки тестировщиков. Им нужно месяцами проходить один участок игры за другим и выискивать в нем ошибки. Каждая игра — это огромный проект, над которым работают десятки, а то и сотни человек, поэтому проблем в них куча. Задача тестеров отловить большинство из них и отдать отчет программистам, чтобы те исправили ошибки. Именно большинство, ведь избавиться от всех багов невозможно. Не было еще ни одной игры, которая на релизе была бы идеальной. Такой ее может сделать только качественная поддержка от разработчиков в будущем, но об этом позже.
Кто такие игровые тестировщики и почему это одна из самых неблагодарных профессий в IT
Продажа игры
Когда проект наконец-то готов или находится на завершающей стадии разработки, в дело вступает издатель. Его основная задача заниматься рекламой, локализацией и выбором площадок для продажи проекта. Если игру делает инди-студия, то этим она занимается самостоятельно, потому что у нее либо ограниченный бюджет, либо его нет. Издатель же дает деньги на реализацию в самом начале разработки, поэтому он так важен для создателей видеоигр.
Пожалуй, самая сложная задача – это выбор способа распространения игры. Дело в том, что сегодня есть множество онлайн площадок с играми и с каждым годом их становится все больше. У всех этих Steam, Origin, Epic Store и прочих виртуальных магазинчиков своя аудитория и свои правила для разработчиков. При этом именно издатель выбирает с кем сотрудничать, чтобы ему было выгодно, и потом игра может появиться либо только в одном магазине, либо во всех сразу. Естественно, не обходится без физических носителей, но их выпускают только если проект популярен и его делает крупная компания. Инди-игры на дисках вы не увидите, их можно купить только в онлайн магазинах, есть пара исключений, но они появляются только в том случае, если проект от независимых разработчиков стал известен во всем мире. Чтобы заработать еще денег, выпускают тираж дисковой версии.
Техническая поддержка
Казалось бы, после того как игра разработана и поступила в продажу, разработчики могут забить на нее и спокойно ждать поступления денег на счет. Некоторые так и делают, только с таким подходом на одном выпущенном проекте их существование как разработчиков игр заканчивается. Популярные студии постоянно следят за развитием игры и непрерывно выпускают патчи, которые исправляют ошибки в проекте или что-то в нем меняют, например, баланс, если он важен в игре. У некоторых компаний даже есть полноценные отделы технической поддержки, где люди не занимаются разработкой проекта, а подключаются только после релиза для создания патчей.
Также к поддержке игры можно отнести создание многочисленных DLC, на которых можно снова заработать денег. При этом они добавляют в уже знакомую игру еще несколько часов геймплея. Некоторые DLC получаются прямо-таки отличными, но есть и те, за которые вы отваливаете чуть ли не всю стоимость полноценной игры, а получаете контента буквально на час.
Именно так выглядят все этапы разработки видеоигр, и лишь изредка последовательность может меняться. Сказать сколько времени занимает разработка игры, даже в среднем, сложно. Если это конвейеры, которыми так любят злоупотреблять ребята из EA и Ubisoft, то им достаточно 10-12 месяцев, чтобы выпустить новый CoD или Assassin’s Creed.
Когда речь идет о создании новой части GTA, то на разработку уходят годы, и это при том, что игру делают сотни человек. Соответственно, предугадать сколько будет разрабатываться игра невозможно, этого не знают даже создатели. Ведь мы прекрасно знаем, что практически каждый третий проект по несколько раз откладывают, но теперь вы хотя бы понимаете почему, работы тут навалом.
Геймдизайнер с нуля: как начать делать игры без опыта
Голубев Никита, коммерческий автор и переводчик, специально для блога Нетологии перевёл статью разработчика игр Анжелы Хе о том, как без навыков программирования создать свою первую игру.
Всего 2 года назад я была 17-летней школьницей и ничего не знала о программировании. Это не помешало мне начать учиться и через несколько месяцев выпустить свою первую игру в Steam. Сегодня у меня более 10 игр для ПК, интернета и мобильных устройств и свыше 1,9 млн игроков.
Не важно, что вы умеете сейчас — при должном желании вы тоже сможете делать игры. Два года назад такое казалось невозможным: это было самое сложное, что я сделала в жизни, и оно того стоило. Теперь я понимаю, что в разработке игр, как и в любом другом деле, вы растёте только тогда, когда пробуете, ошибаетесь и совершенствуетесь.
Всему, что я знаю, я научилась сама, а теперь научу вас.
Чтобы сделать игру, нужно пройти 6 этапов:
Концепция
Совет
У вас есть классная идея. Но как оформить её на бумаге?
У каждого свой путь. Одни составляют дизайн-документы по 60 страниц, другие напишут лист неразборчивых заметок. Не знаю, как удобнее для вас, но обязательно зафиксируйте следующее:
Когда приходит вдохновение, бросайте всё и пишите. В следующий раз, когда мысль уйдёт, не понадобится высасывать идеи из пальца.
Инструменты
Графика
Совет
Если вы не умеете программировать, сначала прочтите раздел «Программирование». Вряд ли вы хотите потратить время на графику и выкинуть её потому, что под неё не написать код.
Даже если вы не умеете рисовать, игру можно сделать красивой, используя три визуальных принципа: цвет, форма и объём.
Thomas Was Alone — простая и прекрасная игра
Интерфейс
Подумайте, как сделать игру уникальной с помощью цветовой схемы, шрифтов и иконок без потери удобства для игрока. Понятна и читается ли важная информация?
Неудачный и удачный шрифт
2D-анимация
Анимацию можно реализовать двумя способами:
Что ещё может пригодиться
Советы, которые применимы не только к игровой графике, но и к другим программам:
Без тайлов и с тайлом
Пятно расширяется, но углы остаются прежними
Инструменты
Программирование
Совет
Выберите игровой движок, среду разработки и начинайте погружаться в код.
Представленных ниже знаний достаточно для начала. Все примеры написаны на C++, одном из языков программирования в Unity3D. (Примечание переводчика: на самом деле в Unity используется C#, который похож на C++).
int — тип данных, i — имя переменной, = 0 — значение переменной.
Используя оператор else, можно расширить условие и отобразить что делать, если условие не соответствует истине:
For-циклы похожи на while-циклы. Для while мы пишем так:
Равнозначный for-цикл будет таким:
Тогда при выводе функции выполняются два выражения внутри неё.
Если в коде что-то идёт не так, на помощь приходят исключения. Они как бы говорят: «Так, погоди, здесь ты сделал что-то нелогичное. Перепроверь ещё раз».
О чём ещё надо знать:
Код — это вызов самому себе. И ничего не понимать поначалу — нормально.
Как и любому навыку, программированию нужно обучаться. И, возможно, это окажется довольно интересно.
Другие немаловажные основы программирования:
Инструменты
В Unity Asset Store, bitbucket и GitHub очень много бесплатных ассетов. В своих проектах я использую минимум по два. Они упрощают жизнь, но далеко не идеальны. Заметили ошибку — исправляйте и говорите разработчику о ней.
Немаловажный, даже главный источник решения проблем с кодом — Гугл!
Совет
Аудио способно создавать настроение и погружать в игру, но для него нужна память.
Для начала решите: вы хотите звук? Если да, будет ли в игре музыка, звуковые эффекты, озвучка или повествование.
В любом случае потребуется запись и сведение таким образом, чтобы звук подходил под настроение игры. Например, Bastion использует органические и инструментальные звуки, хорошо вписывающиеся в мир игры. Crypt of the Necrodancer включил в себя смесь электронных ритмов и восьмибитного рока, чтобы передать темп и яркость игры.
Погружение решает. Если звуки не совпадают с настроением игры, игроку будет сложно погрузиться в ваш мир.
Инструменты
Приложения для работы с аудио:
Подготовка к публикации
Совет
Существует небольшая вероятность — на 99,99 процентов, что в игре есть ошибки. А это значит, что самое время заняться баг-тестом.
Как тестировать игру на баги?
Типичные ошибки
В чём дело: функция выполняется с несуществующей (null) переменной.
Быстрое решение: проверьте, является ли переменная null.
Примечание: Проверьте, какие кавычки вы используете.
» //правильные кавычки;
» //ненужные кавычки, они принесут вам немало ошибок.
Советы по оптимизации
Инструменты (только для Unity)
Публикация
Совет
Самое время показать всему миру своё творение.
Продвижение — самая волнительная стадия. Если вы сомневаетесь, вам поможет сообщество гейм-дизайнеров. Помните, что вы не одиноки, и раз прошли так много, нужно завершить дело до конца.
Вы не узнаете, станет ли игра хитом, пока не опубликуете её.
Если хотите, чтобы все узнали об игре, напишите анонсы для игровых медиа, участвуйте в фестивалях и конференциях.
Отправьте описание игры в прессу за неделю до выхода — дайте людям время написать о ней. Может случиться, что о ней не станут писать, но помните: журналисты любят красивые истории о разработчиках, уникальную или противоречивую идею и медиа-кит.
Не пишите в игровые издания, которые не освещают ваш жанр или целевую игровую платформу.
Письмо видеоблогеру Markiplier, чей канал насчитывает более 21 миллиона подписчиков
Это прекрасный инструмент для продвижения: Agar.io обрела популярность на 4chan, Butterfly Soup подскочила в загрузках после внимания в Твиттере.
Как лучше: публиковаться через издателя или самому. Хотите пойти по пути Hotline Miami, выпущенной Devolver Digital, или перенять опыт Farmville и Doki Doki Literature Club?
Чтобы сотрудничать с издателем, нужно сначала его найти. После этого будет небольшой ворох бумажной работы, зато вы получите достаточно средств для развития игры.
Если собираетесь издаваться самостоятельно, готовьтесь тратить немало времени на изучение маркетинга. Вы можете провалить кампанию по продвижению, но в процессе наберётесь ценных знаний и сэкономите деньги.
Количество установок игры растёт
Получилось! Теперь расслабьтесь, возьмите что-нибудь вкусное и отдохните. Вы работали не покладая рук и заслужили это.
Не бойтесь, если игра не получила ожидаемого внимания — это нормально. У моей первой игры всего 255 загрузок в Steam.
Главное, что вы сделали игру и многому научились. Сейчас этого достаточно, и всегда есть возможность попробовать ещё раз с новыми знаниями.
Инструменты
Сервис presskit() помогает разработчикам оформить описание игры для прессы.
Платформы для публикации:
Заключение
Нет простого пути создания игры. Есть только ваши решительность и усилия.
За каждым Half-Life, Minecraft и Uncharted лежат океаны крови, пота и слез.
Кен Левин, создатель Bioshock
Вы будете допускать ошибки, чувствовать себя в тупике и плакать. Это нормально — значит, вы растёте над собой.
На чём создавать игры: что есть что в мире геймдева
Так много разных инструментов для создания игр, что голова идёт кругом. Разбираемся, что это вообще такое и что выбрать для себя.
Unity, Unreal Engine, Godot, Game Maker Studio, Source, RPG Maker, CryEngine, Creation Engine, C++, C#, JavaScript, Swift, Java, Objective-C, Lua, Python, PyGame, PHP, Scratch, DirectX, PhysX, OpenGL, Havok, Cocos2D…
Большой список, не правда ли? Это только часть технологий, которые используются для создания игр. Если вы очень хотите войти в геймдев, но пока ещё ничего не знаете, сам этот список может вас отпугнуть. Или же по чьему-нибудь совету вы что-то выберете, а потом, освоившись немного, поймёте, что это не совсем то, что вам нужно.
Эта статья — смесь энциклопедии и дорожной карты, которая поможет вам выбрать инструментарий для себя.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Что есть что
Движки для разработки игр
Игры создаются с помощью движков — набора инструментов, который позволяет работать с графикой, физикой, скриптами и прочим.
Вот скриншот интерфейса движка Unity:
В левом верхнем углу — игровая сцена, на которую можно добавлять объекты, двигать их, убирать и так далее. Ниже расположено игровое окно — в нём можно увидеть, как будет выглядеть готовая игра. Можно даже нажать на кнопку Play и поиграть.
Дальше можно увидеть иерархию объектов на сцене, файловый менеджер и вкладку Inspector — в ней есть разные настройки для выбранного объекта. Кроме того, можно зайти в настройки проекта и указать желаемые показатели для гравитации, освещения, теней, качества графики и всего прочего.
Application Programming Interface — интерфейс программирования
Вы либо используете готовый движок, либо пишете свой — у обоих вариантов есть плюсы и минусы.
Список современных движков:
Впрочем, вы можете обойтись и без движка, если игра очень маленькая, вроде браузерки или небольшого платформера.
Языки программирования
Дальше идут языки программирования — с их помощью вы будете писать для компьютера условия и команды: если А, сделай Б, а если В, сделай Д. Несмотря на то что движки берут на себя огромную часть работы, программировать придётся много.
Перемещение по меню, переход между локациями, управление персонажем, движение камеры, смена музыки, диалоги, система квестов — всё это и многое другое нужно будет запрограммировать. Не говоря уже об игровом искусственном интеллекте.
Если вы уже выбрали какой-то конкретный движок, то и язык нужно выбирать подходящий. Например, в Unity поддерживаются C# и JavaScript
(его модификация, которая называется UnityScript), а в UE4 — С++.
Список языков:
Фреймворки
Вы можете использовать язык, чтобы написать игру без движка. Например, на JavaScript создаются браузерные игры, на C++ или C# — игры для компьютеров, на Java — для устройств на Android, и так далее.
Для этих языков есть либо библиотеки для работы с графикой, либо целые фреймворки для создания игр. Фреймворк — это каркас, почти готовое приложение. Разработчик просто дописывает для этого каркаса какие-то дополнительные функции, подгоняя его тем самым под свои нужды.
Разработчики игры Celeste решили отказаться от движков в пользу фреймворка XNA от Microsoft для языка C#. В итоге у них получился платформер с очень крутым управлением.
Использование библиотек или фреймворков, наряду с написанием собственного движка, даёт максимальную свободу. Но у вас пропадает возможность пользоваться графическим интерфейсом, а все настройки и параметры приходится писать с помощью кода.
Список фреймворков:
Библиотеки
Библиотеки, в отличие от фреймворков, не дают почти готовое приложение, но предоставляют определённые инструменты. Самый простой пример — библиотека Math (математика), которая есть практически в каждом языке программирования.
Использование Math позволяет вам без проблем возводить числа в степени, находить корни, искать модули, высчитывать синусы, косинусы и так далее. Вы не реализуете всё это самостоятельно, а просто вызываете нужную функцию и передаёте ей параметры.
В геймдеве используют более сложные библиотеки, которые позволяют работать с графикой или физикой. Например, графические библиотеки позволяют растрировать игровые объекты.
То есть разработчик не пишет для видеокарты инструкцию, какие пиксели ей выводить. Вместо этого он добавляет в игру спрайты (изображения)
или 3D-модели, а графическая библиотека сама высчитывает, как это должно выглядеть на мониторе.
Физические библиотеки берут на себя работу (сюрприз!) с физикой: ускорение свободного падения, закон сохранения энергии, импульсы, векторы — самые безобидные примеры.
Аналогичные библиотеки есть и для работы со звуком и другими аспектами игровой разработки.
Список графических библиотек:
Список физических библиотек:
Впрочем, если вы используете какой-нибудь движок, то особо задумываться об этом не нужно.
Что из этого выбрать
Если вы новичок, то стоит начать с движка — это поможет лучше понять, как вообще строится процесс создания игр. Выберите один движок и создайте несколько проектов. При этом постарайтесь понять, что происходит под капотом. Если у вас есть опыт в программировании, всё равно начните с движка — причина та же.
Критерии выбора движка следующие:
Если хотите, почитайте отзывы, но они могут вас запутать. Так, многие не любят Unity, но разработчиков на нём становится всё больше.
Source
Например, на Source сделаны практически все игры от Valve вроде Half-Life и Portal.