Unreal Engine은 Epic Games가 AAA 게임, 시뮬레이션 및 영화 제작을 위해 개발한 게임 엔진입니다. 모듈식 렌더링 아키텍처와 Blueprints 비주얼 프로그래밍 시스템을 사용합니다. Epic Games(2026년)에 따르면, Unreal Engine 생태계에는 1,200만 명 이상의 개발자가 등록되어 있으며, 전문 게임 엔진 중 점유율은 45%를 초과합니다.
주요 포인트
Unreal Engine은 Epic Games가 개발한 게임 엔진으로, 1998년 Unreal 게임과 함께 처음 출시되었습니다. 탄생 이후 이 엔진은 5번의 주요 업데이트를 거쳤으며, 2022년에 출시된 현재 버전 Unreal Engine 5는 게임 개발, 시뮬레이션, 영화 제작 및 건축 시각화를 위한 완전히 재설계된 플랫폼입니다.
다른 엔진과 달리 Unreal Engine은 Real-Time Ray Tracing 및 Nanite 가상 지오메트리를 위한 기성 솔루션을 제공합니다. 이러한 기술은 성능 저하 없이 수백만 개의 폴리곤으로 장면을 만들 수 있게 해줍니다. 개발자는 C++로 엔진의 전체 소스 코드에 액세스할 수 있어 특정 프로젝트 요구에 맞게 모든 측면을 수정할 수 있습니다.
생태계에는 수천 개의 기성 에셋, 플러그인 및 사운드 효과가 있는 마켓플레이스가 포함되어 있습니다. 개발자는 PlayStation 5, Xbox Series X, Nintendo Switch, iOS, Android 및 PC를 포함한 28개 플랫폼에 프로젝트를 게시할 수 있습니다. Epic Games(2026년)에 따르면, 생태계에는 1,200만 명 이상의 등록된 개발자가 있습니다.
Unreal Engine(1998년)의 첫 번째 버전은 복잡한 장면을 효율적으로 렌더링하는 포털 렌더링 아키텍처를 도입했습니다. Unreal Engine 2(2002년)는 6세대 콘솔 지원과 파티클 시스템을 추가했습니다. Unreal Engine 3(2006년)는 PhysX 물리 엔진과 셰이더 기반 머티리얼 시스템 덕분에 Xbox 360 및 PS3 시대의 지배적인 엔진이 되었습니다.
Unreal Engine 4(2014년)는 PBR(물리 기반 렌더링)을 위해 렌더러를 다시 작성하고 Blueprints — 비주얼 프로그래밍 시스템을 도입했습니다. 이 버전은 수익의 5% 로열티 모델 덕분에 독립 스튜디오도 게임 개발을 할 수 있게 만들었습니다. Epic Games(2019년)에 따르면, UE4 프로젝트의 50% 이상이 독립 개발자에 의해 제작되었습니다.
Unreal Engine 5(2022년)는 Nanite와 Lumen — LOD 모델 및 사전 베이크드 라이팅의 필요성을 없앤 기술을 도입했습니다. Digital Foundry(2026년)에 따르면, Nanite는 현재 세대 콘솔에서 실시간으로 100억 개의 폴리곤이 있는 장면을 렌더링할 수 있습니다.
Unreal Engine 아키텍처는 각 하위 시스템을 교체하거나 비활성화할 수 있는 모듈식 원칙으로 구축되었습니다. Core Engine은 게임 수명 주기, 메모리 및 스레드를 관리합니다. 렌더러는 그래픽을, Gameplay Framework는 게임 로직을, 에디터는 개발 도구를 담당합니다.
기본 계층에는 플랫폼 추상화를 위한 FPlatformMisc, 메모리 관리를 위한 FMemory, 멀티스레딩을 위한 FTaskGraph가 포함됩니다. 각 모듈은 로딩 시스템에 등록되는 UModule 클래스로 표현됩니다. 모듈은 Windows에서 별도의 DLL 또는 macOS에서 DYLIB로 컴파일되어 전체 엔진을 다시 컴파일하지 않고 업데이트할 수 있습니다.
에셋 레지스트리는 모든 프로젝트 리소스를 인덱싱하고 태그 및 메타데이터로 빠른 검색을 제공합니다. 각 에셋에는 전역 고유 식별자(FGuid)가 있으며 Soft 및 Hard 참조 메커니즘을 통해 다른 에셋을 참조할 수 있습니다. 패키징 시스템은 최종 게임 빌드를 위해 에셋을 최적화된 Pak 아카이브로 번들링합니다.
네트워킹 모듈은 클라이언트 측 예측을 통한 복제로 멀티플레이어 지원을 제공합니다. Epic Games(2025년)에 따르면, Unreal Engine 복제 아키텍처는 지연 시간 50ms 미만의 전용 서버에서 최대 100명의 동시 플레이어를 지원합니다.
렌더링 파이프라인은 포워드 및 디퍼드 렌더링을 지원합니다. 디퍼드 셰이딩은 대부분의 프로젝트에서 사용되며, 장면당 최대 256개의 광원을 처리합니다. 포워드 렌더링은 낮은 지연 시간이 중요한 모바일 플랫폼 및 VR에 사용됩니다. 머티리얼은 노드 그래프를 통해 설명되고 HLSL 셰이더로 컴파일됩니다.
포스트 프로세싱에는 Temporal Super Resolution(TSR) — 1080p 렌더링에서 4K 품질을 제공하는 Unreal Engine 자체 업스케일링 알고리즘이 포함됩니다. Digital Foundry(2026년)에 따르면, TSR은 동일한 성능 수준에서 품질이 AMD FSR 2.0보다 15–20% 우수합니다. NVIDIA DLSS 3, AMD FSR 3.0 및 Intel XeSS에 대한 추가 지원도 있습니다.
Gameplay Framework는 게임 흐름 구조를 정의하는 클래스 계층 구조입니다. 기본 클래스에는 UGameInstance(게임 세션), UWorld(월드), APlayerController(플레이어 제어) 및 APawn(캐릭터)이 포함됩니다. 각 클래스에는 BeginPlay, Tick 및 EndPlay 호출이 있는 미리 정의된 수명 주기가 있습니다.
컴포넌트 시스템(UActorComponent)은 재사용 가능한 블록으로 기능을 구축할 수 있습니다. UCharacterMovementComponent는 중력, 충돌 및 네트워크 복제를 고려한 캐릭터 이동을 처리합니다. 컴포넌트를 사용자 정의 컴포넌트로 교체하면 APawn에서 상속하지 않고 동작을 변경할 수 있습니다.
어빌리티 시스템(GameplayAbilities)은 자동 네트워크 복제 기능이 있는 RPG 메커니즘(주문, 버프, 효과)을 위한 프레임워크를 제공합니다. Epic Games(2025년)에 따르면, 어빌리티 시스템은 Unreal Engine의 RPG 프로젝트 중 70%에서 사용됩니다.
C++은 Unreal Engine의 주요 언어입니다. 전체 엔진이 C++17로 작성되어 있으며, 개발자는 모든 측면을 수정할 수 있습니다. 코드는 에디터 통합을 위해 UPROPERTY 및 UFUNCTION 마커가 있는 자체 리플렉션 시스템(Unreal Reflection System)을 사용합니다. 클래스는 UObject에서 상속받으며 직렬화, 복제 및 인스펙터를 통한 편집을 지원합니다.
게임 월드의 모든 객체는 AActor 클래스에서 상속받습니다. 다음은 X축을 따라 객체를 이동하는 기본 클래스의 예입니다:
// MovingActor.h
class AMovingActor : public AActor
{
GENERATED_BODY()
public:
AMovingActor();
virtual void Tick(float DeltaTime) override;
UPROPERTY(EditAnywhere, Category = "Movement")
float Speed;
private:
FVector StartLocation;
};
UPROPERTY(EditAnywhere) 마커가 있는 Speed 속성은 Unreal Editor에 표시되며 레벨 저장 시 자동으로 직렬화됩니다. Tick 메서드는 DeltaTime 매개변수와 함께 매 프레임 호출되어 프레임 속도 독립성을 보장합니다. 이것이 게임 월드에서 대화형 객체를 만드는 기본 패턴입니다.
Blueprints는 노드 그래프 기반의 비주얼 스크립팅 시스템입니다. 각 노드는 함수 호출, 연산 또는 이벤트를 나타냅니다. Blueprints는 빌드 시 네이티브 C++ 코드로 컴파일되어 순수 C++에 가까운 성능을 제공합니다. 개발자는 비주얼 그래프에서 함수를 호출하여 C++와 Blueprints를 혼합할 수 있습니다.
다음은 C++에서 동적 머티리얼을 생성한 후 Blueprints에서 사용하는 예입니다:
// 애니메이션 머티리얼 생성
UMaterialInstanceDynamic* DynMaterial =
UMaterialInstanceDynamic::Create(BaseMaterial, this);
DynMaterial->SetScalarParameterValue(
FName("GlowIntensity"), FMath::Sin(RunTime) * 0.5f + 0.5f
);
이 코드는 동적 머티리얼 인스턴스를 생성하고 사인파에 따라 GlowIntensity 매개변수를 업데이트합니다. 이 접근 방식을 사용하면 셰이더 코드를 작성하지 않고도 맥동하는 광원에서 움직이는 물 텍스처에 이르기까지 애니메이션 표면을 만들 수 있습니다. 동적 매개변수가 있는 머티리얼은 자동으로 에디터와 동기화됩니다.
Unreal Engine은 백그라운드 작업에 자체 스레드 풀을 사용합니다. ASyncTask와 FThreadSafeQueue는 스레드 간 안전한 데이터 전송을 보장합니다. 장기 실행 작업의 경우 비동기 에셋 로딩 및 우선순위 지정이 있는 FStreamableManager 시스템이 사용됩니다.
// 비동기 텍스처 로딩
TSoftObjectPtr<UTexture2D> TextureRef;
FStreamableManager &Streamable =
UAssetManager::GetStreamableManager();
Streamable.RequestAsyncLoad(
TextureRef.ToSoftObjectPath(),
[this]() {
UTexture2D* Tex = TextureRef.Get();
ApplyTexture(Tex);
}
);
람다 함수는 로딩 완료 후 메인 스레드에서 실행되어 경합 조건을 제거합니다. FStreamableManager 시스템은 핸들을 통한 로드 우선순위 지정 및 작업 취소를 지원하며, 스트리밍 레벨 로딩을 사용하는 오픈 월드 프로젝트에 중요합니다.
Unreal Editor는 코드를 작성하지 않고 게임을 만들 수 있는 완벽한 도구 세트를 갖춘 통합 개발 환경입니다. 에디터에는 객체 배치를 위한 레벨 에디터, 셰이더를 위한 머티리얼 에디터, 스켈레탈 애니메이션을 위한 애니메이션 에디터, 시네마틱 장면을 위한 Sequencer가 포함되어 있습니다. 모든 변경 사항은 뷰포트 창에 실시간으로 표시됩니다.
레벨 에디터는 변환을 사용하여 씬에 Actor를 배치할 수 있습니다. 랜드스케이프 도구는 올리기, 내리기 및 평탄화를 위한 브러시로 지형을 만듭니다. 높이와 표면 각도에 따라 머티리얼을 자동으로 혼합하기 위한 텍스처 레이어가 지원됩니다.
Foliage 시스템은 절차적 배치를 통해 레벨을 식생으로 채웁니다. 잔디, 나무 또는 돌의 각 인스턴스는 자연스러운 모양을 위해 무작위로 회전 및 크기 조정됩니다. Epic Games(2025년)에 따르면, 절차적 Foliage 시스템은 성능 저하 없이 레벨당 최대 100만 개의 인스턴스를 지원합니다.
Sequencer는 트랙 기반 원리로 작동하는 게임 내 컷씬 및 트레일러 제작을 위한 비선형 편집기입니다. 각 트랙은 카메라 위치, 캐릭터 애니메이션, 사운드 또는 효과 등 하나의 매개변수를 제어합니다. 녹화는 뷰포트 창에서 직접 실시간으로 이루어집니다.
Control Rig를 사용하면 Maya나 Blender에서 내보내지 않고 에디터에서 직접 스켈레톤을 애니메이션할 수 있습니다. 애니메이터는 비주얼 노드 그래프를 통해 절차적 애니메이션을 만듭니다. Epic Games(2026년)에 따르면, Control Rig는 Unreal Engine의 시네마틱 프로젝트 중 60%에서 사용되며 역운동학을 지원합니다.
Niagara는 Cascade를 대체한 차세대 VFX 시스템입니다. GPU 파티클, 충돌 이벤트 및 절차적 생성을 지원합니다. 각 효과는 그래프로 결합된 이미터, 모듈 및 매개변수로 구성됩니다. Niagara를 사용하면 수백만 개의 파티클로 날씨 시스템, 마법 효과 및 폭발을 만들 수 있습니다.
Niagara 시스템은 데이터 인터페이스를 사용하여 물리 엔진 및 지형과 상호 작용합니다. 파티클은 Nanite 지오메트리와의 충돌에 반응하고 Lumen 조명의 기류를 포착할 수 있습니다. Epic Games(2025년)에 따르면, GPU에서 Niagara의 성능은 CPU에서 Cascade보다 5–10배 높습니다.
Unreal Engine 5는 두 가지 기본 기술을 도입했습니다: 지오메트리를 위한 Nanite와 조명을 위한 Lumen입니다. 이들은 품질과 성능 간의 전통적인 절충을 제거했습니다. Nanite를 사용하면 수동 LOD 최적화 없이 영화 품질의 소스 에셋을 사용할 수 있습니다.
Nanite는 소프트웨어 래스터화 및 클러스터 기반 LOD를 통해 실시간으로 수십억 개의 폴리곤을 렌더링하는 가상 지오메트리 시스템입니다. 기존 접근 방식과 달리 Nanite는 마이크로 수준에서 보이지 않는 픽셀을 버리고 서브픽셀 정밀도로 보이는 세부 정보만 렌더링합니다.
Epic Games(2025년)에 따르면, Nanite는 동일한 성능에서 UE4와 비교하여 지오메트리 세부 정보가 10–100배 향상됩니다. 이 기술은 ZBrush 모델을 직접 가져오고 실시간 렌더링을 위해 자동으로 최적화합니다. 제한 사항은 투명 마스크 및 데칼 지원이 없다는 것입니다.
Lumen은 실시간으로 광원 변화에 반응하는 동적 글로벌 일루미네이션 시스템입니다. Signed Distance Fields에서 레이 트레이싱을 사용하여 간접 조명을 계산합니다. Lumen은 반사, 확산광 및 객체 간 색상 상호 작용을 지원합니다.
Lumen의 성능으로 현재 세대 콘솔에서 30–60 FPS로 사용할 수 있습니다. Digital Foundry(2026년)에 따르면, Lumen은 Mental Ray 오프라인 렌더링에 필적하는 조명 품질을 제공합니다. RTX 4070 이상의 PC에서는 향상된 품질을 위해 하드웨어 가속 레이 트레이싱을 사용할 수 있습니다.
Temporal Super Resolution(TSR)은 이전 프레임의 정보를 사용하여 고해상도를 재구성하는 Unreal Engine 자체 업스케일링 알고리즘입니다. TSR은 전용 NVIDIA Tensor 코어 없이 Shader Model 5를 지원하는 모든 GPU에서 작동합니다.
또한 Unreal Engine 5는 NVIDIA DLSS 3, AMD FSR 3.0 및 Intel XeSS를 지원합니다. Epic Games(2026년)에 따르면, TSR과 ML 기반 업스케일링의 조합은 네이티브 4K에 가까운 품질을 유지하면서 최대 2.5배의 성능 향상을 제공합니다. 모든 기술은 통합 렌더링 시스템을 통해 통합됩니다.
자주 묻는 질문
Unreal Engine은 AAA 게임, 시뮬레이션 및 영화 제작을 위한 Epic Games의 게임 엔진입니다. 그 다양성과 사실적인 그래픽 덕분에 게임 업계, 영화(The Mandalorian), 자동차 디자인 및 건축 시각화에 사용됩니다.
C++은 Unreal Engine의 주요 프로그래밍 언어입니다. Blueprints는 네이티브 코드로 컴파일되는 비주얼 스크립팅 시스템입니다. Python은 에디터 자동화 및 빌드 파이프라인에 사용됩니다.
Nanite는 픽셀 수준에서 자동으로 디테일을 관리하고 보이지 않는 삼각형을 버립니다. 기존 LOD는 다양한 디테일 수준의 여러 모델 버전을 수동으로 만들어야 합니다. Nanite는 수동 최적화 없이 수십억 개의 폴리곤으로 작업합니다.
Unreal Engine은 Blueprints — 코드 없이 비주얼 프로그래밍 — 덕분에 부드러운 학습 곡선을 제공합니다. Epic Games는 Learn Unreal Engine에서 무료 코스를 제공합니다. 기본 기술을 습득하는 데 3–6개월의 정기적인 연습이 필요합니다.
Unreal Engine은 28개 플랫폼에서 게시를 지원합니다: PC(Windows, macOS, Linux), 콘솔(PlayStation 5, Xbox Series, Nintendo Switch), 모바일 기기(iOS, Android), VR/AR, WebGL 및 Pixel Streaming을 통한 웹.
요약
턴키 방식의 모바일 애플리케이션을 개발해 드립니다
IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.