Преимущества визуальных языков программирования на примере Blueprint в среде игрового движка Unreal Engine 4
Автор: Неизвестный М.А.
Журнал: Экономика и социум @ekonomika-socium
Рубрика: Информационные и коммуникативные технологии
Статья в выпуске: 8 (27), 2016 года.
Бесплатный доступ
Статья посвящена визуальному языку программирования Blueprint, его преимуществам и отличиям перед традиционным языком программирования, таким как С++.
Визуальный язык программирования, компиляция, скрипт
Короткий адрес: https://sciup.org/140121279
IDR: 140121279
Текст научной статьи Преимущества визуальных языков программирования на примере Blueprint в среде игрового движка Unreal Engine 4
Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит её исполнитель. За всё время своего существования языки программирования изменялись, становясь проще и понятнее.
С появлением компьютеров программистам приходилось писать программы в машинном коде. Это требовало огромных усилий и приводило к множеству ошибок. В 50 –х годах был создан ассемблер, позволяющий задавать названия команд в символическом виде, что облегчило работу программистов.
Следующими языками программирования являлись языки высокого уровня. Они имеют ряд преимуществ: простота, независимость выполнения от компьютера. Также они имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
С 70-х годов и по настоящее время продолжается период языков 4-го поколения. Целью их создания было стремление увеличить скорость разработки проектов, уменьшить число ошибок, получить возможность быстро и легко вносить изменения в программу.
Следующим витком развития языков программирования можно считать появление визуальных языков программирования. В отличие от традиционного программирования, в визуальном программист имеет дело со структурами по типу блок-схем. При этом составляющие этих блоков являются заранее разработанными подпрограммами и функциями. При соединении таких блоков их взаимный интерфейс настраивается без участия программиста. Таким образом, визуальные языки позволяют программировать на уровне алгоритмов, а не программного кода.
Примерами визуальных языков являются Google Blockly, VisSim, Blueprint и др.
Рассмотрим технологию Blueprint в движке Unreal Engine 4.
Blueprint – это визуальный скриптинг в среде UE4, основанный на использовании графического интерфейса, позволяющий создавать гейплейные элементы в среде движка.
Рассмотрим преимущества составления скрипта на Blueprint по сравнению с С++.
Blueprint, как С++ и многие языки программирования, поддерживает объектно-ориентированное программирование, что поможет составить удобную классовую иерархию в проекте. Blueprint позволяет создать новый класс без необходимости написания кода и его дополнительной компиляции, что делает возможным работать без задержек и экономить время.
Помимо всего прочего Blueprint очень быстро компилируется по сравнении с C++. Это позволяет быстро протестировать выполнение алгоритма, посмотреть, как работает та или иная функция.

Compiler Log (10)
UDN Parse Errors
Q Compiler Results jj Find Results
Asset Tools Build and Submit E Source Control (5) Blueprint Log Play In Editor Automation Testin Localization Servic Asset Reimport Lighting Results Map Check (1) Load Errors Editor Errors Packaging Results Asset Check Slate Style Log

-
• Creating makefile for hot reloading MyProject3 (working set of source files
-
• Compiling game modules for hot reload
-
• Parsing headers for MyProject3Editor
-
• Running UnrealHeaderTool ’CAUsers\Cyfralus\Documents\Unreal Projer
-
• Reflection code generated for MyProject3Editor in 6,1347744 seconds
-
• Performing 2 actions (4 in parallel)
-
• MyProject3Character.cpp
-
• (2/2] Link UE4Editor-MyProject3-8492 dll
-
• ????????? ?????????? C:\Users\Cyfralus\EJocuments\Llnreal Projects',^
-
• Total build time-94.16 seconds
Page-»
• [0426.72] Compile of ThirdPersonCharacter successful! (in 107 ms] (/Game/ThirdPersonBP/Blueprir
Рис. 1. Время компиляции C++ Blueprint.
Несомненным плюсом Blueprint является совпадающий API с С++. Т.е. входящие в их состав классы, функции и процедуры идентичны. Приведем в пример функцию случайного выбора числа из заданного диапазона. Если навести мышкой на блок, то можно увидеть к какой библиотеки он относится.

Рис. 2. Определение библиотеки.
Открываем header файл библиотеки и находим функцию, которая может использоваться и в С++.
/* Returns a uniformly distributed random number between 0 and Max - 1 */ UFUNCTION(BlueprintPure, Category="Math|Random") static int32 Randominteger(int32 Max);
Рис. 3. Искомая функция.
Исходя из выше сказанного, код на С++ может быть представлен несколькими блоками в Blueprint (рис.4 и рис.5). А с перечисленными выше преимуществами позволяет работать быстро и эффективно.
void ' , • ' |- ' 1 • ■' •- ; 4^оме£огыаг^*1ч«( -)
if ((Controller- != HULL) U ( I 1= e.W)) (
// find out which way is forward const Rotation » ControlIwr >CetContrn]Rotation();
Aid^voaontlnputlOlroctlan, Vm .};
I
'void ■'. -nt- - * ■ "■ : PoveS:^Kt(*ioet •"-)
l< if ( (Controller I- NULL) HL <■■ I- e.ef) )
Jf find out which way is right const Rotation - Controller XXControlRotation();
/f add aoveacnt in that direction Add^v^wwfit Input (Di ratt ion, -)^
Рис. 4. Методы, написанные на С++.

Рис. 5. Методы, написанные на Blueprint.
Также Blueprint может стать хорошим средством разработки для небольшой группы разработчиков, где имеется мало программистов. Визуальное представление функций, запрет соединения блоков разных типов помогут избежать ошибок и позволят человеку, знакомому с программированием, легко составить игровую логику. В крупных компаниях
Blueprint может помочь составить логику дизайнерам игр для последующего написания кода на С++ программистами.
В заключении выделим ещё раз основные плюсы Blueprint:
^ Простота в освоении.
^ Быстрая компиляция.
^ Идентичность с C++.
^ Объектно-ориентированный язык программирования.
^ Подходит для небольших команд разработчиков.
Список литературы Преимущества визуальных языков программирования на примере Blueprint в среде игрового движка Unreal Engine 4
- https://docs.unrealengine.com/-technical guide