Примитивные объекты и прототипирование

Этапы разработки компьютерных игр

Разработка любой игры — это проект.

Проект — это производство или разработка, если мы говорим об IT, уникального продукта или услуги.

Есть много способов разработки проектов, много вариантов этапов, на которые можно разделять этот процесс. Например, вот этот:

Этапы разработки игры
Этапы разработки игры

Альфа — команда разрабатывает концепцию (т. е. начальное описание) нового проекта.

Пре-продакшн — разрабатывается прототип проекта.

Софт-ланч — прототип проекта расширяется командой разработки до полноценной версии игры в соответствии с составленным планом и проектной документацией. Этап заканчивается выпуском ранней версии игры. Обычно такая версия содержит 30–50% от полного количества игрового контента и отличается от предыдущих технических версий большой стабильностью работы и малым количеством ошибок.

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

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

В этой статье мы разберем этап пре-продакшна или создания прототипа.

Примитивные объекты

Unity может работать с 3D моделями любой формы, создаваемыми в приложениях для моделирования. Однако, существует ряд примитивных моделей, которые можно создать прямо в Unity: Куб (англ. — Cube), Сфера (англ. — Sphere), Капсула (англ. — Capsule), Цилиндр (англ. — Cylinder), Плоскость (англ. — Plane) и Квад (англ. — Quad). Эти объекты часто применяются как есть (плоскость обычно используется в качестве поверхности земли, например), но также они позволяют быстро создать прототипы сложных объектов в целях тестирования. Любой из примитивов может быть добавлен в сцену с помощью соответствующего пункта в меню GameObject → Create 3D Object. Для прототипирования очень удобно использовать кубы и цилиндры 👐

Куб

Это простой куб. Сам по себе куб не так часто встречается в играх, но если изменить его размеры, то его можно использовать в качество стен, столбов, коробок, ступенек и других аналогичных предметов. Для разработчиков, куб — удобная замена итоговой модели, если она ещё не готова. Например, кузов автомобиля может быть грубо представлен в виде вытянутого до нужных габаритов куба. Вполне подходит в качестве заготовки для тестирования кода управления автомобилем 🚘

Куб
Куб

Сфера

Сферы полезны для создания ⚽ мячей, 🌏 планет или 💣снарядов.

Сфера
Сфера

Капсула

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

Капсула
Капсула

Цилиндр

Цилиндры удобно применять для создания столбов, труб или колёс.

Цилиндр
Цилиндр

Плоскость

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

Плоскость
Плоскость

Квад

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

Квад
Квад

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

Прототип
Прототип

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

Прототип — это упрощенная модель игры (чего угодно), с помощью которой можно проверить: интересно ли в нее играть и стоит ли продолжать разработку.

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

На этапе прототипирования в здоровой команде или компании важно придерживаться правила “Failure is an Option”. Вы делаете прототип, оцениваете результат и, если он вас не устраивает, выбрасываете. Быстрые итерации позволяют эмоционально не привязываться к проделанной работы, поэтому процесс получается простым и приятным. Чаще всего в самом начале даже вообще не используют игровой движок:

Планировка уровня «Порт» из Counter-Strike: Source © 2004, Valve
Планировка уровня «Порт» из Counter-Strike: Source © 2004, Valve

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

Создание и редактирование примитивного объекта

Как ты уже знаешь, чтобы создать объект, в меню нужно выбрать GameObject → Create 3D Object. Для того, чтобы перемещать игровой объект, тебе понадобится Панель инструментов.

Панель инструментов
Панель инструментов

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

  1. W — кнопка перемещения объекта. Если во время перемещения удерживать кнопку V, то один объект можно примагнитить к другому объекту.
  2. E — кнопка вращения объекта.
  3. R — кнопка изменения размера объекта.
Так работает кнопка V
Так работает кнопка V

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

Прототип моста
Прототип моста

Prefabs

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

Prefab — это игровой объект, который может состоять из нескольких игровых объектов. Все копии prefab’а на сцене можно легко и быстро редактировать, что очень сильно упрощает работу дизайнера уровней.

Первое, что нужно сделать объединить объекты в один. Очень удобно для этого использовать Пустой объект (англ. — Empty). Размести его в центре будущего prefab’а:

Пустой объект в центре моста
Пустой объект в центре моста

Теперь выбери все нужные объекты для объединения, кроме Empty(!), в Иерархии и перетащи их в Empty:

Объединение объектов
Объединение объектов

Теперь Empty принято называть родительским объектом по отношению к объектам, из которых состоит мост, а сами эти объекты называют дочерними.

Перемещая и изменяя другие свойства Transform родительского объекта, ты будешь то же самое делать и с его дочерними объектами. Теперь ты можешь создать сколько угодно мостов в своем уровне просто копируя Empty. Кстати его стоит переименовать, чтобы не потеряться. Сделать это можно нажав на него в иерархии правой кнопкой мыши и выбрать пункт Rename. В сообществе разработчиков принято называть все объекты на английском языке, если ты не знаешь как правильно на английском слово «мост», то можешь смело использовать Google Переводчик.

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

Prefab Bridge
Prefab Bridge

Чтобы в твой прототип можно было поиграть, тебе нужно добавить в него Игрока. Посмотри 📖инструкцию, чтобы узнать как это сделать.

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

  1. Сохрани сцену. Для этого в главном меню выбери «File» → «Save Scene As…». Введи название файла уровня на английском языке.
  2. В главном меню нажми «File» → «Save Project», чтобы сохранить проект.
  3. Теперь скопируй всю папку проекта на флешку или к себе в облако.


Посмотри это замечательное видео, оно поможет делать твои уровни лучше.

👍Рекомендуем почитать:

Дизайн уровней: Теория и Практика / Михаил Кадиков