안선생의 개발 블로그

[UE5] 언리얼 라이브 코딩 본문

언리얼/언리얼 C++

[UE5] 언리얼 라이브 코딩

안선생 2023. 10. 31. 20:37

라이브 코딩

라이브 코딩은 엔진이 실행 중인 동안 애플리케이션의 C++ 코드를 리빌드하고 바이너리를 패치할 수 있는 시스템입니다.

즉 C++에서 컴파일 안하고 실시간으로 코딩하는 방법이다. 라이브 코딩은 게임 개발의 생산성을 향상시키고 개발 시간을 단축하는 데 도움이 됩니다.

 

라이브 코딩 사용처

  • 언리얼 에디터에서 애플리케이션을 편집하는 경우
  • 에디터에서 플레이(PIE)로 애플리케이션을 실행하는 경우
  • 디버깅 용도로 에디터에 어태치된 애플리케이션의 패키지 데스크톱 빌드를 실행하는 경우

 

라이브 코딩 기능

  1.  실시간 코드 수정: 개발자는 게임 실행 중에 코드를 수정하고 이 변경 사항을 즉시 게임에 적용할 수 있습니다.
  2.  디버깅 및 테스트: 라이브 코딩을 통해 코드 디버깅 및 테스트를 진행하면서 문제를 더 빠르게 해결할 수 있습니다.
  3.  게임 세션 유지: 라이브 코딩을 사용하면 게임 세션을 유지한 채로 코드 수정을 계속할 수 있으므로 초기 게임 설정을 다시 하지 않아도 됩니다.
  4.  빠른 반복: 코드 수정 및 테스트 사이클을 단축하여 게임 수정 및 개선을 가속화합니다.
  5.  라이브 코딩 도구: 언리얼 엔진은 몇 가지 라이브 코딩 도구와 플러그인을 지원하며, 이러한 도구를 통해 라이브 코딩 프로세스를 간소화합니다.

 

라이브 코딩 사용법

키보드에서 CTRL + ALT + F11 를 누르거나 아래사진의 맨 아래의 오른쪽에 있는 버튼을 누르면 실행된다.

 

라이브 코딩이 성공하면 오른쪽 아래에

성공했다는 표시가 뜬다.

 

 

 

라이브 코딩 환경설정

에디터 개인설정(Editor Preferences) > 일반(General) > 라이브 코딩(Live Coding) 에서 라이브 코딩 관련 설정을 찾을 수 있습니다.

 

세팅설명

일반(General) 세팅은 개발 환경에서 라이브 코딩이 작동하는 방식을 제어합니다.

라이브 코딩 활성화(Enable Live Coding) 활성화하면 라이브 코딩이 언리얼 에디터의 컴파일 방식이 됩니다. 이 기능을 비활성화하면 언리얼 에디터가 핫 리로드를 다시 사용합니다.
시작(Startup) 언리얼 에디터가 시작할 때 콘솔의 활성화 또는 가시화 여부를 포함해 라이브 코딩이 작동하는 방식을 제어합니다.
리인스턴싱 활성화(Enable Reinstancing) 라이브 코딩이 오브젝트 리인스턴싱을 사용할지 여부를 제어합니다. 활성화하면 코드의 대규모 변경이 적용될 수 있도록 오브젝트의 인스턴스가 대체됩니다. 이 세팅이 꺼져 있으면 이러한 종류의 변경이 불안정해질 수 있으므로 비활성화하지 않는 것이 좋습니다. 자세한 내용은 라이브 코딩으로 오브젝트 리인스턴싱을 확인하세요.
새로 추가된 C++ 클래스 자동 컴파일(Automatically Compile Newly Added C++ Classes) 활성화하면 C++ 클래스 추가 시 자동으로 라이브 코딩이 표시되어 C++ 클래스를 컴파일하고 애플리케이션에 추가합니다.

 

모듈(Modules) 섹션은 에디터 또는 애플리케이션을 실행할 때 라이브 코딩용으로 어떤 모듈을 미리 로드할지 지정합니다. 이를 통해 모듈에서 반복작업 시 라이브 코딩의 퍼포먼스가 더 빨라지게 할 수 있지만, 더 많은 모듈을 미리 로드로 설정할수록 에디터나 게임이 시작되는 데 더 오랜 시간이 소요됩니다.

옵션설명

엔진 모듈(Engine Modules) 언리얼 엔진의 소스 코드의 일부인 모듈입니다.
엔진 플러그인 모듈(Engine Plugin Modules) 엔진의 설치 디렉터리 내 플러그인과 연결되는 모듈로, Engine/Plugins에 있습니다.
프로젝트 모듈(Project Modules) 현재 프로젝트의 소스 코드의 일부인 모듈입니다. 여기에는 주요 모듈뿐만 아니라 소스 디렉터리에서 생성한 추가 모듈도 포함됩니다.
프로젝트 플러그인 모듈(Project Plugin Modules) 프로젝트의 디렉터리에 위치한 플러그인에 연결되는 모듈로, (프로젝트 이름)/Plugins에 있습니다.

 

 

 

 

이렇게 라이브 코딩을 알아봤는데 개인적으로는 디버그나 간단한 테스트 할 때 아니면 안쓰는거 같다. 

 

주의 라이브 코딩만하고 C++로 컴파일 안해주면 엔진을 다시 켰을 때 라이브 코딩으로 했던 정보는 다 날라가므로 라이브 코딩하고 꼭 C++로 컴파일을 해주도록 합시다.

 

 

 

 

 

아래 공식문서에서 더 많은 정보를 보실 수 있습니다.

https://docs.unrealengine.com/5.0/ko/using-live-coding-to-recompile-unreal-engine-applications-at-runtime/

 

라이브 코딩

런타임 중에 게임의 바이너리를 리컴파일 및 패치합니다.

docs.unrealengine.com

 

'언리얼 > 언리얼 C++' 카테고리의 다른 글

[UE5] 인터페이스  (0) 2023.11.09
[UE5] C++ 블루프린트 연결하기  (0) 2023.11.02
[UE5] 생성자, BeginPlay,Tick 알아보기  (1) 2023.10.28
[UE5] C++ 클래스 생성하기  (0) 2023.10.27
[UE5] 언리얼 클래스  (0) 2023.10.26