Unreal Engine/개념정리

언리얼 엔진의 특징 및 장단점

KimGeon-U 2024. 12. 2. 17:32

개발자가 되기위해서는 자신이 원하는 직업의 방향성에 맞는 C++, C#, Java와같은 다양한 언어를 학습하게됩니다.

저는 게임 클라이언트 개발자를 지향하는 개발자로써 가장 많이 알려져있는 프로그래밍 언어 중 C++를 학습하게 되었으며, C++을 통한 상용화된 엔진 중 가장 대중적으로 알려져있는 Unreal엔진을 학습하게 되었습니다.

이번 포스팅에서는 언리얼 엔진의 특징 및 장단점, 그리고 언리얼5에서 변경된 특징등에 대해 알아보겠습니다.

 

Unreal 엔진이란?

언리얼 엔진은 에픽게임즈에서 개발한 게임엔진으로, 다양한 플랫폼에서 사용되며 고사양 그래픽 렌더링, 블루프린트,

오픈 소스 및 마켓플레이스를 통한 다양한 에셋 등의 특징이 있습니다.

 

  • 특징 및 장점 : 
    • 블루프린트를 사용한 시각적 스크립팅이 가능하여 테스트 및 비 개발자들과의 협업이 용이하다.
    • PC,콘솔,모바일 등 다양한 플랫폼환경에서 게임 개발이 가능하다.
    • 오픈 소스 코드로 개발자가 필요에 따라 엔진을 직접 수정 및 최적화가 가능하다.
    • 상용화된 엔진을 통해 많은 커뮤니티가 활성화 되어있으며, 듀토리얼 및 문서를 통해 다양한 학습이 가능하다.
    • C++에서는 없던 GC(Garbage Collection)이 존재하여 효율적인 메모리 관리가 가능하다.
  • 단점 :
    • 개발 환경에서 유니티 엔진에 비해 고사양의 PC가 필요하다.
    • 모바일 게임 개발은 가능하지만, 최적화 및 저사양의 스마트폰에서는 성능 문제가 발생할 수 있다.
    • 초기 접근의 어려움이 있다.

 

Unreal vs Unity

언리얼 VS 유니티 비교

 

 

엔진이 무겁다?

  1. 개발 환경 하드웨어 자체 의미
    • CPU,GPU,RAM 요구사항이 높다
      • 고해상도 그래픽, 쉐이더 기술의 적용되는 기능들
  2. 엔진의 크기 및 컴파일 시간이 높다.
    • 유니티는 모듈식, 언리얼은 추가설정 하지 않아도 적용되는 기술들이 많다
    • 언리얼은 기본적으로 제공하는 기능들이 많은 이유가 엔진이 무겁다는 의미 + 초기 접근시 높은 난이도를 요구한다.
  3. 런타임 환경에서 리소스 사용량이 높다.
    • AAA급 게임을 만들기 적합한 이유 (루멘, 피직스 시뮬레이션 등)을 사용한 렌더링의 이유
    • 유니티는 유연함을 중점, 최적화를 중점으로 하고있다.
  4. 엔진의 복잡성
    • 언리얼 엔진은 C++기반, 유니티 엔진은 C#기반으로 설계
    • C++의 특징인 기계어에 가깝다. 즉, 더 낮은 수준까지 접근을 허용한다.
  5. 의존성 차이
    • 유니티 : 유연하다 → 모듈식으로 필요한 기능들만 추가/제거한다.
    • 언리얼 : Material, 시퀀스, 블루프린트등의 편리한 기능들을 기본적으로 제공한다.

 

 

그래픽 렌더링의 차이

  1. 좀더 사실적 그래픽(고 해상도 그래픽)렌더링을 목표로 하기때문.
    • 회사의 방향성이 다르다.
    • 나노이트, 루멘, 쉐이딩시 매터리얼 에디터등의 추가 기능이 통합되어 있다.
    • 유니티의 경우 원하는 기능들을 추가/제거하는 모듈화된 패키지 형식, 유니티에서도 HDRP를 통한 고품질 포스트 프로세싱 가능
  2. 같은 HLSL을 통한 셰이딩을 할시 어떤 결과?
    • 렌더링 파이프라인의 차이가 있다.
      • 언리얼 : 고해상도 품질 위주
      • 유니티 : 퍼포먼스 위주, HDRP를 설정 시 고품질 그래픽 렌더링 가능
    • 포스트 프로세싱의 차이
      • 언리얼 : Bloom, Depth of Field, Motion Blur, Anti-Aliasing 등 기본적으로 제공
      • 유니티 : 어느정도 포스트 프로세싱이 가능하지만, 기본 설정값에는 최소화 되어있다. → 기본설정+개발환경 설정을 통한 유연함을 강조
    • 라이트
      • 언리얼5 특징인 루멘과 같은 기술이 적용되어 조명 시스템의 차이가 있다.

 

언리얼5에서 추가된 주요 특징

언리얼4 엔진에서 5로 변경되며 추가된 강력하고 다양한 특징들이 있지만, 그 중 클라이언트 개발자가 알아야 되는 몇가지 특징들에 대해 알아보겠습니다.

 

1. 나노이트(Nanite)

  • 가상화된 마이크로폴리곤 지오메트리 시스템으로, 매우 높은 디테일의 모델을 실시간으로 렌더링 할 수 있다.
  • 복잡한 모델에서도 디테일 손실 없이 높은 성능 유지가 가능하다.
  • LOD(Level of Detail) 작업이 자동으로 처리되며, 개발 시간을 단축시켜준다.
  • 거대한 오픈월드 환경 및 건축 시각화에서 사용할 수 있다.

2. 루멘(Lumen)

  • 다이나믹 글로벌 일루미네이션 솔루션으로 직접광 또는 지오메트리(Geometry Shader)와 같은 변화에 따른 간접광을 즉시 반영한다.
  • 환경변화에 따라 실시간으로 조명과 그림자가 자동으로 조정된다.
  • 별도의 라이트맵이 필요없이 자연스러운 조명 구현이 가능하다.

3. 월드 파티션(World Partition)

  • 월드를 언리얼 엔진이 담당하여 나누어 관리하는 데이터 스트리밍 시스템이다.
  •   액터당 한 개의 파일(One File Per Actor, OFPA)시스템을 통해 여러 개발자가 동일한 월드의 같은 영역을 동시에 작업 할 수 있다.
  • 대규모 오픈월드를 언리얼엔진 내부에서 담당하여 효율적으로 제작 및 관리가 가능하다.
  • 사용자(유저)는 필요한 부분만 로드하여 메모리 사용을 절감할 수 있다.

4. 메타사운드(Meta Sound)

  • 사운드 소스의 오디오 DSP 그래프 생성을 제어하는 시스템.
  • 오디오 렌더링의 모든 측면을 관리할 수 있다.
  • 프로그래밍이 가능한 매터리얼 및 렌더링 파이프라인과 유사하다.

이번 포스팅에서는 언리얼 엔진의 특징 및 장단점, 그리고 언리얼5의 주요 추가된 기능들에 대해서 알아보았습니다.

이 외에도 언리얼 엔진은 클라이언트 개발자가 개발시 다양한 도움을 주며, 그 중 객체의 생성과 소멸을 언리얼 엔진 내부에서 담당하여 개발자에게 편리함을 주는 기능 중 하나인 GC에 대해 알아보겠습니다.