본문 바로가기
프로그래밍/Unreal Engine

[UE] 언리얼 엔진 - 블루프린트

by Sik.K 2023. 11. 12.

기존 DirectX11 라이브러리를 이용해서 게임을 만들면서 느낀 점은 불편한 점이 상당히 많았다는 것이다.

 

마치 맨 땅에 도구들을 던져주고 그 도구들을 이용해 재료를 캐고, 복잡한 도구를 만들어 집을 짓는 느낌이다. 불편함을 느끼면서 이제는 상용 엔진을 다뤄봐야 할 것 같아 언리얼 엔진을 공부하기 시작했다.

 

언리얼 엔진이란, 에픽게임즈에서 제작한 게임 제작 엔진을 말한다.

 

DirectX에서 제공하는 기능들을 다듬고, 게임 제작을 더욱 편하게 할 수 있게 비쥬얼라이징을 하였는데 일반적인 C++ 코드를 이용해 만든 DirectX 기반 게임들과는 큰 차이가 있다.

 


 

 블루프린트

 

블루프린트를 이용한 비쥬얼라이징된 코드

 

블루프린트는 언리얼 엔진의 노드 기반 프로그래밍 언어를 의미한다.

 

블루프린트는 쉽게 말하면 눈으로 보기 쉬워진 코드이다. 기존에 C++를 이용하던 코드는 위에서 아래를 향하는 일렬로 작성된 코드이기 때문에 런타임 중 어떤 흐름으로 코드가 실행이 되는지 보기 명확하지 않는다는 단점이 있었다. 하지만 블루프린트는 비쥬얼라이징 된 노드 기반의 언어이기 때문에 노드들의 흐름을 통해 런타임 중의 실행 흐름을 파악할 수 있다.

 

허나 단점으로는 C++ 보다 비싼 비용이 들어간다. 블루프린트 자체가 새로운 언어가 아니라 C++로 번역되는 언어이기 때문에 실행 단계에서 가상머신을 통해 C++로 번역이 된다. 이 점 때문에 C++로 작성된 코드들보다 퍼포먼스 적인 부분에서 비용이 많이 들어간다.

 

그럼에도 이용되는 이유는 비쥬얼라이징이라는 압도적인 기능에 있다. 개발자가 아닌 기획자나 디자이너의 입장에서 볼 때 어지러운 코드 보다는 눈에 잘 들어오는 블루프린트 기반의 코딩을 선호한다.

 

C++과 블루프린트 둘 다 저마다의 장점과 단점이 있다. 때문에 어떤 상황에서 사용할 지 적재적소를 골라서 사용하는 것이 게임의 퍼포먼스를 최대한 끌어올리는 방법이 된다.

 

가령 간단한 동작이나 시스템 내부의 데이터에 접속하지 않아도 되는 클래스의 경우 블루프린트로 작성하는 것이 능률이 좋을 것이고, 최적화를 비롯해서 엔진 내부 시스템에 접속해야 하는 경우에는 C++로 코드를 작성하는 것이 훨씬 도움이 될 것이다.

 

댓글