Про использование C++ в разработке игры на Unreal Engine 4

Стоит ли использовать C++ для разработки игры в движке Unreal Engine 4?


Сразу ответ на этот вопрос — нет. С++ — язык нижнего уровня и его хорошо использовать для разработки движков, технологий и техник рендеринга. Для разработки игр же стоит использовать блюпринты.

Почему так?


Это так, потому что блюпринты — это язык верхнего уровня, что означает, что он ближе к пользователю, блюпринты можно использовать в сочетаниях с редакторами имеющими визуальный интерфейс, что ускоряет разработку по сравнению с С++. Блюпринты компилируются в разы быстрее, чем программы на С++, что ускоряет тестирование.

Говорят, что программы на С++ работают быстрее, и на них можно разработать все, что угодно, потому что они ближе к низкоуровневому функционалу, но программисты при том не говорят, что потеря во времени разработки большая. В разработки игры уже давно не нужно разрабатывать базовые фичи движков, за редкими исключениями, всё это уже давно сделано. Нужно собирать кейс из уже готовых решений. Вместо того чтобы разрабатывать «Все что угодно» следует сперва ознакомиться с реализованными решениями, и по правилу прогрессивного джепега использовать сначала то, что есть, после чего можно заниматься улучшениями.

Когда Epic Games демонстрируют то, как, можно пользоваться наработками движка Unreal Engine 4, обычно уроки демонстрируются на блюпринтах, по C++ уроков мало, это должно наводить на мысли о том, что разработчикам игр предлагается работать на блюпринтах, потому что именно блюпринты предназначены разработчиками движка для разработки игр, а С++ предназначен для разработчиков самого движка, хотя конечно же разрабатывать на нем игры тоже можно.

Блюпринты работают в 4 раза медленнее. Что это означает? Это означает, что сама прослойка разработанная на блюпринтах разработчиком игры работает в 4 раза меделннее, а те компоненты, которая она использует, разработанные на С++ не работают в 4 раза медленнее. Так же, если разработчик получил медленный код, нужно заниматься оптимизациями этого кода, например выполнять операции не каждый кадр, а 4 раза за кадр или реже, применить принцип лодирования к коду и выставить ограничения на использование разработанного компонента. И такое ощущение, что люди позабыли о том, что мы сейчас работаем не на старых медленных компьютерах, а на многопроцессорных архитектурах. Процессоры с 4-я ядрами это уже ниже чем средняя планка на рынке пользователей ПК. Разработчики не должны думать о том, чтобы оптимизироваться все что разработали.

Еще блюпринты дают такой бонус в проектировании кода, тот кто не пробовал не поймет, но вы можете выстраивать схемы в плоскости, а не на линейке, как это происходит с текстовым кодом.

Знание OpenGL и умение работать с нижним уровнем это очень здорово, но мы говорим о разработчике игры, а не о хорошем программисте, который всё умеет. Разработчику игры важнее знать наработки движка, тем более, что они реализованы по общепринятым методологиям которым уже много лет, они задокументированы в книгах по разработке движков и там почти всё, что вам нужно уже есть (очень редкие исключения: новые тренды). Разработчику игры следует быть сконцентрированным на владении движка, на сборке объектов сцены из уже созданных компонентов, а не на разработке движка и доверить разработку трендовых фичей движка тем людям, которые этим уже занимаются.
Теги:
C++, blueprint, блюпринт, разработка игры, Unreal Engine

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.