Какие плюсы и минусы должен знать начинающий, выбирая между движком 2d игры (например, Slick2D / Flixel / FlashPunk) и движком 3d (например, Unity) для разработки 2d игры?
Я только начинаю в разработке инди-игр, хотя в прошлом я немного увлекался Game Maker, Flash и XNA. Я слышал много позитивного о Unity, и его кроссплатформенность делает его привлекательным, но, как я понимаю, это ядро 3d движка.
Существуют ли веские причины для работы с 3D-движком, например, Unity, для строго 2-мерной игры? Или это просто добавит ненужную сложность в мой начальный опыт обучения?
Ответы:
Это зависит от игры, но по большей части будет проще делать строго 2-мерную игру, используя движок, специально разработанный для 2-х мерной.
Теперь о некоторых плюсах и минусах (некоторые из них будут связаны именно с Unity, некоторые более общие)
Cons
3d движки обычно создаются вокруг игровых объектов, являющихся 3d моделями (полигоны и текстуры). Хотя, безусловно, возможно сделать плоскую плоскость и наложить на нее текстуру, вы активно работаете против двигателя, когда делаете это.
Кроме того, многим трехмерным движкам не хватает возможности работать со спрайт-листами (все кадры анимации на одной текстуре), потому что они ожидают, что анимация будет воздействовать на модель (с помощью оснастки и других методов), а не на текстуру. Опять же, есть способы обойти это, но опять же, вы активно работаете против двигателя для достижения этой цели.
Добавлена сложность. Как упоминалось в ответе Джоша Петри, 3d намного сложнее, чем 2d, в основном в области математики и управления сценами. Перемещать объекты и работать с трехмерным пространством сложно, и если это одна из ваших первых игр, то будет намного сложнее. Хорошая новость: Unity абстрагирует некоторые из этих проблем, хотя есть некоторые вещи, с которыми вам все еще придется справиться (и большая часть абстракции, тем не менее, предназначена для 3d-моделей, а не для 2D-спрайтов)
Большинство библиотек, которые поставляются с Unity или которые вы можете получить за них, предназначены для трехмерных объектов. Это включает в себя такие вещи, как освещение, поиск путей, физика и т. Д. Тем временем box2d будет легко работать с Flash, XNA или чем-то (ну, может быть).
Pros
3D ускорение. Видеокарты намного лучше справляются с большим количеством объектов в сцене, чем центральный процессор, и с Unity вы можете действительно легко получить это преимущество. Это позволяет отображать тысячи спрайтов на экране, легко включать эффекты частиц или добавлять что-то забавное, например шейдеры, для поддержки интересных эффектов, таких как искривление пространства и времени. В Unity встроены многие из этих эффектов, что делает его действительно простым. Обратите внимание, что многие движки 2d используют OpenGL или DirectX за кулисами, и во многих случаях также могут быть аппаратно ускорены.
Поддержка моделей. Помните ту вещь, которая раньше была проблемой? Да, это тоже может быть выгодно. В зависимости от игры может быть полезно включить вращающиеся сферы или что-то классное, например, 3D-объект на заднем плане. У вас также может быть игра, созданная из 3d, но просто перенесенная в двухмерную перспективу, которая может дать вам возможность вращать геометрию мира без необходимости делать тонны дополнительной графики, чтобы справиться с ней.
Учимся 3d. Посмотрим правде в глаза, многие игры написаны в 3d, и если вы научитесь использовать Unity, вы сможете применить многие из этих навыков к следующей игре, которая может потребовать 3d. Кроме того, многие художники, выходящие из школы, в настоящее время обучаются 3D-моделированию, поэтому «легче» найти 3D-художника, чем традиционного 2-мерного художника (независимо от того, считают ли художники хорошими ....)
Вывод
Есть много минусов, есть и приличные плюсы. Все будет зависеть от того, какую игру вы хотите создать, и вам решать, стоит ли это того. Flash по-прежнему является чрезвычайно жизнеспособным вариантом, поэтому нет ничего плохого в том, чтобы работать с 2d-движком, если это лучше всего подходит для вашей игры.
источник
Один большой недостаток - дополнительная сложность: 3D-движки не всегда имеют такой же уровень первоклассной поддержки 2D-графики, как выделенные 2D-движки. Это означает, что для создания и управления 2D-сценой требуется либо много дополнительной работы, и / или вам все еще приходится сталкиваться со сложностью 3D-математики и конвейера преобразования. Особенно, если вы не совсем знакомы с основами теории трехмерной графики, вы можете потеряться и запутаться, когда ваши изображения не отображаются, а если вы неосторожны, вы можете наткнуться на «решение», которое делает ваш изображения появляются, но не обязательно правильные (и, следовательно, будут кусать вас позже).
Но помимо человеческого аспекта, пока 3D-движок имеет инструменты, необходимые для создания 2D-игры, его неплохая идея. Они гораздо более распространены в наши дни и имеют тенденцию к более агрессивному развитию, так что это плюс. Кроме того, вероятно, еще есть несколько 2D-ориентированных движков или фреймворков, которые не используют D3D или OpenGL за кулисами, и, следовательно, могут не получить преимуществ от современных графических процессоров.
В этом связанном вопросе вы можете увидеть много дискуссий о том, что может сделать 3D более сложным (вам придется иметь дело только с подмножеством, в котором вы будете использовать 3D-движок только для 2D-игры).
источник
Pro: Производители видеокарт тратят больше усилий на оптимизацию своих 3D-драйверов. Вы не застряли в 2D для специальных эффектов или ударов. Вам не нужно имитировать слишком много под себя. Переключение точек обзора не требует полного пересмотра всего вашего искусства. Я буду утверждать, что 3D масштабируется лучше визуально.
Против: Конвейеры активов, вероятно, придется адаптировать к вашему движку. Некоторые операции, которые просты в 2D, более сложны в 3D. Библиотеки, вероятно, будут иметь дополнительные функции, которые вы никогда не будете использовать.
источник
Просто изучите Unity, если можете. Unity ДЕЙСТВИТЕЛЬНО хорошо работает с Blender 3D, который является открытым и бесплатным. Существует множество хороших онлайн-уроков по моделированию и анимации 2D в Blender с использованием плоскостей. Также есть множество моделей, которые вы можете скачать онлайн, как правило, бесплатно или дешево, которые вы можете использовать в качестве отправной точки.
Это, конечно, предполагает, что вы не умеете создавать собственный игровой движок. Моя любимая 2D-игра на данный момент - Super Meat Boy, которая была разработана во Flash, а программирование было выполнено на заказ ... создание игрового движка, соответствующего конкретным потребностям игр. Это лучший способ подойти к такому проекту, потому что он дает вам большую свободу. Тем не менее, чтобы пройти этот путь, требуется много работы.
источник