Я предполагаю, что вы имеете в виду проприетарные генераторы кода, управляемые для конкретного внутреннего использования, поскольку в противном случае все, кроме машинного кода, является генератором кода. Но здесь вы идете:
Я думаю, что это очень спорно, что граф узел Blueprints легче поддерживать и гораздо менее подвержены ошибкам, чем код GLSL / HLSL он генерирует (и был бы в противном случае должен был быть написано от руки).
Кроме того, гораздо эффективнее создавать новые шейдеры, поскольку вы получаете визуальную обратную связь в реальном времени о том, как будет выглядеть конечный результат при изменении графика. Я определенно предпочел бы поддерживать тысячи шейдеров, представленных в виде узловых графов, таким образом, вместо кода GLSL / HLSL, и на самом деле я больше знаком с написанием GLSL / HLSL, чем с использованием Blueprints. Я думаю, что на самом деле практически невозможно вызвать, как серьезную ошибку, кроме, возможно, небольшого визуального сбоя, который вы, вероятно, сразу заметите, потому что «визуальный язык» накладывает разумные ограничения, зачастую с чисто функциональным стилем, который не позволяет вам, скажем, разбить шейдер, по крайней мере, AFAIK (я, правда, не эксперт по Blueprints).
Там даже не «код», чтобы поддерживать больше. Вы просто размещаете узлы внутри графика и рисуете связи между ними, и, вуаля, он генерирует шейдерный код для вас. Кто поддерживает этот материал и говорит: « Вы знаете, моя жизнь была бы намного проще, и у меня было бы намного больше свободного времени, если бы это было просто написано в коде GLSL вместо использования Blueprints». Вероятно, никогда.
Тем не менее, я столкнулся с моей долей проприетарных генераторов кода, которые действительно усложнили жизнь, заставив меня выучить этот глупый мета-язык, который имеет очень ограниченные преимущества, если вообще есть, над написанием кода на языке сгенерированного им кода. Для меня контрольный признак генерации кода, который является дерьмовым, - это тот, который делает немного больше, чем уменьшает небольшое количество шаблонного кода и фактически не уменьшает, скажем, вероятность ошибок. Вы знаете, это особенно дерьмо, если оно действительно вводит новые способы вызывать ошибки, которых не было в оригинальном языке. Но есть случаи для генерации кода, как и выше, когда повышение производительности настолько велико, что делает дотошные вещи, которые стоят огромного времени, теперь стоят копейки, что никто бы никогда не использовал его, а потом оглянулся.
Для меня есть более правдоподобный аргумент в пользу проприетарной разработки Blueprints среди команды Epic, чем многие излишние языки программирования, созданные для широкой публики и едва ли приносящие что-то новое.