Что следует учитывать при выборе 2D против 3D для игры? [закрыто]

68

Насколько «сложнее» 3D, чем 2D с точки зрения:

  • Количество / сложность кода
  • Требуется уровень математических навыков
  • Время, затрачиваемое на создание художественных активов

Оригинальное название: Насколько сложна разработка 3D-игр по сравнению с 2D?

Брайан Ортис
источник
27
Одно измерение сложнее :)
Олафур Вааге
5
Ваай субъективно ...
Циклоп
Хмм ... сказав это, мне действительно очень нравится ответ @ munificent. Теперь я не уверен, как я хочу классифицировать этот вопрос. :) Это не совсем правильно для мета , либо ... Черт эти крайние случаи . :)
Циклоп
2
Сложность кода, математический уровень и время кажутся мне относительно объективными показателями сложности.
Брайан Ортис
@ Брайан, да, я желаю , чтобы мы могли отменить близкие голоса. :) Переоценивая это, я думаю, что часть проблемы заключается в названии - «Насколько сложно X против Y», звучит субъективно. Лучшим заголовком может быть «Каковы отличия 3D-разработки от 2D?» (может измениться?). На что, собственно, и есть вопрос, на который @munificent ответил , хотя с однострочником, адресованным названию. :)
Циклоп

Ответы:

127

3D на порядок сложнее, чем 2D:

Программирование:

  • Математика значительно сложнее для рендеринга, физики, столкновений и т. Д. Надеюсь, вам нравятся матрицы и векторы!
  • Из-за предыдущего пункта добиться хорошей производительности гораздо сложнее . Используя современное оборудование, вы можете создать красивую 2D-игру, не задумываясь о производительности, за исключением того, что вы не слишком глупы. С 3D вам придется провести некоторую оптимизацию.
  • Структуры данных намного сложнее. В связи с предыдущим пунктом вам нужно подумать о отбраковке, разбиении пространства и т. Д., Которые более сложны, чем простое «вот список всего на уровне».
  • Анимация намного сложнее. Анимация в 2D - это просто полоса кадров с разными позициями для каждого кадра. С 3D вам придется иметь дело с отдельными анимационными активами, костями, скинами и т. Д.
  • Объем данных намного выше. Вам придется делать интеллектуальное управление ресурсами. Игры поставляются с концертами контента, но у консолей точно нет концертов памяти.
  • Трубопроводы сложнее разрабатывать и обслуживать. Вам понадобится код, чтобы получить ресурсы в предпочтительный формат вашего движка. Этот код не пишет сам.

Искусство:

  • Активы, конечно, намного сложнее. Вам понадобятся текстуры, модели, оснастки / скелеты, анимация и т. Д. Инструменты намного сложнее и дороже, а навыки их использования сложнее найти.
  • Набор необходимых навыков шире. Хорошие аниматоры не часто бывают хорошими художниками текстур. Хорошие зажигалки не могут быть хорошими монтажниками.
  • Зависимости между активами являются более сложными. С 2D вы можете аккуратно распределить свои активы между разными художниками: этот парень делает первый уровень, этот парень делает врагов и т. Д. С 3D, анимация воздействует на буровую установку, которая влияет на скелет, который влияет на модель, которая влияет на текстуры, которые влияют на освещение. ... Ваша арт-команда должна будет тщательно и постоянно координировать свои действия.
  • Технические ограничения более сложны для решения. С 2D это в основном "вот ваша палитра и ваш максимальный размер спрайта". В 3D ваши художники должны будут сбалансировать размер текстуры (для нескольких текстур: зеркальная, цветная, нормальная и т. Д.), Количество полигонов, количество ключевых кадров, количество костей и т. Д. Особенности движка будут устанавливать случайные странные требования к ним ( «Двигатель X взрывается, если у вас больше 23 костей!»).
  • Обработка активов занимает больше времени. Конвейеры для преобразования 3D-ресурсов в готовый для игры формат сложны, медленны и часто содержат ошибки. Это заставляет художников дольше видеть свои изменения в игре, что замедляет их.

