Хмм ... сказав это, мне действительно очень нравится ответ @ munificent. Теперь я не уверен, как я хочу классифицировать этот вопрос. :) Это не совсем правильно для мета , либо ... Черт эти крайние случаи . :)
Циклоп
2
Сложность кода, математический уровень и время кажутся мне относительно объективными показателями сложности.
Брайан Ортис
@ Брайан, да, я желаю , чтобы мы могли отменить близкие голоса. :) Переоценивая это, я думаю, что часть проблемы заключается в названии - «Насколько сложно X против Y», звучит субъективно. Лучшим заголовком может быть «Каковы отличия 3D-разработки от 2D?» (может измениться?). На что, собственно, и есть вопрос, на который @munificent ответил , хотя с однострочником, адресованным названию. :)
Циклоп
Ответы:
127
3D на порядок сложнее, чем 2D:
Программирование:
Математика значительно сложнее для рендеринга, физики, столкновений и т. Д. Надеюсь, вам нравятся матрицы и векторы!
Из-за предыдущего пункта добиться хорошей производительности гораздо сложнее . Используя современное оборудование, вы можете создать красивую 2D-игру, не задумываясь о производительности, за исключением того, что вы не слишком глупы. С 3D вам придется провести некоторую оптимизацию.
Структуры данных намного сложнее. В связи с предыдущим пунктом вам нужно подумать о отбраковке, разбиении пространства и т. Д., Которые более сложны, чем простое «вот список всего на уровне».
Анимация намного сложнее. Анимация в 2D - это просто полоса кадров с разными позициями для каждого кадра. С 3D вам придется иметь дело с отдельными анимационными активами, костями, скинами и т. Д.
Объем данных намного выше. Вам придется делать интеллектуальное управление ресурсами. Игры поставляются с концертами контента, но у консолей точно нет концертов памяти.
Трубопроводы сложнее разрабатывать и обслуживать. Вам понадобится код, чтобы получить ресурсы в предпочтительный формат вашего движка. Этот код не пишет сам.
Искусство:
Активы, конечно, намного сложнее. Вам понадобятся текстуры, модели, оснастки / скелеты, анимация и т. Д. Инструменты намного сложнее и дороже, а навыки их использования сложнее найти.
Набор необходимых навыков шире. Хорошие аниматоры не часто бывают хорошими художниками текстур. Хорошие зажигалки не могут быть хорошими монтажниками.
Зависимости между активами являются более сложными. С 2D вы можете аккуратно распределить свои активы между разными художниками: этот парень делает первый уровень, этот парень делает врагов и т. Д. С 3D, анимация воздействует на буровую установку, которая влияет на скелет, который влияет на модель, которая влияет на текстуры, которые влияют на освещение. ... Ваша арт-команда должна будет тщательно и постоянно координировать свои действия.
Технические ограничения более сложны для решения. С 2D это в основном "вот ваша палитра и ваш максимальный размер спрайта". В 3D ваши художники должны будут сбалансировать размер текстуры (для нескольких текстур: зеркальная, цветная, нормальная и т. Д.), Количество полигонов, количество ключевых кадров, количество костей и т. Д. Особенности движка будут устанавливать случайные странные требования к ним ( «Двигатель X взрывается, если у вас больше 23 костей!»).
Обработка активов занимает больше времени. Конвейеры для преобразования 3D-ресурсов в готовый для игры формат сложны, медленны и часто содержат ошибки. Это заставляет художников дольше видеть свои изменения в игре, что замедляет их.
Дизайн:
Пользовательский ввод - сука. Вам приходится иметь дело с отслеживанием камеры, интуитивно преобразовывать пользовательский ввод в пространство персонажа, проецировать 2D-выборки в мировое пространство и т. Д.
Уровни трудно автора. Дизайнеры вашего уровня в основном нуждаются в навыках игрового дизайнера и архитектора. Они должны учитывать потерю игроков, видимость и т. Д. При построении уровней.
Уровень физики утомителен для автора. Вам придется проверять, перепроверять и перепроверять снова, чтобы убедиться, что в физике уровней нет пробелов и ошибок, из-за которых игроки могут застрять или провалиться по миру.
Инструменты намного сложнее. Большинству игр нужны свои собственные инструменты для создания таких вещей, как уровни. Поскольку содержание намного сложнее, инструменты требуют больше усилий для создания. Как правило, это приводит к тому, что инструменты становятся не совсем понятными, неполными и сложными в использовании.
Отличный ответ. Я думал, что это будет более субъективно, но вы изложили это очень четко. Хотя фактического числа может и не быть (в 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; они отлично играбельны и обычно имеют почти одинаковый игровой процесс.
В целом, 3D создаст больше трудностей, чем упрощений. Но мне просто хочется добавить несколько вещей, которые на самом деле могут быть проще в 3D-игре:
Настройки игрока. Представьте, если бы Team Fortress 2 был 2D-платформером с 20 анимациями для каждого класса. Теперь представьте, что ваш директор по маркетингу предложил вам добавить шляпы в игру. Это будет означать 20 новых спрайт-листов для каждого класса; и он будет расширяться, только если вы решите добавить другие разные предметы. Одна компания, в которой я работал, столкнулась с этим разочарованием.
Движения персонажа. Оснастка и анимация - определенно непростая задача, но если ваши персонажи сложные, то в конечном итоге это будет легче, чем в 2D, где вы будете полностью перерисовывать персонажа для каждой позы. Практически первый знак превосходства в любой 2D-игре - сколько раз создатели были готовы перерисовать своих персонажей для дополнительной анимации.
В поисках двигателя. Я могу сделать простой платформер менее чем за час в 3D без какого-либо кодирования, но в 2D это может занять немного больше времени. Вы определенно найдете много хороших 2D-движков после некоторого осмотра, но, честно говоря, мне сразу же ничего не приходит в голову; немногие достигли своей огромной популярности, как Ogre3D или другие 3D-движки. Для 3D доступны UDK, Unity и гораздо больше фреймворков. Частично это может заключаться в том, что уменьшенная сложность 2D означает, что любителям не так сложно просто написать свою собственную, основываясь на XNA. (Кроме того, некоторые из упомянутых 3D-движков могут стать жизнеспособными для создания 2D-игры)
Это очень субъективный вопрос, поскольку ответ зависит от личных предпочтений / опыта / знаний / интеллекта.
Я постараюсь ответить нейтрально, но так как я всего лишь программист, а не художник, я могу только предположить последний пункт.
Сложность кода не должна быть такой большой, за исключением математики и, возможно, рендеринга / физики. Логика игры не так уж отличается, если вы берете здоровый уровень абстракции (не слишком сильно - вы пытаетесь сделать игру не движком, по крайней мере, я предполагаю из вашего вопроса.) Очевидно, что намного легче вычислить движение в 2D, потому что у вас ограниченная перспектива. Физика намного сложнее, когда дело касается трех осей. Кроме того, загрузка Sprite из растрового изображения намного проще, чем загрузка 3D-модели (и, возможно, текстурирование).
Математика сложнее для 3D (на самом деле нет ничего сложного - кватернионы, векторы, матрицы. 'Нуфф сказал)
Что касается искусства, я думаю, что это должно быть более сложным и для 3D, так как вам нужно создавать искусство, которое выглядит хорошо при любом возможном угле обзора (или, по крайней мере, в широком диапазоне), и вы обычно тоже хотите текстурировать вещи. Анимация меша - это не пикник, чтобы стать реалистичным, а получить текстуру для игры - тоже нет.
Загрузка спрайта проще, чем загрузка модели? Модели включают скелеты, скины, шейдеры, UV-координаты, текстуры, карты нормалей и т. Д. Спрайт - это изображение. Следуя этой тщете, 3D-искусство намного сложнее из-за вещей, перечисленных выше.
Шон Джеймс
Извините, это была ошибка. довольно большой тоже, спасибо за указание на это. Должно быть, это было так мягко, что не было зарегистрировано, когда я вычитал.
Тоби
3
Еще одна вещь, которую нужно учитывать ... в 3D-игре вы, вероятно, захотите использовать уже существующий движок и сосредоточиться на создании игры, а не движка. Это может как-то сократить время и сложность, затрачиваемую в 3D-игре (что отлично видно у muntiful).
Гораздо проще создать 2D игру. Но очевидно, что вы можете (и должны учитывать) использовать библиотеки спрайтов, звуков и переносимости. Нет смысла изобретать велосипед, кроме как в образовательных целях.
Кажется очевидным - но я думал, что это стоит сказать.
Позвольте мне предложить одно интересное соображение для мобильных устройств, где производительность 2D может отстать от низкополигональных 3d моделей:
1) Частота заполнения может привести к небольшим проблемам с производительностью при работе со многими спрайтами на экране в данный момент времени.
2) Требования к текстурной памяти для полностью проработанной 2D-игры на самом деле намного выше, если вы используете рамочную анимацию. Каждый кадр персонажа линейно уничтожает ваш общий бюджет текстуры. Это означает, что если вы используете простую анимацию флипбука, у вас на самом деле более ограниченный бюджет анимации, чем при использовании 3D-анимации на основе скелета.
Наборы инструментов, такие как Spine, помогают немного выровнять игровое поле, создавая двумерные деформации текстуры.
Итак, учитывая это и простоту доступа Unity и UDK, которые в значительной степени извлекают сложность разработки игр, существовавшую несколько лет назад для 3D, ответ не так прост.
Я бы посоветовал не натыкаться на старые сообщения, подобные этим, с новыми подробностями. Текущий топовый ответ все еще очень применим, и этот вопрос не нужно было поднимать до первой страницы.
Пип
2
Я был связан этим с коллегой только сегодня, и, поскольку мое добавление к этому ответу было точным в течение многих лет, я думаю, что это нормально. Нет ничего плохого в добавлении к старому вопросу новой актуальной информации! Большинство людей используют Google в качестве интерфейса для переполнения стека, поэтому даже очень старые элементы могут появляться в релевантных поисках по сей день.
M2tM
1
Это зависит от разработчика игры. Часть времени занимает создание игровых активов. Если вы чувствуете, что вам легче создавать эти ресурсы с помощью иллюстратора и Photoshop, то 2D проще для вас, но если вы знаете 3D-моделирование, вы, вероятно, согласитесь со мной, что 3D намного проще, чем 2D.
Что касается анимации, безусловно, 3D проще, быстрее и проще в управлении.
Например, если в 3D вы можете сделать все анимации для персонажа за несколько часов в одной сцене, в 2D вы должны нарисовать персонажа с нуля для любого действия, которое он должен выполнять, и сохранить множество файлов, в 2D это займет несколько дней. против часов в 3D.
Также, если вы что-то измените, вам придется переделывать все это в 2D, но вам не нужно менять все, например, если вы решите, что у вашего персонажа не должно быть шляпы. Вам не нужно переделывать всю анимацию, просто удалите шляпу в 3D.
Если у вас есть персонажи-гуманоиды, есть тысячи бесплатных анимаций mo-cap. Большую часть времени вам не нужно делать анимацию для вашей игры.
Относительно сложности и программирования нет никакой разницы.
Но вы должны хорошо знать 3D, иначе вы можете оказаться в игровом движке, ваша анимация отличается от вашего 3D-приложения, или ваша голова персонажа вращается в обратном направлении, и вы не знаете, как решить проблему, и некоторые другие глюки.
Также вы должны быть знакомы с низкополигональным моделированием для игры и с тем, как делать текстурирование для игры, оно отличается от моделирования и текстурирования для анимации.
Между прочим, вопреки распространенному мнению, 3D менее требовательна к оборудованию для мобильных устройств.
Ответы:
3D на порядок сложнее, чем 2D:
Программирование:
Искусство:
Дизайн:
источник
Много сложнее. Если вам неудобно делать 2D-игру, вам ДЕЙСТВИТЕЛЬНО не понравится то, что нужно для создания 3D-игры.
Хорошая новость: 99% времени вам это не нужно. Подумайте о любой трехмерной игре, которую вы можете. Возьмите камеру, закрепите ее на потолке, глядя вниз, чтобы вы теперь смотрели на 2D-плоскость. Гибель становится Рукавицей. Civ IV становится Civ I. Metal Gear Solid становится оригинальным Metal Gear. Ни одна из этих игр не является «плохой» только потому, что они 2D; они отлично играбельны и обычно имеют почти одинаковый игровой процесс.
источник
В целом, 3D создаст больше трудностей, чем упрощений. Но мне просто хочется добавить несколько вещей, которые на самом деле могут быть проще в 3D-игре:
источник
Это очень субъективный вопрос, поскольку ответ зависит от личных предпочтений / опыта / знаний / интеллекта.
Я постараюсь ответить нейтрально, но так как я всего лишь программист, а не художник, я могу только предположить последний пункт.
Сложность кода не должна быть такой большой, за исключением математики и, возможно, рендеринга / физики. Логика игры не так уж отличается, если вы берете здоровый уровень абстракции (не слишком сильно - вы пытаетесь сделать игру не движком, по крайней мере, я предполагаю из вашего вопроса.) Очевидно, что намного легче вычислить движение в 2D, потому что у вас ограниченная перспектива. Физика намного сложнее, когда дело касается трех осей. Кроме того, загрузка Sprite из растрового изображения намного проще, чем загрузка 3D-модели (и, возможно, текстурирование).
Математика сложнее для 3D (на самом деле нет ничего сложного - кватернионы, векторы, матрицы. 'Нуфф сказал)
Что касается искусства, я думаю, что это должно быть более сложным и для 3D, так как вам нужно создавать искусство, которое выглядит хорошо при любом возможном угле обзора (или, по крайней мере, в широком диапазоне), и вы обычно тоже хотите текстурировать вещи. Анимация меша - это не пикник, чтобы стать реалистичным, а получить текстуру для игры - тоже нет.
источник
Еще одна вещь, которую нужно учитывать ... в 3D-игре вы, вероятно, захотите использовать уже существующий движок и сосредоточиться на создании игры, а не движка. Это может как-то сократить время и сложность, затрачиваемую в 3D-игре (что отлично видно у muntiful).
Гораздо проще создать 2D игру. Но очевидно, что вы можете (и должны учитывать) использовать библиотеки спрайтов, звуков и переносимости. Нет смысла изобретать велосипед, кроме как в образовательных целях.
Кажется очевидным - но я думал, что это стоит сказать.
источник
Позвольте мне предложить одно интересное соображение для мобильных устройств, где производительность 2D может отстать от низкополигональных 3d моделей:
1) Частота заполнения может привести к небольшим проблемам с производительностью при работе со многими спрайтами на экране в данный момент времени.
2) Требования к текстурной памяти для полностью проработанной 2D-игры на самом деле намного выше, если вы используете рамочную анимацию. Каждый кадр персонажа линейно уничтожает ваш общий бюджет текстуры. Это означает, что если вы используете простую анимацию флипбука, у вас на самом деле более ограниченный бюджет анимации, чем при использовании 3D-анимации на основе скелета.
Наборы инструментов, такие как Spine, помогают немного выровнять игровое поле, создавая двумерные деформации текстуры.
Итак, учитывая это и простоту доступа Unity и UDK, которые в значительной степени извлекают сложность разработки игр, существовавшую несколько лет назад для 3D, ответ не так прост.
источник
Это зависит от разработчика игры. Часть времени занимает создание игровых активов. Если вы чувствуете, что вам легче создавать эти ресурсы с помощью иллюстратора и Photoshop, то 2D проще для вас, но если вы знаете 3D-моделирование, вы, вероятно, согласитесь со мной, что 3D намного проще, чем 2D.
Что касается анимации, безусловно, 3D проще, быстрее и проще в управлении.
Например, если в 3D вы можете сделать все анимации для персонажа за несколько часов в одной сцене, в 2D вы должны нарисовать персонажа с нуля для любого действия, которое он должен выполнять, и сохранить множество файлов, в 2D это займет несколько дней. против часов в 3D.
Также, если вы что-то измените, вам придется переделывать все это в 2D, но вам не нужно менять все, например, если вы решите, что у вашего персонажа не должно быть шляпы. Вам не нужно переделывать всю анимацию, просто удалите шляпу в 3D.
Если у вас есть персонажи-гуманоиды, есть тысячи бесплатных анимаций mo-cap. Большую часть времени вам не нужно делать анимацию для вашей игры.
Относительно сложности и программирования нет никакой разницы.
Но вы должны хорошо знать 3D, иначе вы можете оказаться в игровом движке, ваша анимация отличается от вашего 3D-приложения, или ваша голова персонажа вращается в обратном направлении, и вы не знаете, как решить проблему, и некоторые другие глюки.
Также вы должны быть знакомы с низкополигональным моделированием для игры и с тем, как делать текстурирование для игры, оно отличается от моделирования и текстурирования для анимации.
Между прочим, вопреки распространенному мнению, 3D менее требовательна к оборудованию для мобильных устройств.
источник