솔루션 구조

솔루션 구조 내 주요 폴더

  • Engine 폴더
    • 엔진 자체 소스 코드와 리소스가 담긴 곳
    • 에디터 작동, 엔진 코어 관련 코드가 포함되어 있어 초급단계에선 거의 수정할 일이 없음
  • Games 폴더
    • 우리가 만든 프로젝트 코드가 모두 들어있음
    • 내부에는 Source, Config, .uproject파일 등 존재하며 C++로 작성하는 게임 로직을 이 폴더에서 가장 많이 다룸
  • Programs 폴더
    • 엔진에 필요한 유틸리티 프로그램이나 서버 모듈이 담겨있음
  • Rules폴더
    • 엔진과 게임 등 각 모듈의 빌드 규칙을 정의해 놓은 파일들이 모여있음
    • 모듈의존성, 플러그인 활성화 여부, 빌드 대상등을 제어
  • Visualizers 폴더
    • Visual Studio 에서 디버깅 시 언리얼 엔진 관련 자료구조를 보기 좋게 표시하기 위한 설정 파일이 있음

빌드 설정

  • 빌드 구성(Configuration) 종류
    • DebugGame
      • 게임 로직만 디버그 정보를 포함하고, 엔진은 최적화된 상태로 빌드
      • 에디터가 아닌 독립 실행 파일 환경에서 디버깅이 가능함
    • DebugGame Editor
      • 에디터 환경에서 게임 로직을 디버그하기 편한 설정
      • 에디터 플레이중 C++로직을 추적하거나 브레이크 포인트를 걸 수 있음
    • Development
      • 디버그 정보를 최소화해 실행 속도를 높인 개발용 빌드
      • 독립 실행 파일 환경 테스트.개발 단계에서 주로 쓰임
    • Development Editor
      • 에디터에서도 개발.테스트를 원활히 할 수 있도록 구성된 빌드 모드
      • Live Coding 사용 시나리오와 궁합이 좋고, 초,중급자들이 자주 사용
    • Shipping
      • 최종 사용자에게 배포할 때 사용하는 릴리스 빌드
      • 디버그 정보를 제거하고, 성능 최적화가 극대화 됨
    • 플랫폼 설정
      • 기본적으로 Win64로 되어있지만 다른 플랫폼을 사용하기 위해선 SDK를 설치해야됨

Live Coding

흐름

  • 기존 방식
    • shift + F5(에디터 연결 종료) -> C++ 코드 수정 -> Visual Studio에서 빌드 -> F5(재연결) -> 결과 확인
  • Live Coding
    • 에디터 연결 종료 안하고 C++ 수정 -> Live Coding 으로 변경 사항만 컴파일->에디터로 즉시 반영
  • 이를 사용하면 에디터를 끄고 키는 번거로움이 줄어든다

제약 사항

  • 간단한 코드 변경 : 함수 내부 로직, 변수 값 변경, 출력 로그 변경등은 즉시 반영됨
  • 적용이 안되는 경우 
    • 리플렉션 매크로 추가.삭제.수정
    • 새 C++ 클래스 생성
    • 엔진 코어 영역 수정
    • 함수 시그니처(인자, 반환값)나 클래스 상속구조 변경