Дизайн:

  • Пользовательский ввод - сука. Вам приходится иметь дело с отслеживанием камеры, интуитивно преобразовывать пользовательский ввод в пространство персонажа, проецировать 2D-выборки в мировое пространство и т. Д.
  • Уровни трудно автора. Дизайнеры вашего уровня в основном нуждаются в навыках игрового дизайнера и архитектора. Они должны учитывать потерю игроков, видимость и т. Д. При построении уровней.
  • Уровень физики утомителен для автора. Вам придется проверять, перепроверять и перепроверять снова, чтобы убедиться, что в физике уровней нет пробелов и ошибок, из-за которых игроки могут застрять или провалиться по миру.
  • Инструменты намного сложнее. Большинству игр нужны свои собственные инструменты для создания таких вещей, как уровни. Поскольку содержание намного сложнее, инструменты требуют больше усилий для создания. Как правило, это приводит к тому, что инструменты становятся не совсем понятными, неполными и сложными в использовании.
необычайно щедрый
источник
2
Отличный ответ. Я думал, что это будет более субъективно, но вы изложили это очень четко. Хотя фактического числа может и не быть (в 3,5 раза сложнее), вы сделали хороший пример на порядок сложнее.
Циклоп
5
+1 прибил это. Этот вопрос вряд ли субъективен. Мы говорим о двух совершенно разных мирах. Существует врожденное увеличение сложности. Не начинай думать на уровне гения ...
Дэвид Макгроу
Превосходный ответ!
Zebrabox
1
Я вижу, что мой ответ побит на несколько (если использовать слова авторов) величин. Это так великолепно, что я сам склонялся ко многим вещам, о которых раньше никогда не думал. Хорошо сделано!
Тоби
Отличный ответ. Еще одна мысль, которая у меня была - в пользу 3D - заключается в том, что, когда я только начинал, было гораздо проще найти ресурсы, связанные с разработкой 3D, чем 2D. Но это произошло более 5 лет назад, и с тех пор ландшафт немного изменился.
Эндрю Рассел
11

Много сложнее. Если вам неудобно делать 2D-игру, вам ДЕЙСТВИТЕЛЬНО не понравится то, что нужно для создания 3D-игры.

Хорошая новость: 99% времени вам это не нужно. Подумайте о любой трехмерной игре, которую вы можете. Возьмите камеру, закрепите ее на потолке, глядя вниз, чтобы вы теперь смотрели на 2D-плоскость. Гибель становится Рукавицей. Civ IV становится Civ I. Metal Gear Solid становится оригинальным Metal Gear. Ни одна из этих игр не является «плохой» только потому, что они 2D; они отлично играбельны и обычно имеют почти одинаковый игровой процесс.

Ян Шрайбер
источник
5

В целом, 3D создаст больше трудностей, чем упрощений. Но мне просто хочется добавить несколько вещей, которые на самом деле могут быть проще в 3D-игре:

  • Настройки игрока. Представьте, если бы Team Fortress 2 был 2D-платформером с 20 анимациями для каждого класса. Теперь представьте, что ваш директор по маркетингу предложил вам добавить шляпы в игру. Это будет означать 20 новых спрайт-листов для каждого класса; и он будет расширяться, только если вы решите добавить другие разные предметы. Одна компания, в которой я работал, столкнулась с этим разочарованием.
  • Движения персонажа. Оснастка и анимация - определенно непростая задача, но если ваши персонажи сложные, то в конечном итоге это будет легче, чем в 2D, где вы будете полностью перерисовывать персонажа для каждой позы. Практически первый знак превосходства в любой 2D-игре - сколько раз создатели были готовы перерисовать своих персонажей для дополнительной анимации.
  • В поисках двигателя. Я могу сделать простой платформер менее чем за час в 3D без какого-либо кодирования, но в 2D это может занять немного больше времени. Вы определенно найдете много хороших 2D-движков после некоторого осмотра, но, честно говоря, мне сразу же ничего не приходит в голову; немногие достигли своей огромной популярности, как Ogre3D или другие 3D-движки. Для 3D доступны UDK, Unity и гораздо больше фреймворков. Частично это может заключаться в том, что уменьшенная сложность 2D означает, что любителям не так сложно просто написать свою собственную, основываясь на XNA. (Кроме того, некоторые из упомянутых 3D-движков могут стать жизнеспособными для создания 2D-игры)
Katana314
источник
3

