19 июля 2021

🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

Более 7 лет работы в IT-сфере. Системное администрирование, frontend разработка, написание скриптов на Python.
В этой статье мы рассмотрим основные отличия между 2D- и 3D-разработкой на Unity и разберемся, что лучше подойдет для начинающего осваиваться в сфере GameDev программиста.
🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

Разработка игр – это увлекательное и перспективное направление для программистов. За последние несколько лет игровая индустрия стремительно развивалась, и теперь кажется, будто все делают видеоигры. Если у вас есть интересная идея или вы решили выбрать GameDev в качестве основной профессии, почему бы не попробовать? Игровой движок Unity может быть неплохим началом. Unity отлично подходят для новичков, потому что это одна из лучших платформ для создания игр небольшого и среднего размера.

Дополнительные материалы
Если вы еще не определились с выбором движка и инструментов для разработки игр, рекомендуем ознакомиться со статьей «GameDev: с чего начать разработку игр?». Какие навыки нужны, чтобы стать профессиональным Unity-разработчиком, вы можете узнать из гайда «Разработка игр на Unity: с нуля до профессионала».

Основные отличия 2D- и 3D-разработки

2D или двумерная графика работает с изображением, сформированным в двух измерениях – высоте и ширине. Объектом 3D является изображение, сформированное в трех измерениях: ширине, высоте и глубине. 3D позволяет оценить размер объекта и расстояние до него.

Движение

🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

Игры 2D выполняются в плоском линейном движении. Даже если ваш персонаж бежит в разных направлениях, в конце концов вы ведете его к конечной точке, как в Марио. Развитие персонажа происходит со сменой всего экрана.

🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

В отличие от 2D-игр, трехмерные игры имеют более глубокую графику, позволяющую персонажу перемещаться свободно и без ограничений, как в GTA: Vice City.

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

Производство

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

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

Стили 2D- и 3D-игр в Unity

Создавая новый проект в Unity, вы можете начать его в режиме 2D или 3D. На практике в одной игре могут сочетаться элементы как 2D, так и 3D.

Полное 3D

🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

В 3D-играх используется трехмерная геометрия, при этом материалы и текстуры визуализируются на поверхности объектов. Камера может свободно перемещаться внутри сцены. 3D-игры визуализируют сцену с использованием перспективы, поэтому по мере приближения к камере объекты кажутся крупнее.

Дополнительные материалы
Начать разбираться в 3D-моделировании и Unity 3D поможет статья из «Библиотеки программиста».

Ортографическое 3D

3D-игры с использованием ортогонального вида
3D-игры с использованием ортогонального вида

Иногда в играх используется трехмерная геометрия, но вместо перспективы – ортогональная камера. Такой прием также называют «2.5D».

Полный 2D

Во многих 2D-играх применяются графика, называемая спрайтами. Они отображаются на экране в виде плоских изображений, а камера всегда расположена в одной и той же плоскости.

Дополнительные материалы
Как сделать собственный уровень при помощи готового пакета 2D Game Kit вы можете прочитать в статье «Основы разработки игр на Unity».

2D-геймплей с 3D-графикой

🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

Некоторые 2D-игры применяют 3D-геометрию для окружающей среды и персонажей, но ограничивают игровой процесс двумя измерениями. Камера может отображать вид с боковой прокруткой, а персонаж будет двигаться только в двух измерениях, но сама игра по-прежнему использует трехмерные модели и перспективу для камеры. В таких играх 3D-эффект служит скорее стилистическим, чем функциональным целям. Этот тип игры также называют «2.5D».

2D-геймплей и графика с эффектом параллакса

🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

Это еще один популярный стиль 2D-игр, использующий 2D-графику, но с перспективой камеры для получения эффекта параллакса прокрутки. Это сцена в стиле «картонный театр», где вся графика плоская, но расположена на разном расстоянии от камеры.

Разница между 2D и 3D в Unity

В Unity разница между 2D и 3D обусловлена типом проекта, а также зависит от объектов и камеры, которую вы используете для создания игры.

Ортогональная камера не имеет эффекта перспективы. Куб, рассматриваемый ортогональной камерой с одной стороны, будет выглядеть квадратом.

Для 2D- и 3D-проектов в Unity используется два основных вида объектов:

  • спрайты – простые 2D-объекты,
  • сетки, которые состоят из вершины и нескольких массивов треугольников.

Оба типа объектов можно использовать как в 2D-, так и в 3D-проектах, но физика их взаимодействия будет отличаться. Нельзя с помощью CircleCollider2D заставить мяч отскочить от коробки с помощью BoxCollider.

Плюсы и минусы подходов

В целом плюсы и минусы 2D- и 3D-разработки игр на Unity непосредственно проистекают из специфики направления:

  • 3D-игры более зрелищны, лучше погружают в игровую реальность и предоставляют разработчику целый спектр дополнительных возможностей. В то же время они более трудозатратны, требуют больше внимания к физике и игровым объектам, а также больше вычислительных мощностей для рендеринга и сборки игры.
  • Игровые 3D-проекты обычно делают большие команды разработчиков, что ускоряет процесс, но требует дополнительных усилий на координацию действий. 3D-направление более перспективно для профессионала в сфере GameDev.
  • С другой стороны, 2D-игры дают возможность сосредоточиться на художественных деталях, истории и геймплее, не тратя много усилий на работу с трехмерной физикой и моделями.

Многие инди-игры сделаны разработчиками в одиночку за довольно небольшое время, при этом они получают не меньшую популярность за счет индивидуальной атмосферы и неповторимых деталей. Если вы не готовы сделать GameDev своей основной профессией, а просто решили попробовать себя в этом направлении или реализовать небольшой проект, стоит остановиться на 2D, так как этот подход потребует меньше сил и ресурсов для реализации.

***

Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?

Можно учиться самостоятельно (долго) или пойти на курсы с преподавателями (быстро). Плюс нужно учитывать, что джунов много, конкуренция выше и работодатели повышают порог вхождения при найме на работу. Чтобы получить актуальные знания, мы в proglib.academy запустили курсы:

  • Основы программирования на Python.
  • Профессия Python-разработчик.
  • Алгоритмы и структуры данных.
  • Математика для Data Science.
  • Профессия Data Science.
  • Frontend Basic: принцип работы современного веба.
  • Профессия Фронтенд-разработчик.
  • Обработка естественного языка. Полный курс.

На подходе еще больше 10 курсов для взрослых и детей.

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Java Team Lead
Москва, по итогам собеседования
Разработчик С#
от 200000 RUB до 400000 RUB

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