Специалисты отрасли, создающие игры с использованием UE4, вообще используют Blueprints или они используют исключительно C ++?

15

Как преподаватель по модулю разработки игр, я обычно настаивал на том, чтобы пользователи использовали C ++, потому что это более востребованный в отрасли навык, но онлайн-поддержка и информация о C ++ в Unreal Engine 4, по-видимому, относительно слаба. Профессионалы теперь тоже используют Blueprints или нет?

Марк Грин
источник
11
Документация не будет хорошим индикатором того, сколько что-то используется.
MichaelHouse
Документация по Unreal Engine 4 C ++ отсутствует, потому что вы сами читаете код. Вам не нужна строго документация, если вы можете получить доступ к исходному коду. Хотя было бы неплохо иметь его.
Окси
1
@Oxy Исходный код не заменяет документацию. Период. По определению источник намного труднее читать, чем документацию, потому что цель документации - перевести то, что функция делает, в читаемый формат. Это вдвойне верно для высокопроизводительного, чрезвычайно функционального кода, такого как Unreal.
Фонд Моника иск
1
Я объясняю, что происходит, а не оправдываю. «Хотя было бы неплохо иметь его». И вам лучше прочитать код используемых вами функций, даже документированных, потому что некоторые важные из них имеют золотые самородки как «foo (x) {/ * foo Не реализовано, вместо этого используется bar (x), потому что обычно действует как foo (x) ) было сделано * / bar (x);}. Мне еще предстоит увидеть систему документации в действии, которая идет в ногу с эволюцией кода. Кроме автоматизированной документации, которая ничего не делает, кроме как выдает типы параметров и возвращаемые типы, как чтение заголовка делает.
Окси

Ответы:

25

Да, профессиональные игры используют Blueprints.

Некоторые используют смесь C ++ и Blueprints. Мы используем оба на Dead by Daylight.

Одна из замечательных особенностей Blueprints заключается в том, что непрограммисты могут получить доступ к возможности сценариев поведения. Не каждый проект будет использовать их таким образом, но это одна из причин, по которой они были разработаны. Они заменили UnrealScript как средство изменения поведения, не затрагивая C ++, а также заменили Kismet, который был системой визуальных сценариев Unreal 3.

Almo
источник
Вы можете расширить? Только программисты используют Blueprints, или только "нетехнический" персонал, или немного и того, и другого? Используется ли он для определенных целей или для чего-либо?
KABoissonneault
7
@ KABoissonneault Это очень микс. В большинстве случаев нет простого способа четко разграничить то, над чем работают программисты, и то, над чем работают непрограммисты. Это особенно верно, если у вас есть дизайнер, который, вероятно, захочет настроить весь код. Чертежи также часто используются для быстрого создания прототипов, и они не обязательно конвертируются в C ++, если производительность не требует этого. Это также сильно варьируется в зависимости от студии и проекта, поэтому нет единого ответа.
Фонд Моника иск
9

Небольшой анекдот из-за пределов игровой индустрии: мы используем UE4 для визуализации архитектуры в VR.

Хотя я бы предпочел, чтобы большинство вещей было встроено в C ++, мы также активно используем Blueprints для всех видов «дополнительной логики», таких как выключатели света, двери и т. Д.

Так было чуть более двух лет, и я был единственным программистом в начале этого начинания. Итак, вот мои наблюдения:

  • Поразительно, что непрограммисты могут делать с Blueprints!
  • Я могу быть ужасен, что начинающие программисты делают с Blueprints;)
  • Даже если я в конце концов преобразую его в C ++, Blueprints хороши для быстрой фазы RnD

И самое важное для меня: во многих разговорах мне стало ясно, что Blueprints вызвали желание стать программистами в моих коллегах, не работающих в области технологий. Основная причина этого состояла в том, что они могли реализовать довольно сложную логику, в то же время имея возможность отлаживать ее визуально.

Они действительно усвоили некоторые сложные уроки об архитектуре программного обеспечения и подводных камнях (или, скорее, ночных кошмарах) огромных чертежей спагетти. Но только после того, как почувствовал массу маленьких успехов на этом пути! Таким образом, они не были обескуражены вообще, а скорее мотивированы, чтобы сделать лучше и выяснить, как сделать это самостоятельно.

С тех пор они прошли курсы по C ++, Python и C #, общее качество наших Blueprints стало намного лучше, но больше всего: теперь у меня есть некоторая помощь при разработке наших основных библиотек :)

TLDR;

Да, мы используем Blueprints, и они даже сделали моих изначально нетехнологичных пиров лучшими программистами.

Xceno
источник
1
Одна из приятных особенностей визуальных языков, таких как Blueprints, заключается в том, что вам не нужно беспокоиться о синтаксисе, и они, как правило, настолько абстрактны, что вы можете многое сделать с очень небольшим образцом. Они позволяют легко научиться кодировать, не увязая в синтаксисе. Они, как правило, слишком высокого уровня, делают любое волшебство , но, вы знаете, я хочу сделать компромисс, чтобы не-кодеры имели прямое влияние на поведение игры.
Фонд Моника иск
@NicHartley попробуйте сделать myVector.x += otherVector.xв Blueprints. : o
Almo
1
@ Almo Я почти на 90% уверен, что это возможно, если только вы действительно не хотите, чтобы это была одна «линия». Просто (get myVector x) (get otherVector x) -> (+) -> (assign myVector x)(вау, сложно написать Чертежи в тексте ...). У меня нет копии Unreal для тестирования. Или, если векторы являются неизменяемыми, просто создайте новый(myVector.x + otherVector.x, myVector.y, myVector.z)
Фонд Monica's Lawsuit
1
Это определенно возможно, но это грязно. Векторная линия в поле Break, которое имеет выходы x, y, z. Сделайте это дважды, один для получения myVector.x и другой для получения otherVector.x, добавьте их и направьте в поле назначения.
Almo
1
Я не сказал, что ты не мог. Просто это отвратительно.
Almo