Избранное сообщение

Очень вольный перевод статьи Designing to Succeed

Не так давно некий Tony Downey, геймдизайнер, опубликовал внушительную статью о разработке и игровом дизайне инди-игр. В ней он рассмотр...

вторник, 12 июля 2016 г.

Радость и боль блупринтов

Я тут недавно стал экспериментировать с Unreal Engine 4. Унрил - мощь, с кучей крутых штук из коробки, Юнити при этом тихо курит в стороне. При этом самой любопытной штукой в нём является система блупринтов - эдакое визуальное программирование. Тягаешь себе ноды, рисуешь связи между ними. Получается что-то типа того:
"Настоящие программисты" любят ругать эту систему, ибо "только C++, только хардкор". Я же ничего особо плохого в блупринтах не вижу - тем более, что зная плюсы всегда можно написать свою кастомную блупринт-ноду. Я бы выделил следующие плюсы и минусы этого всего:

Плюсы:

  • Можно быстро прототипировать простые функциональности, просто накидывая готовые ноды
  • Много функций реализовано заранее - не надо по сотому разу делать свои тригонометрические велосипеды, например, когда есть findLookAtRotation
  • Всегда виден чёткий execution flow - для поиска определённого места в чужом "коде" не нужно пробираться через дебри паттернов и других вещей, которыми решил выпендриться человек
  • Нет стандартов кодирования, холиваров из-за скобочек и прочей фигни. Хотя, возможно, есть холивары на тему красивого расставления нодов
  • Всегда можно написать свои кастомные ноды на C++ и дальше играться с блупринтами
Минусы:
  • Блупринты - это бинарные файлы, сурс-контроль только встроенными в редактор средствами через Perforce или svn
  • Порой излишняя громоздкость. Сделать на блупринтах 'boolVar = !boolVar' - это значит поставить ноду 'GET boolVar', протянуть от неё ребро, сделать ноду 'NOT', протянуть дальше, сделать 'SET boolVar'. А сложные логические ветвления - это вообще ад.
  • Вероятно, для больших и сложных проектов писать свои кастомные ноды на C++ - это не "можно", а "необходимо"
Возможно, в ближайшее время я погружусь в это дело поглубже и дополню пост.

Комментариев нет:

Отправить комментарий