Интересное

Как делают игры: все этапы создания

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

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

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

Три вида компаний-разработчиков

Существует три типа игровых студий:
  • Независимые (инди) – энтузиасты, независимые разработчики;
  • Mobile – команды, занимающиеся разработкой мобильных игр;
  • AAA (Triple A студии) – буквы A обозначают финансирование. Чем больше этих букв, тем серьезней проект.

Концепция и документация

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

Все финальные решения заносятся в три основных документа: концепт-документ, vision-документ и Feature-лист.

Концепт-документ – это краткое и емкое описание игры.
Стандартные пункты этого документа таковы:
  • название игры;
  • основная идея;
  • жанр;
  • аудитория;
  • особенности;
  • сюжет;
  • механика геймплея;
  • описание игрового мира и персонажей;
  • на какие платформы ориентирована игра;
  • системные требования;
  • сроки и бюджет разработки;
  • какие технологии будут использоваться в игре.
Vision-документ посвящен не самому игровому процессу, а тому, что хочется получить в итоге.
Это документ содержит такие пункты:
  • полное описание игры;
  • целевая аудитория, исследование рынка;
  • конкуренты;
  • стиль и арты;
  • бизнес-модель – как будет монетизироваться игра.
Feature-лист посвящен таким вопросам:
  • Особенности – на какие детали будет больший акцент, например, на графику, уникальные игровые механики,
  • Уникальность – сюда входят все моменты, которые делают эту игру уникальной на фоне конкурентов.
Эти документы станут основой для дальнейшей разработки. Все вместе эти три документа формируют так называемый общий дизайн-документ: диз-док. На ранней стадии выбирается игровой движок из существующих или пишется свой «с нуля». Но второй вариант на сегодняшний момент – это устаревшая практика. Собираются референсы – фотографии из реальной жизни, игр или кино. Эти концепты предоставляют продюсерам и инвесторам. После этого концепт-художники приступают к созданию иллюстраций.

Прототипирование

На этом этапе начинается непосредственная реализация задуманного. Художники создают концепт-арты, а 3D-моделлеры – первые модели персонажей и локаций.

3D моделирование можно разделить на 2 направления. Первое это Hard-Surface. Речь идет о создании рукотворных объектов для наполнения мира: бутылок, коробок, кирпичей и многого другого. К этому направлению можно отнести и здания. Их можно собирать из отдельных модулей, как конструктор. Иногда прибегают к процедурному моделированию, используя программу Houdini. К этому направлению относят и транспорт.

Второе направление – это Organic Modeling, то есть природа. К органике относятся деревья и существа, персонажи.

Создание персонажей

Как создаются персонажи? Сперва определяют, каким именно будет персонаж, животным, монстром или человеком. Далее эти референсы собираются в композиции – мудборды. Художник рисует концепт-эскиз и передает 3D-моделлеру.

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

Второй этап – внутреннее наполнение и большие детали. Третий – маленькие детали и нюансы анатомии. Иногда бывает и 4 этап, сверхдетализация, поры или морщины. Далее идет ретопология сетки, после этого создается UV-карта для будущих текстур. Последующие этапы – запекание, текстуринг.
Модель переносится в другой 3D-пакет. Стандартно используют 3DS Max, а для более точной физической анимации – программу Cascader. Создается скелет, производится анимация. Сложные движения человеческого тела фиксируются с модели с помощью специальных датчиков, а затем переносятся в программу.

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

Создание уровней

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


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

После компоновки блоков кода программисты приступают к практической работе. Обычно применяют языки программирования C++ и C#. Для графики подключаются библиотеки DirectX и OpenGL, Vulkan.
В играх широко используются методы объектно-ориентированного программирования. Как это работает? Допустим, вам нужно создать оружие. Для этого нужно создать базовый класс – оружие. Этому классу приписываются базовые свойства: урон, дальность стрельбы, количество патронов. Затем выполняется наследование от базового класса и подстановка определенных параметров.

Чтобы сделать разработку игры еще проще, в рамках самого движка используют визуальное программирование. Все просто: нужно манипулировать блок-схемами, которые называются узлами (нодами).
Для мобильных игр используют языки программирования Java или Swift. Последняя применяется для программирования под устройства с операционной системой iOS (Apple). Для браузерных игр применяют HTML 5, PHP и Java Script с дополнительными библиотеками.

Геймплей-программисты воплощают в жизнь все игровые механики. Это все то, что оживляет мир и позволяет игроку взаимодействовать с ним. AI-программист создает искусственный интеллект – модель поведения ботов. Здесь также часто используют ноды вместо того, чтобы писать код. Это значительно ускоряет процесс разработки.

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

Вертикальный срез

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

Производство контента

На этом этапе в течение нескольких лет создается основная масса игрового контента. Художники создают 3D-модели, локации, интерфейсы. Программисты пишут код, настраивают физику и ИИ. Композитор сочиняет музыку. Озвучиваются диалоги. Все компоненты постепенно собираются воедино. Этот этап часто длится годами. Работа над всеми серьезными проектами длится, как правило, 3-5 лет.

Тестирование

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

Подготовка к релизу

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

Релиз и последующая поддержка

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

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

