Разработка игр – это увлекательное и перспективное направление для программистов. За последние несколько лет игровая индустрия стремительно развивалась, и теперь кажется, будто все делают видеоигры. Если у вас есть интересная идея или вы решили выбрать GameDev в качестве основной профессии, почему бы не попробовать? Игровой движок Unity может быть неплохим началом. Unity отлично подходят для новичков, потому что это одна из лучших платформ для создания игр небольшого и среднего размера.
Основные отличия 2D- и 3D-разработки
2D или двумерная графика работает с изображением, сформированным в двух измерениях – высоте и ширине. Объектом 3D является изображение, сформированное в трех измерениях: ширине, высоте и глубине. 3D позволяет оценить размер объекта и расстояние до него.
Движение
![🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?](https://media.proglib.io/posts/2021/06/29/9121679d508a97c1fd90955e5fd78ecd.gif)
Игры 2D выполняются в плоском линейном движении. Даже если ваш персонаж бежит в разных направлениях, в конце концов вы ведете его к конечной точке, как в Марио. Развитие персонажа происходит со сменой всего экрана.
![🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?](https://media.proglib.io/posts/2021/06/29/6f334e33f2894712944a817cb6306255.gif)
В отличие от 2D-игр, трехмерные игры имеют более глубокую графику, позволяющую персонажу перемещаться свободно и без ограничений, как в GTA: Vice City.
Производство
Поскольку создание 3D-игры – сложный процесс, он требует больше времени и затрат. Организация данных, средства проектирования, рендер – все это намного сложнее чем в 2D-игре. Создавая 3D-среду, нужно двигаться шаг за шагом осторожно, особенно когда дело касается физики. Одна-единственная ошибка может заставить вашего персонажа застрять в текстурах или бесследно исчезнуть.
Стили 2D- и 3D-игр в Unity
Создавая новый проект в Unity, вы можете начать его в режиме 2D или 3D. На практике в одной игре могут сочетаться элементы как 2D, так и 3D.
Полное 3D
![🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?](https://media.proglib.io/posts/2021/06/29/fcdeb8a81d3f5815bd9d6200bfc1a5f0.jpg)
В 3D-играх используется трехмерная геометрия, при этом материалы и текстуры визуализируются на поверхности объектов. Камера может свободно перемещаться внутри сцены. 3D-игры визуализируют сцену с использованием перспективы, поэтому по мере приближения к камере объекты кажутся крупнее.
Ортографическое 3D
![3D-игры с использованием ортогонального вида](https://media.proglib.io/posts/2021/06/29/949d922839636ee75d5c4be083df5ef4.jpg)
Иногда в играх используется трехмерная геометрия, но вместо перспективы – ортогональная камера. Такой прием также называют «2.5D».
Полный 2D
Во многих 2D-играх применяются графика, называемая спрайтами. Они отображаются на экране в виде плоских изображений, а камера всегда расположена в одной и той же плоскости.
2D-геймплей с 3D-графикой
![🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?](https://media.proglib.io/posts/2021/06/29/6cd93aef72ed38c934cb3f39cc8bf169.gif)
Некоторые 2D-игры применяют 3D-геометрию для окружающей среды и персонажей, но ограничивают игровой процесс двумя измерениями. Камера может отображать вид с боковой прокруткой, а персонаж будет двигаться только в двух измерениях, но сама игра по-прежнему использует трехмерные модели и перспективу для камеры. В таких играх 3D-эффект служит скорее стилистическим, чем функциональным целям. Этот тип игры также называют «2.5D».
2D-геймплей и графика с эффектом параллакса
![🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?](https://media.proglib.io/posts/2021/06/29/009bf00da3cc57dc1ca64e8039306c28.gif)
Это еще один популярный стиль 2D-игр, использующий 2D-графику, но с перспективой камеры для получения эффекта параллакса прокрутки. Это сцена в стиле «картонный театр», где вся графика плоская, но расположена на разном расстоянии от камеры.
Разница между 2D и 3D в Unity
Ортогональная камера не имеет эффекта перспективы. Куб, рассматриваемый ортогональной камерой с одной стороны, будет выглядеть квадратом.
Для 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 курсов для взрослых и детей.
Комментарии