Это очень субъективный вопрос, поскольку ответ зависит от личных предпочтений / опыта / знаний / интеллекта.

Я постараюсь ответить нейтрально, но так как я всего лишь программист, а не художник, я могу только предположить последний пункт.

Сложность кода не должна быть такой большой, за исключением математики и, возможно, рендеринга / физики. Логика игры не так уж отличается, если вы берете здоровый уровень абстракции (не слишком сильно - вы пытаетесь сделать игру не движком, по крайней мере, я предполагаю из вашего вопроса.) Очевидно, что намного легче вычислить движение в 2D, потому что у вас ограниченная перспектива. Физика намного сложнее, когда дело касается трех осей. Кроме того, загрузка Sprite из растрового изображения намного проще, чем загрузка 3D-модели (и, возможно, текстурирование).

Математика сложнее для 3D (на самом деле нет ничего сложного - кватернионы, векторы, матрицы. 'Нуфф сказал)

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

Тоби
источник
Загрузка спрайта проще, чем загрузка модели? Модели включают скелеты, скины, шейдеры, UV-координаты, текстуры, карты нормалей и т. Д. Спрайт - это изображение. Следуя этой тщете, 3D-искусство намного сложнее из-за вещей, перечисленных выше.
Шон Джеймс
Извините, это была ошибка. довольно большой тоже, спасибо за указание на это. Должно быть, это было так мягко, что не было зарегистрировано, когда я вычитал.
Тоби
3

Еще одна вещь, которую нужно учитывать ... в 3D-игре вы, вероятно, захотите использовать уже существующий движок и сосредоточиться на создании игры, а не движка. Это может как-то сократить время и сложность, затрачиваемую в 3D-игре (что отлично видно у muntiful).

Гораздо проще создать 2D игру. Но очевидно, что вы можете (и должны учитывать) использовать библиотеки спрайтов, звуков и переносимости. Нет смысла изобретать велосипед, кроме как в образовательных целях.

Кажется очевидным - но я думал, что это стоит сказать.

Роб Пробин
источник
2

Позвольте мне предложить одно интересное соображение для мобильных устройств, где производительность 2D может отстать от низкополигональных 3d моделей:

1) Частота заполнения может привести к небольшим проблемам с производительностью при работе со многими спрайтами на экране в данный момент времени.

2) Требования к текстурной памяти для полностью проработанной 2D-игры на самом деле намного выше, если вы используете рамочную анимацию. Каждый кадр персонажа линейно уничтожает ваш общий бюджет текстуры. Это означает, что если вы используете простую анимацию флипбука, у вас на самом деле более ограниченный бюджет анимации, чем при использовании 3D-анимации на основе скелета.

Наборы инструментов, такие как Spine, помогают немного выровнять игровое поле, создавая двумерные деформации текстуры.


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

M2tM
источник
Я бы посоветовал не натыкаться на старые сообщения, подобные этим, с новыми подробностями. Текущий топовый ответ все еще очень применим, и этот вопрос не нужно было поднимать до первой страницы.
Пип
2
Я был связан этим с коллегой только сегодня, и, поскольку мое добавление к этому ответу было точным в течение многих лет, я думаю, что это нормально. Нет ничего плохого в добавлении к старому вопросу новой актуальной информации! Большинство людей используют Google в качестве интерфейса для переполнения стека, поэтому даже очень старые элементы могут появляться в релевантных поисках по сей день.
M2tM
1

Это зависит от разработчика игры. Часть времени занимает создание игровых активов. Если вы чувствуете, что вам легче создавать эти ресурсы с помощью иллюстратора и Photoshop, то 2D проще для вас, но если вы знаете 3D-моделирование, вы, вероятно, согласитесь со мной, что 3D намного проще, чем 2D.

Что касается анимации, безусловно, 3D проще, быстрее и проще в управлении.

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

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

Если у вас есть персонажи-гуманоиды, есть тысячи бесплатных анимаций mo-cap. Большую часть времени вам не нужно делать анимацию для вашей игры.

Относительно сложности и программирования нет никакой разницы.

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

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

Между прочим, вопреки распространенному мнению, 3D менее требовательна к оборудованию для мобильных устройств.

Юсеф Гатави
источник