Другие статьи в нашем блоге

    Обучаем детей делать игры

    Программирование для детей младшего возраста

    С 6 лет, только очные занятия

    Основы программирования на Scratch

    Изучим основы программирования: операторы, списки и переменные. Все строчки кода уже написаны, но, чтобы получить результат, нужно скомбинировать их в блоки. Подходит для ребят, которые никогда не занимались программированием.
    В конце курса ученик сможет создавать простые 2D игры, мультфильмы и анимированные открытки.
    С 8 лет, очные и online занятия

    Программирование для детей Minecraft

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

    Программирование для подростков и старшекласников

    С 10 лет, очные и online занятия
    Программирование «по-взрослому»: начнём с основ языка, анализа данных и простых программ. По окончании курса ребята научатся создавать простые 3D-игры, искусственный интеллект и сложные чат-боты.
    С 10 лет, очные и online занятия
    Углубленный курс программирования на Python. Подготовка к олимпиадам по информатике и спортивному программированию. Изучим сложные алгоритмические конструкции и методы решения задач. Курс развивает навыки анализа и оптимизации кода, что является неотъемлемой частью успешного участия в олимпиадах по программированию.
    С 10 лет, очные и online занятия
    Научим рисовать на графическом планшете, а также работать с графическими редакторами — Adobe Photoshop, SAI Paint Tool. Пройдем принципы композиции, цвета и типографики.
    С 10 лет, очные и online занятия
    Изучим основы html, css и JavaScript. Усвоим актуальные тренды веб-дизайна и научимся проектировать макеты сайтов в графическом редакторе Figma.
    С 10 лет, очные и online занятия
    Изучим основы трёхмерного digital-рисунка. Научимся рисовать персонажей и локации для игр и мультфильмов.
    Не требует дополнительной подготовки.
    С 10 лет, только индивидуальные занятия
    Научимся программировать на языке C# и работать с визуальной средой. К концу курса каждый ученик сделает 3D игру по собственному проекту.
    С 12 лет, только индивидуальные занятия
    Научимся создавать приложения для iOS и Android. Освоим Java (для Android) и Swift (для iOS), а также познакомимся с принципами проектирования интерфейсов и пользовательского опыта. Познакомимся с основными аспектами монетизации и распространения мобильных приложений.
    С 12 лет, только индивидуальные занятия
    Компактное и практическое введение в разработку веб-приложений с использованием двух популярных фреймворков Flask и FastAPI. Изучим создание маршрутов, обработку запросов и создание API. Курс обеспечит быстрый старт в разработке веб-приложений на Python
    C 15 лет, только индивидуальные занятия
    Изучим основные концепции JavaScript, включая переменные, условия, циклы и функции, а также научимся работать с DOM и событиями для создания интерактивных веб-страниц. Курс предоставляет необходимые навыки и знания для разработки современных веб-приложений.
    C 15 лет, только индивидуальные занятия
    Изучим ключевые инструменты и методы для обработки, анализа и визуализации данных. Научимся работать с различными алгоритмами машинного обучения, чтобы применять их для решения разнообразных задач, таких как классификация, регрессия и кластеризация.
    До 17 лет, очные и online занятия
    Программирование «по-взрослому»: начнём с основ языка, анализа данных и простых программ. По окончании курса ребята научатся создавать простые 3D-игры, искусственный интеллект и сложные чат-боты.
    C 15 лет, только индивидуальные занятия
    Познакомимся с кибербезопасностью. Создадим сайт для фишинга, изучим устройство интернет-взаимодействия, азы администрирования ОС Linux и введение в HTML.
    До 17 лет, очные и online занятия
    Углубленный курс программирования на Python. Подготовка к олимпиадам по информатике и спортивному программированию. Изучим сложные алгоритмические конструкции и методы решения задач. Курс развивает навыки анализа и оптимизации кода, что является неотъемлемой частью успешного участия в олимпиадах по программированию.
    До 17 лет, очные и online занятия
    Изучим основы html, css и JavaScript. Усвоим актуальные тренды веб-дизайна и научимся проектировать макеты сайтов в графическом редакторе Figma.
    До 17 лет, очные и online занятия
    Изучим основы трёхмерного digital-рисунка. Научимся рисовать персонажей и локации для игр и мультфильмов.
    Не требует дополнительной подготовки.
    До 17 лет, только индивидуальные занятия
    Научимся создавать приложения для iOS и Android. Освоим Java (для Android) и Swift (для iOS), а также познакомимся с принципами проектирования интерфейсов и пользовательского опыта. Познакомимся с основными аспектами монетизации и распространения мобильных приложений.
    До 17 лет, только индивидуальные занятия
    Компактное и практическое введение в разработку веб-приложений с использованием двух популярных фреймворков Flask и FastAPI. Изучим создание маршрутов, обработку запросов и создание API. Курс обеспечит быстрый старт в разработке веб-приложений на Python
    В ходе курса освоим основные темы, включая алгоритмы, программирование, структуры данных и базы данных, а также изучим типичные задания, которые могут встретиться на экзамене.
    Курс для тех, кто планирует поступать в вузы на специальности, связанные с художественным творчеством: дизайн, живопись, декоративно-прикладное искусство и так далее. В рамках курса мы поможем создать сильное портфолио индивидуально для каждого ученика, а также подготовиться ко вступительным испытаниям при поступлении
    Подписывайтесь на наши социальные сети