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